Artonit
Артонит => Программное обеспечение Артонит. => Тема начата: G.Andrey Denisov от Декабря 18, 2012, 18:08:27
-
Давно требуют от меня в любую секунду получать цифру количества людей на территории. Предоставить такую цифру заказчику сходу не могу. Конечно можно в БД устроить счетчик на события 50 и проверять точку прохода на принадлежность к "зоне входа/выхода", но цифра будет не актуальной из-за возможности "двойного прикладывания", "прикладывания и невыхода" и т.д. Второй вопрос - получение этой самой цифры.
По сему два вопроса:
1. Как считать количество
2. Как вывести значение пользователю
Предполагаю, что модуль отчетов имеет возможность добавления пользовательских запросов, но как?
Останавливает еще и то, что следующий вопрос заказчика будет: а кто на территории и когда вошел, где?
PS Параллельно с ожиданием ответа пытаюсь сам разобраться. Буду выкладывать свои достижения. Может кому интересно будет...
-
А посмотрите, плз, ссылочку: http://109.120.140.46:8080/eventlog/test/count.php (http://109.120.140.46:8080/eventlog/test/count.php)
Это данные с реального объекта.
Укажите нужные периметр, нажмите нужные кнопочки.
Понаблюдайте за цифиркой днем и, например, ночью.
Что скажете?
-
Да, посмотрел. Что-то выводит.
Но вопрос 1 не раскрыт,
Вопрос 2 - я, так понимаю - через вэб
А штатными средствами(модуль отчетов)? Как?
Есть тоже кое- какие наработки. Доберусь до сервера - выложу. Смысл: то валяем таблицу в БД и настраиваем тригер. Пока в режиме тестирования
-
В показанной системе реализован такой подход:
- Вводится периметр. В Конфигураторе СКД в Группе устройств добавлена группа (в текущем примере это VC и Периметр для подсчета людей на территории. В каждой группе есть служебные подгруппы Enter и Exit. В каждую подгруппу входит набор точек прохода, проход через которые и дает основание считать, что человек вошел или вышел).
- Выбираю всех вошедших в заданные периметр в период, начиная с заданного времени. Заданное время в примере - это 0 часов вчерашнего дня. Т.о., если кто остался на территории объекта в прошедшую ночь, то он будет учтен.
- Выбираю всех вышедших.
- Рассматриваю разницу. Эта разница и есть количество людей на территории.
Описанные алгоритм является, конечно же, компромисcом между точностью учета и строгостью пропускного режима. Нюансы обсуждались с заказчиками, и заказчик соглашался с результатом.
Как я понимаю, это лучше, чем ничего.
Теперь про аналогичные расчеты в модуле отчетов Report.
Модуль отчетов предполагает возможность вставки других отчетов.
Можно добавить любой отчет одного из 6 типов и 4-х шаблонов печати.
Тип отчета определяет входные параметры для вызова процедуры БД и
запрашиваемые у пользователя программой Report.
Шаблон печати использует выходные параметры процедуры.
Может быть сколько угодно выходных параметров процедуры. Не
задействованные для печати параметры будут показаны на экране и
доступны для экспорта.
Прилагаю описание стандартных отчетов Report.
-
Сделал примерно также, а именно: Создал группу устройств "Входа в периметр" и "Выхода из периметра".
Создал таблицу периметров TORNADO_PLANS (список периметров, зоны входа, выхода), генератор ID плана, таблицу TORNADO_PEPONPLANS людей в периметре. Соответственно в планах есть счетчик, а в другой таблице - ответ на вопрос "кто где?"
Но это уже получение отчетов сторонним приложением - не удобно, но работает.
А вот работать со штатным модулем отчетов не получается. Не могу добавить никакой отчет. Нужна помощь
Скрипты моих доработок приложил