CustomParams считать до обнуления ?

Стартовая страница Форумы Разработка и интеграция CustomParams считать до обнуления ?

Просмотр 9 сообщений - с 16 по 24 (из 24 всего)
  • Автор
    Сообщения
  • #16268
    manjey73
    Участник

    Тогда второй вопрос остался, как получить список всех КП на линии ? без сортировки желательно.

    этот вопрос актуальный

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

    Все варианты не очень хорошие:
    1. Каждый КП добавляет себя в общедоступный список.
    2. Считать конфигурацию Коммуникатора из файла в драйвере.

    Согласен, что надо развивать возможности драйверов. Это будет делаться в рамках версии 6, что не быстро, к сожалению.

    #16272
    manjey73
    Участник

    Ну пока вижу самый быстрый способ это каждый КП со своим файлом настроек. Это вроде легко, прикрутил запись в XML через тот же код сериализации, который использовал в ScadaCommFunc для проверки. Работает.

    Если делать файл на линию есть нюансы. Если по остановке линии все просто, последовательная запись от 1-ого КП до последнего то каждый добавит свое, но тут нарвался на то, что все КП будут записывать свое новое, а чужое старое, что могло поменяться в них. Если каждый драйвер сперва прочитает из файла, изменить свои данные и запишет, то это несколько раз прочитать — записать… В принципе то же самое можно сделать и при изменении данных в процессе время от времени.

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

    Проблема собственно в сериализации, она несколько иначе работает, данные попадают в каждый КП в виде копий получается…

    Вопросы.
    1) CommonProps тоже ведь общий ? я их разделяю только за счет адресов устройств (а не по КП). Можно ведь сделать общий CommonProps для всех, где будет храниться слепок однажды прочитанного файла, изменяться данные на каждый КП и тогда не важно какой КП сохранит файл..
    2) если по аналогии с AppDirs сделать доступ к KPList что в нем окажется ? список абсолютно всех КП или только тех КП, которые на данной линии ? что поменять в CommLine, чтобы можно было прочесть KPList только для чтения, если конечно он будет именно на линию связи и без сортировки.

    #16273
    Romiros
    Участник

    А зачем вообще это все? Какая практическая задача?

    #16274
    manjey73
    Участник

    один раз считать файл первым КП на линии, выполнять всякие манипуляции внутри кода без лишней записи и один раз записать последним КП на линии при ее необходимости.

    по 1-2 переменных на КП и возможно большом количестве однотипных устройств писаь кучу файлов как-то не очень разумно.

    з.ы. объект тут все никак не разродится, не знаю сколько там линий связи получится, но общее количество счетчиков больше 300…
    Если файл на каждое КП то 300 файлов…

    • Этот ответ был изменен 3 года, 10 месяцев назад от manjey73.
    #16284
    manjey73
    Участник

    Да, если организовывать доступ с списку КП на линии связи без сортировки, то предусмотреть возможность прочитать имя DLL из него, так как на линии могут быть устройства с разными DLL в принципе…

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

    CommonProps общий в пределах линии связи.

    #16291
    manjey73
    Участник

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

    Ну и в принципе можно обратиться и к чужой копии, если уж очень надо.

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

    Верно.
    В этом репозитории можно следить за разработкой версии 6 и обсуждать возможности драйверов и модулей. Но пока что ещё мало что готово.

    Файлы настройки Сервера и Коммуникатора дают некоторое представление.

    • Этот ответ был изменен 3 года, 10 месяцев назад от Mikhail.
Просмотр 9 сообщений - с 16 по 24 (из 24 всего)
  • Вы должны авторизироваться для ответа в этой теме.