Домашняя телеметрия
Система домашней телеметрии
Сбор и анализ информации с датчиков
Главная › Описание › Циклограммы КД и ЦК


VII. Циклограммы работы КД и ЦК.

Циклограмма КД.
  1. Ждем начала периода.
    Ожидание производим в состоянии сна. В режим сна переводится радиомодуль, МК, сами датчики, если они питаются от батареи КД. Но в случае подсчета количества импульсов, МК должен регулярно просыпаться с периодом не более чем длительность импульса.
  2. Производим измерение величин.
    Выполняем в начале периода.
  3. Ждем случайное время.
    В пределах от нуля до длительности периода. В состоянии сна, аналогично п.1.
  4. Производим передачу данных.
    Подготавливаем пакет данных для передачи в соответствии с разделом IV. Активируем радиомодуль, переводим в режим передачи, средствами радиомодуля производим передачу пакета с подтверждением. Количество повторов ограничим 3-мя. Если передать не удалось, переходим к п.7.
  5. Ожидаем команду от ЦК.
    Радиомодуль переводим в режим приема. Ждем команду в течении некоторого времени. Средствами радиомодуля выполняем подтверждение принятия. Если команда не получена, переходим к п.7.
  6. Выполняем команду.
    Проверяем подлинность команды в соответствии с разделом IV, если подлинность не подтверждена, то переходим к п.7. Выполняем команду, отправляем ЦК ответ о выполнении.
  7. Начинаем новый цикл работы.
    Переходим к п.1.

Циклограмма ЦК.
  1. Активируем радиомодуль.
    Переводим радиомодуль в режим приема.
  2. Проверяем наличие команд от Сервера.
    Если в буфере команд есть свободное место и от Сервера получена команда, то преобразуем её из текстового в двоичный вид и кладем в буфер.
  3. Удаляем просроченные команды из буфера.
    Если команда хранится в буфере сверх периода КД, то команду удаляем и выдаем на Сервер ответ - "таймаут". Удаление просроченных команд нужно для исключения переполнения буфера командами для несуществующих КД.
  4. Проверяем наличие данных от радиомодуля.
    Если данные не получены, то переходим к п.7. Если данные получены, то проверяем их подлинность в соответствии с разделом IV. Если подлинность не подтверждена, переходим к п.7. Иначе переходим к пункту 5. Если разность во времени между ЦК и КД превышает заданное значение, взводим флаг о необходимости коррекции времени.
  5. Передаем данные на Сервер.
    Если данные от КД являются ответом на команду, удаляем соотвествующую команду из буфера команд. Полученные от КД данные преобразуем в тестовый вид и передаем на Сервер. Переходим к п.6.
  6. Производим передачу команды.
    Если необходимо выполнить коррекцию времени на КД, то выдаем команду коррекции времени. Иначе, если в буфере команд нет команды, адресованной КД, данные от которого были получены, то переходим к п.7. Иначе подготавливаем пакет данных для передачи команды в соответствии с разделом IV. Переводим радиомодуль в режим передачи, его средствами производим передачу с подтверждением. Количество повторов ограничим 3-мя. Переводим радиомодуль в режим приема. Переходим к п.7.
  7. Начинаем новый цикл работы.
    Переходим к п.2.