Вход Блог
Строительство и ремонт
Репетиторы
Красота
Фрилансеры
Разные специалисты
Уход за животными
Тренеры
Автоинструкторы

Разработка на Java — удалённая работа в Москве

Дата: 2023-07-14
Детали
Регион
Москва
Занятость
дистанционно
Стоимость
договорная
Дата публикации
2023-07-14
Описание
Смоделировать “Умный дом“ Условие задачи Напишите программу, которая реализует функции хаба умного дома. В умном доме размещены сенсоры, то есть устройства, измеряющие параметры окружающей среды, актуаторы, то есть устройства, воздействующие на среду в доме, таймер, передающий показания текущего времени, и хаб, то есть устройство, которое управляет всеми остальными устройствами в умном доме. Все устройства находятся в общей коммуникационной среде (сети). Информация по сети передаётся с помощью пакетов. Пакет может отправляться одному устройству, либо всем устройствам одновременно (broadcast). Каждое устройство, включая хаб, имеет свой уникальный 14-битный адрес в сети. Коммуникационная среда ненадёжна, то есть пакеты могут в сети теряться либо портиться, но пакеты не дублируются, то есть ситуация, когда получатель получает один и тот же пакет несколько раз, невозможна. Для моделирования функциональности хаба умного дома ваша программа должна получать данные из сети, и в качестве реакции на полученные данные отправлять данные в сеть. В рамках данной задачи получение данных из сети и отправка данных в сеть моделируется с помощью HTTP POST запроса на специальный сервер, который моделирует функционирование остальных устройств умного дома. Работа вашей программы Вашей программе в аргументе командной строки передается URL, который нужно использовать для обмена данными с сетью, и 14-битный адрес вашего устройства-хаба в сети в шестнадцатеричном виде. Для отправки данных в сеть необходимо выполнить POST-запрос передав в теле запроса выдаваемые в сеть пакеты данных в виде URL-encoded Base64 строки. В ответ POST-запрос вернет пакеты данных, принятые из сети. Каждую порцию данных таким образом можно прочитать только один раз. В случае успешного чтения очередной порции данных сервер вернет код ответа HTTP 200. В случае, когда данных больше нет, сервер вернет код ответа HTTP 204. При получении кода 204 ваша программа должна завершить свою работу с кодом завершения 0. Пример запуска вашей программы: solution http://localhost:12183 ef0 Если при взаимодействии с сервером возникла какая-либо ошибка на уровне сети или протокола HTTP, или сервер вернул код ответа, отличный от 200 или 204, ваша программа должна завершить выполнение с кодом завершения 99. Каждая порция входных данных закодирована с помощью URL-encoded unpadded Base64, причем все пробельные символы (пробелы, табуляции, переводы строк) являются незначимыми и должны быть проигнорированы. Если порция данных закодирована в base64 некорректно, она должна быть пропущена, и ваша программа должна перейти к обработке следующей порции данных, то есть снова выполнить POST-запрос. Если при декодировании пакета возникла ошибка контрольной суммы, пакет игнорируется. Ваша программа должна моделировать работу хаба по следующему алгоритму: В начале работы хаб собирает информацию о сети с помощью запроса WHOISHERE и запрашивает начальное состояние всех устройств. Обратите внимание, что устройства могут задержаться с ответом на запрос, задержки вплоть до 300мс допустимы. Далее хаб ожидает сообщений от сенсоров, и для каждого сообщения от сенсора выполняются действия, прописанные в dev_props сенсора Все подключенные устройства кроме хаба и таймера в процессе работы могут быть отключены. Отключенное устройство перестает отвечать на сообщения, адресованные этому устройству. Устройства могут быть включены в процессе работы, и могут появиться новые устройства. Повторно или вновь включенное устройство посылает в сеть запрос WHOISHERE, на который хаб должен ответить. Конфигурация устройства (dev_props) может отличаться от конфигурации, которая была в прошлый раз, в этом случае хаб должен начать работать с новой конфигурацией. Здесь под отключением понимается то, что по какой-то причине перестал работать контроллер соответствующего устройства, и поэтому устройство перестало принимать команды и реагировать на них. Но обычно у устройств типа LAMP или SWITCH или SOCKET контроллер устройства принимает команды и реагирует на них, даже если сама по себе лампа не горит. Если хаб отправил команду какому-то конкретному устройству и не получил от него ответа в течение 300мс, это устройство считается выключенным и на него больше не отправляется команд, а сообщения от него игнорируются, пока это устройство само не объявит о своем включении с помощью запроса WHOISHERE.
Похожие заказы

Разработка на Java

дистанционно
договорная
Привет, я пишу апи тесты и нужно дергать запросы апишками,пейлоады большие и возникают ошибки(ответы некорректные ,null итд) задача сложная и муторная нужна помощь опытного разработчика Язык Java.
Москва Фрилансеры

Разработка на Java

дистанционно
договорная
Привет,сразу скажу что нужна помощь ИСКЛЮЧИТЕЛЬНО ОЧНАЯ(личные встречи) потому что компания запрещает подключаться через телемост сторонним людям я пишу апи тесты и нужно дергать запросы апишками,пейлоады большие и возникают ошибки(ответы некорректные ,null итд) Могу приехать к вам(кафе итд) для решения вопроса Язык Java.
Москва Фрилансеры

Разработка на Java

дистанционно
договорная
Пожелания и особенности: Хочу чтобы обучили алгоритмам чтобы код можно было свободно писать не прибегая к ии и лишнему гугливанию.
Москва Фрилансеры

Разработка на Java

дистанционно
договорная
Cоздание чита для minecraft требования: обширный функционал похожий на чит sigma 5.0(исходники есть на github), обходимость таких серверов как hypixel(полная).
Москва Фрилансеры

Разработка на Java

дистанционно
договорная
Нужен сайт для продажи композиций из сухоцветов. По сути, лендинг с несколькими страницами: на главной логотип и кнопки Наши работы, Композиции в наличии, Заказать и т.д. Каждая ведёт на свою страницу, контент уже готов, останется только сверстать. На всех страницах должны быть кнопка Заказать и ссылки на Телеграм и на партнёрский магазин Флау Вау. Дизайн минималистичный и адаптив под телефон обязателен.
Москва Фрилансеры

Разработка на Java

дистанционно
договорная
Пожелания и особенности: Java-разработчик (Middle) с экспертизой в 1С (опыт более 15 лет), Full-Stack специалист.
Москва Фрилансеры

Разработка на Java

дистанционно
договорная
Пожелания и особенности: Разработка VPN.
Москва Фрилансеры