Помощь в написании студенческих работ
Антистрессовый сервис

Разработка алгоритма передачи информационных команд

РефератПомощь в написанииУзнать стоимостьмоей работы

Возможность передачи команд по wi-fi сети — основная функция разрабатываемого приложения, которое создано для контроля роботизированной системы. Каждое действие, совершаемое пользователем, должно иметь свой отклик, т. е. формировать необходимую команду и отправлять ее на обработку и выполнение контроллеру ТРИК. Это сделает отдельный класс, специально спроектированный таким образом, чтобы… Читать ещё >

Разработка алгоритма передачи информационных команд (реферат, курсовая, диплом, контрольная)

Возможность передачи команд по wi-fi сети — основная функция разрабатываемого приложения, которое создано для контроля роботизированной системы. Каждое действие, совершаемое пользователем, должно иметь свой отклик, т. е. формировать необходимую команду и отправлять ее на обработку и выполнение контроллеру ТРИК. Это сделает отдельный класс, специально спроектированный таким образом, чтобы принимать все внутренние действия с главного экрана, формировать команды по ранее спланированному стилю и отправлять на определенный IP-адрес роботизированной системы, заданный в настройках приложения.

Для написания данного класса необходимо вначале определить блок импортов, показанный на рис. 3.

Блок импортов SenderService.

Рис. 3. Блок импортов SenderService

Главный метод класса SenderService — private void connectAsync (), который запускает все необходимые зависимые функции. Также он делает всевозможные проверки, и, при появлении каких-либо ошибок, уведомляет пользователя. К тому же данный метод привязывает нужные lisner’ы. Результатом таких уведомлений является информационное сообщение слева вверху экрана. Это те случаи, когда выводится сообщение об успешном подключении (рис. 4) и о безуспешном (рис. 5).

Экран приложения, когда соединение установлено.

Рис. 4. Экран приложения, когда соединение установлено

Экран приложения, когда соединение не установлено.

Рис. 5. Экран приложения, когда соединение не установлено

Далее, чтобы интерфейс будущего приложения не тормозил, надо запустить новый поток и выполнять все последующие команды в этом вновь созданном потоке, а не в UI-потоке. В этом потоке в основном теле мы вызываем новую функцию connectToTRIK (). Здесь создается новый сокет [10] для создания канала между контроллером ТРИК и смартфоном. Также данному сокету надо выставить необходимые приоритеты:

  • 1. setTcpNoDelay — необходимый флаг, когда нужно передать маленький пакет через tcp соединение;
  • 2. setKeepAlive — флаг, который не позволяет прервать соединение, когда нет пакетов данных;
  • 3. setSoLinger — включение / отключение SO_LINGER с указанным временем задержки в секундах;
  • 4. setTrafficClass — высокий приоритет трафика в системе android.

Далее идет структура try/catch, которая пытается на указанный IP-адрес через определенный в настройках порт соединения послать тестовое сообщение. Если соединение установлено, функция заканчивает свою работу, но если по какой-либо причине не удалось послать тестовое сообщение, то на экран пользователя будет выведено сообщение об ошибке.

Следующим важным методом класса является void send (final String command). Данный метод класса занимается непосредственной отправкой специальных команд контроллеру.

Работа метода начинается с проверки на null pointer exception потока вывода команды на контроллер. Если проверка пройдена, данная функция создает новый поток (asyncTask [11]) и пишет в этот исходный поток необходимую команду. Если произойдут ошибки при передаче, пользователь немедленно будет оповещен с уровнем уведомления 2 (error).

Показать весь текст
Заполнить форму текущей работой