ЗАО «ЗЭО»

Пожалуйста, войдите или зарегистрируйтесь.

Расширенный поиск  

Новости:

Автор Тема: Как сделать автозапуск приложения на Qt?  (Прочитано 6976 раз)

0 Пользователей и 1 Гость просматривают эту тему.

emc2

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 60

Добрый день.

Поместил в /etc/inittab строку следующего содержания:
tty0::respawn:./usr/qtopia/Test_qwt -qwsПриложение стартует автоматически, но не работает touchscreen. Если запускать из терминала вручную, то все в порядке.
Как правильно сделать автозапуск? Какую консоль использовать?
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: Как сделать автозапуск приложения на Qt?
« Ответ #1 : 09 Февраля, 2010, 14:01:45 »

Например OPIE запускается из /sbin/startup, перезапуск которого указан в /etc/inittab
#!/bin/sh

export QTDIR=/usr/qt
export OPIEDIR=/opt/QtPalmtop
export KDEDIR=$OPIEDIR
export LD_LIBRARY_PATH=$QTDIR/lib:$OPIEDIR/lib:$LD_LIBRARY_PATH
export PATH=$OPIEDIR/bin:$PATH
ROTATION=Transformed:Rot0 # Rotate display by 0 degree (90, 180, 270)
export QWS_DISPLAY=$ROTATION:EP93xx:/dev/fb0
export QWS_SW_CURSOR=0
export QWS_MOUSE_PROTO=IntelliMouse:/dev/input/mice

export TSLIB_PLUGINDIR=/lib/ts
export TSLIB_TSDEVICE=/dev/misc/ep93xx_ts
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_CONSOLEDEVICE=/dev/tty

# Use touch screen if /etc/pointercal not empty
if [ -s $TSLIB_CALIBFILE ] && [ -r $TSLIB_CALIBFILE ] ; then
export QWS_MOUSE_PROTO=TPanel:/dev/misc/ep93xx_ts
fi

if [ ! -d /sys/devices/platform/ep93xxfb ]; then
exec /bin/sh
fi

QPE=$OPIEDIR/bin/qpe
EXAMPLE=/usr/bin/example
if [ -x $QPE ]; then
# Use syslog                                   
exec $QPE -nodaemon 2>&1 | logger
elif [ -x $EXAMPLE ]; then
exec $EXAMPLE
else
exec /bin/sh
fi

Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: Как сделать автозапуск приложения на Qt?
« Ответ #2 : 09 Февраля, 2010, 14:05:30 »

> Как правильно сделать автозапуск?

Если вы замените QPE на вашу QT программу то она будет запускаться.
Такой автозапуск меня устраивает. Обратите внимание на -nodaemon, если это собрано из Crater выложенного на нашем сайте.

> Какую консоль использовать?

Работало и на первой и на второй.
Записан

emc2

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 60
Re: Как сделать автозапуск приложения на Qt?
« Ответ #3 : 09 Февраля, 2010, 15:09:03 »

Спасибо. Заработало.
Имеется еще один вопрос: какие библиотеки можно применить для отображения графиков. может есть какой то опыт успешного применения с QT?
Пробовал библиотеку QWT Uwe Rathmanna - компилируется, но при запуске на платформе выдает segmentation fault. Может у кого получилось портировать на ARM?
Библиотека embedded-widgets компилируется и запускается, но ограничена по возможностям (нет осей координат, легенды и много чего еще нет, что есть в Qwt)
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: Как сделать автозапуск приложения на Qt?
« Ответ #4 : 09 Февраля, 2010, 15:27:23 »

> Пробовал библиотеку QWT Uwe Rathmanna - компилируется, но при запуске на платформе выдает segmentation fault

Segfault не обязательно будет именно по причине библиотеки. Программа на host'е работает?

Вы сами собираете или в какой-то системе сборки?
Я Qwt (вроде без проблем) добавлял к Crater, пример (qt2 и qwt...) есть в wiki
http://www.zao-zeo.ru/dokuwiki/doku.php/linux#qt_qwt_матричная_клавиатура

Examples из самой Qwt тоже при желании собираются.
embedded-widgets не пробовал.
Записан

emc2

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 60
Re: Как сделать автозапуск приложения на Qt?
« Ответ #5 : 09 Февраля, 2010, 15:43:10 »

При сборке Qwt использовал Qwt-5.2.0 + Qt4.5. Собрал сначала libqwt.so.5.2.0 и поместил в директорию /lib платформы, затем собрал примеры из QWT. dials, radio, sliders запускаются, остальные выдают segmentation fault. Интересует сборка именно под QT4, т.к. полностью разрабатываем на нем.
Само ядро линукса собрано без cratera, пропатчил стандартное ядро Вашим патчем. Может быть нужно слинковать статически библиотеку?
Записан