Skip to content

robilkot/WeatherSensor-Peleng

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

Отчёт по тестовому заданию

Решение выполнено в Visual Studio 2022 на языке C#. Для работы с портами использована библиотека System.IO.Ports.

Решение состоит из двух проектов:

  • Библиотека классов WeatherSensorsLib, содержащая логику приложения, такую как сервис для работы с портами, сервис для сохранения данных в файл, общеиспользуемые модели;
  • Консольное приложение WeatherSensorConsoleApp, содержащее пользовательский интерфейс для работы с реализованным функционалом;

Алгоритмы решения и диаграмма классов

Диаграмма классов системы

CD

Общий алгоритм программы

image

Алгоритм получения данных с порта

image

Алгоритм перехода парсера в новое состояние

image

Алгоритм сохранения данных в файл

image

Результат работы программы

Файл с результатами работы программы представляет из себя сериализованный в .json список объектов класса WeatherSensorMessage. Файл доступен по ссылке.

Выводы

В ходе выполнения работы была разработана система для взаимодействия с внешним датчиком и сохранения результатов измерений. Были решены следующие задачи:

  • Проектирование системы с расчётом на дальнейшее расширение функционала (добавление новых видов сообщений и датчиков, возможность написания тестов для модуля чтения, возможность подключения графического интерфейса);
  • Парсинг входных данных в соответствии с протоколом посредством реализации машины состояний, обработка состояний несоответствия протоколу;
  • Потоковая обработка файлов для оптимального использования памяти;

About

Тестовое задание для ОАО "Пеленг"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages