Оправка команды перед командой

Стартовая страница Форумы Вопросы без категории Оправка команды перед командой

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

    Добрый день!
    Подскажите пожалуйста можно ли написать модуль который будет позволять отправить команду перед отправкой команды.
    То есть мы в таблице выбираем канал с настройкой температуры. Пишем значение новой температуры.
    и у нас сначала отправляется первая команда (разрешение на запись)
    после отправляется вторая команда (то что мы хотим поменять температур)
    какие функции нужно для этого использовать ?

    #37052
    manjey73
    Участник

    Модуль автоуправления должен справиться с задачей. Надо только понять что за чем отправлять. Или скажем так видя, что вы меняете Т, сперва отправить команду разрешения, а уже потом Т.

    #37055
    JurasskPark
    Участник

    А можно сделать плагин(exe), который будет делать запись данных.
    + всякие плюшки.
    Но только на Windows.)

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

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

    #37071
    manjey73
    Участник

    Вопрос как это сделать?

    Чтобы меняя уставку перехватить Модулем и сперва отправить некую команду, а уже потом эту уставку ?
    И в догонку — а если после предварительной команды надо дождаться подтверждения, что она принята ?

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

    Например, отменить исходную команду и отправить две команды в нужной последовательности с задержкой.
    Модуль только отправляет команды в Коммуникатор, поэтому состояние связи не проверяется.

    #37112
    manjey73
    Участник

    Ок, мы отменили первичную команду задания значения, как Модуль узнает, какое значение отправлять во второй команде?

    Можно пример для понимания процесса?

    #37140
    ivan3012020
    Участник

    Добрый день!
    Я все еще пробую. написать свой плагин..
    Вот какой у меня код получается
    public override void OnIteration()
    {
    CnlData curData = ServerContext.GetCurrentData(InputChannel);
    CnlData curData2 = ServerContext.GetCurrentData(OutputChannel);

    if (curData.IsDefined)
    {
    if (curData.Val != curData2.Val)
    {
    ServerContext.SendCommand(new TeleCommand(PassworChanel, password, UserID));
    Thread.Sleep(1000);
    ServerContext.SendCommand(new TeleCommand(OutputChannel, curData.Val , UserID));

    }
    }
    }

    Идея в чем у меня есть канал 101 (это пароль) и канал 102 (значение которое надо поменять) и канал 103.
    Мы делаем запись в канал 103, если эта запись не равно 102 каналу. То сначала отправляем значение на 101 канал а потом на 102.

    #37141
    ivan3012020
    Участник

    Но это все не работает, пишет в ответ что ошибка в команде на отправку (статистики линии)

    #37142
    manjey73
    Участник

    И какая ошибка?
    Если вы делаете модуль, то там можно в лог модуля выводить что вам нужно.
    з.ы. когда уже допишу свой модуль? Там можно будет дописывать код на C# самой логики, а модуль уже выполняет связи.
    Подобный модуль это Модуль управления Фермой (ModFarm) но он более специфичен и узкозаточен будет. Но можете его посмотреть и попробовать написать логику, как там описано.

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

    мы отменили первичную команду задания значения, как Модуль узнает, какое значение отправлять во второй команде?

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

    Вопросы по разработке модулей пишите, пожалуйста, в разделе разработки.

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