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

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

дистанционно
договорная
Необходимо выполнить учебный проект на Java. Требуется разработать небольшой игровой проект в IntelliJ IDEA на Java 25+ (Maven) согласно техническому заданию университета (полное ТЗ отправлю исполнителю). В ЭТОМ ЗАДАНИИ МОЖНО ПОЛНОСТЬЮ ИСПОЛЬЗОВАТЬ ИИ! Основные требования: * Java 25+; * Maven-проект; * JavaFX (Canvas, GraphicsContext); * ООП (наследование, интерфейсы, инкапсуляция, переопределение методов, разделение по пакетам); * игровая логика с возможностью победы/поражения; * минимум два NPC с поведением на основе конечных автоматов (FSM); * работа с базой данных (SQLite или MariaDB) через JDBC; * DAO-паттерн (минимум 2 DAO-интерфейса и их реализации); * трехслойная архитектура (Model / Controller / DAO); * проект должен полностью собираться и запускаться в IntelliJ IDEA без ошибок. Игра может быть максимально простой. Красивый дизайн, сложная графика и дополнительные функции не требуются. Главное — чтобы были реализованы все обязательные требования задания. Также необходимо подготовить: * AGENTS.md; * минимум один FEATURE.md; * краткую документацию (архитектура проекта, диаграмма/таблица состояний FSM, схема базы данных, несколько скриншотов игры). Полное задание университета (PDF) отправлю исполнителю. Срок: до воскресенья, 5 июля. Перед началом работы прошу подтвердить опыт с JavaFX, Maven и JDBC/SQLite.
Москва Фрилансеры

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

дистанционно
договорная
Программист Java, который доработает, скампелирует через gradlew , исправит ошибки, проект это бот.
Москва Фрилансеры

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

дистанционно
договорная
Выгрузка транскрибированных текстов телефонных диалогов в формате Клиент-Менеджер, отправка в нейросеть, постановка задач нейросети по изучению и анализу информации по определенным темам на основе критериев оценки, выведение результатов анализа и резюме по согласованному алгоритму.
Москва Фрилансеры

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

дистанционно
договорная
Добрый день. Нужно посидеть на собеседовании - скрытно послушать и подсказать, если что. Я пошарю экран, будет слышно и меня и интервьюера. Сам-то я давно работаю разработчиком, я не выпускник курсов, не джун, но ситуация на рынке такова, что каждое собеседование на вес золота, и мне предстоит одно, немного нестандартное, хочу подстраховаться.
Санкт-Петербург Фрилансеры

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

дистанционно
договорная
Пожелания и особенности: Интеграция по api. Вендинг. Не онлайн!.
Челябинск Фрилансеры

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

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

Разработка на 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. Я не технический специалист, поэтому процесс отбора простой. Если профиль подходит, мы созваниваемся, обсуждаем проект по существу и договариваемся о работе. Жду ваших откликов со ссылками на проекты или репозитории.
Москва Фрилансеры