Параметры синхронизации настроек

Возможно определить опции пользовательской синхронизации для каждой из настроек устройства. Доступ к предварительным опциям синхронизации осуществляется через опцию изменить настройки устройства контекста устройства. Ниже приведен список доступных опций синхронизации для каждой настройки устройства:

Опция

Описание

Режим синхронизации

Существует несколько режимов синхронизации:

  • Обычная синхронизация. Значение настройки синхронизируется между SberMobile Server и устройством во время цикла синхронизации.

  • Синхронизация отключена. Для данной настройки не выполняется синхронизация.

  • Только от устройства к серверу. Заставляет сервер делать серверное значение доступным только для чтения и запрещает устройству записывать операции для данной настройки. Это оказывается полезным, когда устройство/драйвер сообщает о настройке как о записываемой, хотя на самом деле операция по записи не была произведена (например, из-за отсутствия необходимых прав доступа).

  • Прямой доступ к устройству. Значение настройки считывается напрямую с устройством, когда его запрашивают компоненты системы. Если некоторые системные компоненты пытаются модифицировать системные значения, изменения также записываются прямо на устройство. При такой настройке считывание, запись операций могут быть не произведены в случае, если не осуществлен ввод/вывод устройства или устройство сообщает об ошибке.

  • Прямая запись устройства. Так же, как и выше, но применяется только для операций записи. Чтение значения производится из кэша настроек, как и в режиме Обычной Синхронизации.

  • Использовать заданное значение сервера. В этом режиме синхронизация от сервера к устройству всегда выполняется для этой настройки. Таблица Данных, возвращенная Выражением Заданного Значения (см. ниже), закладывается в устройство вместо значения, взятого из кэша настроек.

  • Игнорировать время модификации. Игнорирует временные отметки модификаций настройки как сервера, так и устройства. Настройка синхронизируется от сервера к устройству, если значение было изменено на сервере, или же от устройства к серверу.

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

Время хранения истории

Если данная опция установлена на ненулевое значение (т.е. хранение истории обновлений актвировано), постоянное событие Обновленный будет появляться каждый раз, когда заданное значение изменено в серверном кэше. Это может происходить, если новое значение, отличающееся от предыдущего, считывается с удаленного устройства, или какой-либо компонент системы модифицирует кэш. Событие обновления содержит в себе значение переменной, поэтому его история может использоваться как источник информации для отчетов и таблиц. Сохранение истории отключено по умолчанию во избежание лавинообразного увеличения базы данных.

Режим записи истории

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

Режим истории

Описание

Значение

0

Все нормальные значения

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

-1

Только измененные значения

Сохранены только нормальные измененные значения. Дупликаты (повторяющиеся значения) пропускаются.

-2

Измененные, ложные

Сохраняются измененные и ошибочные значения (образцы в плохом качестве).

-3

Все нормальные и неподключенные

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

-4

Все нормальные и ошибочные

Сохраняются все нормальные (различные) значения. Также сохраняются значения с плохим качеством.

-5

Измененные, неподключенные и ошибочные

Нормальные значения сохраняются, если они отличаются. Однако сохраняются значения с плохим качеством. Значения также сохраняются, когда устройство отключено.

-6

Все значения

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

Если Режим записи истории выставлен на любое положительное целое число, исторические значения будут сохраняться в базу данных только каждый энный цикл синхронизации, где N - это значение Режима Записи Истории. Однако события обновления генерируются во время каждого цикла синхронизации, и заинтересованные стороны будут уведомляться обо всех изменениях значений.

Вы также сможете контролировать тот факт, как систему оповещают об изменениях значений: о каждом обновлении значений переменных или только об изменениях (см. Обновления доставки).

Если Время Хранения Истории Обновлений не установлено (т.е. история не сохраняется), период синхронизации скорее короткий, а у самой настройки сложный формат (т.е. много полей или вложенных таблиц). Настройка Режим записи истории во Всех нормальных значениях может улучшить производительность, потому что сервер не будет загружать старые кэшированные значения и сравнивать их с новыми во время каждой синхронизации.

Период  синхронизации

Данная опция может использоваться для определения периода пользовательской синхронизации у определенной настройки. Значение по умолчанию - NULL (<Не установлено>), поэтому значение настройки синхронизируется во время полного цикла синхронизации. Пользовательская синхронизация полезна, когда необходимо прочитать некоторые быстроменяющиеся данные с устройства.

Обновления доставки

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

Состояние

Если определено выражение состояния, синхронизация будет пропущена, если возвращается значение false. Полезно для отключенной синхронизации в период технического обслуживания, ночных часов и т.д.

Среда вычисления выражения состояния:

Контекст по умолчанию

Контекст текущего устройства.

Таблица данных по умолчанию

Текущее значение переменной, которое хранится в кэше настроек.

Ряд по умолчанию

0

Переменные среды

Только стандартные переменные.

Фильтр

Если определено выражение фильтра, то будут фильтроваться значения, собранные как с устройства, так и с сервера:

  • Если значение синхронизируется от устройства к серверу и выражение фильтра возвращает FALSE, значение не будет записано в кэш сервера. Это помогает распознать "плохие" значения устройства и удалить их.

  • Если значение синхронизируется от устройства к серверу и выражение фильтра возвращает Таблицу данных, оно будет рассматриваться как конвертированное значение настроек устройства. Это конвертированное значение будет записано в кэш сервера вместо значения, возвращенного драйвером. Это подходит для фильтрации табличных данных, нормализации диапазона и т.д.

  • Если значение изменяется системным оператором, серверным компонентом или внешней системой и выражение фильтра возвращает FALSE, запрос на изменение прошел с ошибкой.

Среда вычисления выражения фильтра

Контекст по умолчанию

Контекст текущего устройства.

Таблица данных по умолчанию

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

Строка по умолчанию

0

Переменные среды

Только стандартные переменные.

Пример: abs({.:temperature$celsius} - {celsius}) > 0.5

Это выражение фильтра сравнивает температуру по Цельсию, извлеченную во время предыдущей синхронизации, с новым значением, только что полученным из устройства. Синхронизация происходит, только если разница между ними превышает 0.5 градусов, позволяя избежать колебания значения сервера.

Выражение заданного значения

Выражение, используемое для извлечения значения и записи его на устройстве, если активен режим синхронизации Использовать заданное значение сервера.

Среда вычисления выражения заданного значения:

Контекст по умолчанию

Контекст текущего устройства.

Таблица данных по умолчанию

Отсутствует.

Строка по умолчанию

0

Переменные среды

Только стандартные переменные

Добавить предыдущее значение в событие обновления переменной

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

Все это доступно для просмотра через переменную settingSyncOptions.