Аналіз прийнятих даних

 

Розглянемо дані, що надійшли від модуля збору:

- температура;

- атмосферний тиск;

- сила вітру;

- напрямок вітру;

При отриманні пакету даних від модуля збору, утворюється модель даних (клас WeatherData), що інкапсулює у собі поля та методи по обробці, аналізу, обчисленню та відокремленню даних із вхідного пакету даних.

WeatherData data = createWeatherData(byte [] recivedBytes)

data.initValues();

Температура (метод calculateTemperature(byte[] temperature)).

Дані, про температуру що надійшли мають такий формат (рис 4.1).

Знак температури („+” або „–”) визначається аналізом перших чотирьох біт („0000” – „+”; „1111” – „–”). Значеня температури у градусах цельсія визначається аналізом наступних восьми біт (0..255). Дробна частина знаходиться шляхом аналізу наступних чотирьох біт.

Наприклад, проаналізувавши бітову послідовність 0000 0000 1100 1000, отримуємо +12,50С.

Атмосферний тиск (метод calculatePreasure(byte[] preasure)).

Значення атмосферного тиску у міліметрах ртутного стовпчика знаходиться шляхом аналізу шістнадцяти біт, які були виділені з вхідного інформаційного пакету.

Наприклад, проаналізувавши бітову послідовність 0000 0101 1111 0000, отримуємо 760 мм. рт. ст.

Напрямок та сила вітру (метод calculateWind(byte[] wind))

Напрямок та силу вітру отримуємо у вигляди частот, розкладених по вісям полярної системи координат від датчика сили й напрямку вітру наступним чином:


(1)

 

 


(2)

 

 

де f1, f2, f3 – дані від датчику вітру (рис. 4.1.2). При цьому


, якщо fi > 2;

(3), якщо fi < 2.

 

Формули, що застосовуються при роботі з комплексними числами:

 


(4)

 

Застосовуючи формули 1, 4 суму v1+v2+v3 можна представити як:


(5)

 

Тому для знаходження сили вітру застосуємо формулу:

 

(6)

 

Для знаходження напрямку вітру застосуємо формулу:


(7)

 

 

Для виконання всих вищезгаданих операцій у середовищі java, скористаємося статичними методами класу Math.

Після обчислення показників сили та напрямку вітру, вони заносяться до відповідних полей класу WeatherData.










Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: