Как создать идеальный эмулятор прибора

  !   Данная страница находится в процессе разработки.
  !   Данная информация предназначена только только для IT-специалистов по системной интеграции модулей БИОСОФТ-М. (см. Руководства пользователя к программным продуктам)

Здесь мы рассмотрим задачу создания эмулятора прибора, который генерирует некий абстрактный сигнал четко в соответствии с реальным временем (GetTickCount)

Немного теории
Реальное время

Конечно же, под термином "реальное время" в данной статье будет скрываться некая условность - привязка ко времени у нас будет относительная, но достаточно точная для решения поставленной задачи - GetTickCount (количество миллисекунд от начала запуска операционной системы.

Алгоритм работы

Алгоритм идеального эмулятора прибора достаточно прост:

  • при старте виртуального прибора запоминаем текущее время (время старта);
  • при очередном опросе (т.е. чтении данных с прибора) рассчитываем необходимое количество выборок (в соответствии с заданной частотой дискретизации сигнала виртуального прибора) и посылаем их подпрограмме-приемнику;
  • при остановке прибора производим повторный опрос прибора для довыборки сигнала полностью.
Как опрашивать эмулятор?

Всегда надо помнить цель, для которой создавался эмулятор! Программа должна быть устроена таким образом, чтобы большая часть кода даже не догадывалась (см. инкапсуляция), что ее "обманули", подсунув ей виртуальный прибор. Из этого следует, что эмулятор прибора должен опрашиваться тем же самым методом, который вычитывает данных с реального прибора. Пусть это будет Idle или Timer, не важно - Ваш эмулятор должен полностью подражать оригиналу.