NeedRequest в SendComands

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

    Добавьте на будущее возможность использования NeedRequest аналогично и в команды.
    Полезно при чтении архивов будет.

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

    Аналогично чему?

    #39782
    manjey73
    Участник

    Аналогично Session. Я попробовал сделать запрос в SendCommand через NeedRequest — ничего не получил…
    Без него запрос-ответ проходят.

    #39783
    manjey73
    Участник

    Хм, вопрос иного плана, как делегировать запросы из команды в Session?

    Оказалось, что максимум можно прочитать архив только за 3 часа одним запросом.
    Хочу отправить команду, прочитать первые 3 часа, потом остальные вычитывать внутри сессий

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

    Опросом управляет Коммуникатор. Чтобы выполнить опрос, можно отправить соответствующую команду на линию связи из какой-либо части кода. Из драйвера, насколько я помню, команду можно отправить либо в целом в Коммуникатор, либо на конкретную линию, что бывает более оптимально.

    #39799
    manjey73
    Участник

    Штатный опрос не предполагает чтение архивов из диапазона времени, для этого нужна команда так или иначе. Команда отправляется драйверу вручную, но по команде при запросе большого диапазона времени сразу будет затык в опросе надолго.
    Чтение суточного архива это +8 секунд, а чтение за месяц + 4 минуты.

    Вот о чем речь. пока только мысли. Сделать настройку количества запросов за один раз при команде запроса архивов. Например 2 (6 часов), и каждую сессию будет опрашиваться по 6 часов. Если сессии раз в 30 сек, то как-то нормально я думаю.

    Учитывая, что драйвер контролирует наступление часа и считывает архивы ежечасно.

    #39800
    JurasskPark
    Участник

    А что драйверу мешает самостоятельно контролировать наступления часа и самостоятельно отправлять команды?

    #39801
    manjey73
    Участник

    ничего не мешает, он так и делает, час наступил, считал архив.

    А вот не было связи 3 часа с прибором, там накопился архив за 3 часа?
    А вот решил я получить данные за прошлые 2 месяца, которые не были прочитаны? по причине позднего ввода в эксплуатацию при ПНР и т.д.

    #39802
    JurasskPark
    Участник

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

    #39803
    manjey73
    Участник

    Так вот и пытаюсь прикрутить..
    1. при команде опрос Х часов от настроек
    2. еще Х часов если стоит внеочередной опрос после команды
    3. остальные по Х часов каждые последующие сессии

    + проверка самим драйвером, если были пропуски связи по тому же алгоритму, только уже без команды просто внутри Сессий

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

    • Ответ изменён 1 год, 1 месяц назад пользователем manjey73.
    • Ответ изменён 1 год, 1 месяц назад пользователем manjey73.
    #39806
    JurasskPark
    Участник

    А если нужно чтобы не все сразу…
    То создать файл в папке Config коммуникатора командной и записать список всех нужных команд. И после выполнения основных команд смотреть есть ли в каталоге такой файл. Читать его. Брать самую верхнюю строку в виде массивв байт (она же команда) и отправлять. После успешного выполненям удалять из файла верхнюю строку и сохранять файло.
    После того как в файле не осталось строк, удалять файл.

    #39807
    manjey73
    Участник

    а смысл заморачиваться с файлом? точнее он у меня и так есть, в принципе могу туда добавить «раздел» какое время прочитано по команде и сколько там осталось…

    Возможно это идея, с точки зрения если Сервер может перезапускаться, пока не рассматривал такой вариант, но идея хорошая

    #39808
    JurasskPark
    Участник

    Диапазон дат нет, а строку кто мешает отправить и разбить на две даты?
    В форме ввода отправить строку
    2025-01-01 00:00:00 — 2025-01-01 05:00:00

    А драйвер превращает строку в две даты.

    #39809
    manjey73
    Участник
    <?xml version="1.0" encoding="utf-8"?>
    <SaveParam HourDt="28.07.2025 19:00:00" DayDt="27.07.2025 23:00:00" verifiDt="18.09.2025; 26.09.2025; 19.09.2025" />

    сейчас вот так. Прочитанные часовые и суточные. + даты поверок сохраняются.
    Могу туда добавить после выполнения команды диапазон и после выполнения на уровне сессии корректировать.

    #39810
    manjey73
    Участник

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

    Понятно, что можно сделать 3 расчетных канала, ввести две даты, а потом «Отправить», но блин это расточительство какое-то 🙂

    • Ответ изменён 1 год, 1 месяц назад пользователем manjey73.
Просмотр 15 сообщений - с 1 по 15 (из 21 всего)
  • Для ответа в этой теме необходимо авторизоваться.