Тема: Исправить логику обработки уведомлений
Добрый день.
Пока вопрос полной переделки логики уведомлений остается открытым, хотелось-бы поднять более легкий, но не менее важный вопрос.
И опять про уведомления.
Сейчас вся обработка на предмет сработать / не сработать производится на основании сообщений и параметра в нем.
Если параметр есть - его значение проверяется на условие сработки и пр.
А вот если параметра в очередном сообщении нет - он не просто не проверяется, а тупо обрывается связная последовательность предыдущих проверок сообщений, в которых он был.
Иначе говоря, любое уведомление по длящемуся событию (это означает много последовательных сообщений для проверки условия сработки) обязательно требует, чтобы на всем интервале в каждом сообщении параметр был в обязательном порядке.
Возьмем простой пример: прибор Вега по протоколу Wialon IPS. Или ему подобные. Есть параметр, который связан с датчиком зажигание. Есть потребность - сделать уведомление "Движение без зажигания свыше 2 минут". Логика прибора подразумевает, что значение параметра для этого датчика обязательно придет в момент, когда он меняет свое состояние, а также периодически, когда приходит очередная точка по времени. В других сообщениях этого параметра нет.
Как итог, сделать сие простое уведомление без извращений (иначе не могу назвать) физически можно, но оно никогда не сработает.
Можно сделать так, чтобы при обработке сообщения, если нет параметра, оно просто пропускалось-бы, а не прерывало цепочку проверки?
Настройку какую добавить или еще как...