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

Разработка на 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

дистанционно
договорная
Пожелания и особенности: О проекте: Архитектура проекта подразумевает разделение на on-chain смарт-контракты и высокоскоростной off-chain торговый движок. Запуск разработки запланирован до августа. Кого я ищу? Мне нужен сильный Senior Backend Разработчик, который станет техническим ядром проекта. Ваша главная задача — разработка Trading Engine (исполнение ордеров, расчет P&L, трансляция котировок) с задержкой менее 100ms на ордер. Технологический стек: Node.js, TypeScript, Fastify; Настройка серверной архитектуры (Main VPS + Hot Standby VPS); Redis (кэш котировок, Pub/Sub для масштабирования); WebSocket-сервер для реалтайм-трансляции данных; Интеграции: CoinGecko Pro API, Pyth Network. Условия: Формат: Full-time, полная удаленка. Оплата: ориентировочно 3000 USD в месяц. Процесс найма: Я ценю ваше время. Никаких тестовых заданий, многочасовых лайв-кодингов и общения с HR. Я не технический специалист, поэтому процесс отбора простой. Если профиль подходит, мы созваниваемся, обсуждаем проект по существу и договариваемся о работе. Жду ваших откликов со ссылками на проекты или репозитории.
Москва Фрилансеры

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

дистанционно
договорная
Можно сделать процентов 70-90 от задачи.
Москва Фрилансеры

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

дистанционно
договорная
Java.
Москва Фрилансеры

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

дистанционно
договорная
Пожелания и особенности: Решение нужно будет сегодня, надо написать проект расшифровывать текста, есть задание и критерии.
Москва Фрилансеры

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

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

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

дистанционно
договорная
Нужно написать бек сайта на сайте нужно сделать 4 микра сервиса 1) Форма отправки на почту 2) Форма отправки на почту и фотографиями 3) БД с ручным заполнением 4) БД в ставкой в каталог и в идеале с парсенгом данных с другого сайта.
Москва Фрилансеры

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

дистанционно
договорная
Нужно выполнить 4 лабораторные работы по Java на тему программы-имитатора банкомата и подготовить по каждой лабораторной полноценный отчёт по требованиям преподавателя. Главный приоритет — правильное оформление отчёта по ТЗ преподавателя. Код может быть простым, но должен быть рабочим, понятным и с объяснением. Можно использовать нейронку. Код допускается простой, без лишнего усложнения. Главное, чтобы он соответствовал заданию, запускался и его можно было объяснить. Задания можно посмотреть по ссылке(в более удобном формате), а также прикрепил файлы. Ссылка: https://disk.yandex.ru/d/-ds9tgIqkH5zSw.
Москва Фрилансеры