Перезагрузка драйвера на линии связи V6

Стартовая страница Форумы Разработка и интеграция Перезагрузка драйвера на линии связи V6

Просмотр 15 сообщений - с 1 по 15 (из 26 всего)
  • Автор
    Сообщения
  • #25984
    manjey73
    Участник

    Или перезагрузка линии целиком но с несколькими экземплярами драйвера после отработки последнего ?

    Что смотреть в коде?

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

    Чтобы устройства, которые имеются на линии, инициализировались полностью заново, то потребуется перезапустить линию. Это может понадобиться, если изменился набор тегов.
    Для перезапуска линии нужно отправить команду Коммуникатору.
    Список поддерживаемых команд здесь.
    Параметры команд здесь.

    #25997
    manjey73
    Участник

    Да, мне надо сделать RestartLine но после отработки последнего экземпляра драйвера каким-то образом.

    #25999
    manjey73
    Участник

    А можно пример на перезапуск линии, а то не разберусь как это все делать?

    #26000
    manjey73
    Участник

    Недавние команды
    +———————+—————————+
    | Время | Описание |
    +———————+—————————+
    | 01.01.0001 03:00:00 | Code=App.Comm.RestartLine |
    +———————+—————————+

    Это если через SendCmd выполнить, но подозреваю надо иначе

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

    DeviceLogic.CommContext.SendCommand отправляет команду в Коммуникатор из драйвера.

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

    Для надёжности можно сначала добиться работы команды вручную через канал.

    #26019
    manjey73
    Участник
     TeleCommand cmd = new TeleCommand();
    cmd.CmdVal = 1;
    cmd.CmdCode = CommCmdCode.RestartLine;

    DeviceLogic.CommContext.SendCommand(cmd); — и тут подсвечивает ошибками и CommContext и SendCommand

    #26028
    manjey73
    Участник
    Перезагрузите линию связи, считайте конфигурацию сервера и настройте требуемые переменные для опроса
    Получено за 7897 мс

    Код выглядит так

                        Log.WriteLine("Перезагрузите линию связи, считайте конфигурацию сервера и настройте требуемые переменные для опроса"); // TEST
    
                        TeleCommand cmd = new TeleCommand();
                        cmd.CmdCode = CommCmdCode.RestartLine;
    
                        CommContext.SendCommand(cmd, "Restart Line");

    и в конце Session собственно

                stopwatch.Stop();
                Log.WriteLine(Locale.IsRussian ?
                    "Получено за {0} мс" :
                    "Received in {0} ms", stopwatch.ElapsedMilliseconds);
                FinishSession();

    Линия не перегружается сразу, на следующем запросе Session идет все вкривь и вкось. Не так, как при обычной загрузке линии

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

    Команда передаётся в очередь Коммуникатора и выполняется асинхронно.
    Убедитесь, что команда отправляется 1 раз.
    В общем логе Коммуникатор пишет что-то при получении команды на перезапуск линии?

    #26051
    manjey73
    Участник

    Если на Устройстве отправляю команду что RestarLine

    Она появляется в логе но ничего не происходит.
    Недавние команды
    +———————+——————————+
    | Время | Описание |
    +———————+——————————+
    | 16.11.2022 16:02:54 | Code=RestartLine, Val=1,000 |
    +———————+——————————+
    | 16.11.2022 16:03:46 | Code=RestartLine, Val=1,000 |
    +———————+——————————+
    А если App.Comm.RestartLine то вообще никакой реакции

    #26052
    manjey73
    Участник

    В общем я не представляю как правильно написать код, чтобы произошла перезагрузка линии.

    Если она вообще способна произойти из Session…

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

    В логе линии

    2022-11-16 16:18:38 Команда устройству [5] OwenCloud
    
    2022-11-16 16:18:38 Сеанс связи с устройством [5] OwenCloud
    Отправка запроса:
    https://api.owencloud.ru/v1/device/index

    Команда устройству, а чего, куда, зачем?

    #26056
    manjey73
    Участник

    Например команда Terminate(); в Session не дает никакой реакции…

    Что вообще в Session может дать хоть какую-то реакцию по части Линии связи ?

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

    В общем логе Коммуникатор пишет что-то при получении команды на перезапуск линии?

    Команда устройству, а чего, куда, зачем?

    Текст в лог пишет Ваш драйвер.

    Например команда Terminate(); в Session не дает никакой реакции

    Если открыть исходный код, будет понятно, что делает данный метод.

Просмотр 15 сообщений - с 1 по 15 (из 26 всего)
  • Вы должны авторизироваться для ответа в этой теме.