Составители:
Рубрика:
156
всего приложения, чтобы завершать его работу. Сигнал кнопки stop свяжем со слотом stop() таймера,
чтобы останавливать работу таймера. Сигнал кнопки start свяжем со слотом start() нашего класса
CamServerWidget. Сигнал timeout() таймера свяжем со слотом grab() нашего класса, в нем будет вся
функциональность.
Слот start() у нашего класса нужен только для того, чтобы первоначальный запуск таймера
происходил сразу же, через 0 миллисекунд, а не через 6000 миллисекунд (6 секунд), которые задаются
для каждого последующего запуска таймера. При этом установку нулевого таймаута нельзя перенести
из слота в конструктор, потому что в этому случае нулевой таймаут сработает только при первом
нажатии кнопки start, а если мы остановим процесс и запустим его заново, то таймаут уже окажется
ненулевой.
Cлот grab() вызывается таймером с заданной периодичностью и сначала вызывает приложение для
захвата кадра, а затем cUrl для отправки файла на сервер. Для обеих операций установлены таймауты,
чтобы суммарное время выполнения не превышало интервал таймера.
Собирать это приложение мы будем так же прямо в MeeGo. Установим зависимости
yum install make gcc-c++ qt-devel
Собираем с помощью
qmake; make
Перед запуском убеждаемся, что приложение v4l2grab находится в той же директории, камера
подключена, веб-сервер доступен по сети. Запускаем приложение и нажимаем кнопку Start. В
браузере проверяем, что картинка на нашем сервере обновляется каждые 6 секунд. БПЛА можно
отправлять на задание.
Конечно, созданное приложение является всего лишь прототипом. Однако и с его
помощью можно сделать многое – уточнить требование к приложению, проверить
совместимость аппаратуры, оценить требуемые ресурсы, быстро получить тестовое
окружение, провести убедительную демонстрацию. Наконец, прототип можно
усовершенствовать и постепенно превратить в полноценное приложение.
12.2.3. Задания для самостоятельной работы
1. Интегрировать libcUrl в Qt-приложение
2. Отказаться от cUrl/libcUrl и использовать Qt Network
12.3. Выводы
В этой лекции мы начали рассматривать пример разработки практического приложения по захвату
видеокадров, сохранению их п передаче через Интернет в ЦОБ. В следующей лабораторной работе
разработка примера будет продолжена.
12.4. Контрольные вопросы
1) Где расположен драйвер камеры в MeeGo:
1. BIOS
2. Ядро Linux
3. XWindows
4. QT Multimedia Framework
2) Как именуется камера среди устройств MeeGo:
1. /dev/video0
2. /dev/camera
3. /var/webcams/1
4. Имя камеры устанавливается ее производителем
3) Каким образом доступен модем под Linux:
1. Как блочное устройство
Страницы
- « первая
- ‹ предыдущая
- …
- 154
- 155
- 156
- 157
- 158
- …
- следующая ›
- последняя »
