Russian Qt Forum

Qt => Qt Embedded => Тема начата: dd от Сентябрь 01, 2010, 05:53



Название: Статус батареи
Отправлено: dd от Сентябрь 01, 2010, 05:53
Всем привет!
Перерыл весь инет, не нашел пока решения.
Поставил Windows CE 5.0 STANDARD SDK совместно с QT, спасибо автору http://ufna.ru/2010/03/23/pna-mod-qt-4-wince-build .
VC 2005.
Все нормально работает, программы запускаются на девайсе.
Возникла необходимость получать статус батареи.
В инете куча инфы с использованием функций:

Код:
GetSystemPowerStatus
GetSystemPowerStatusEx
RegisterPowerSettingNotification
RequestPowerNotifications
DevicePowerNotify
и тд

В заголовочных файлах SDK их нет почему-то (автопоиском искал даже).
Хотя товарищи упорно говорят обратное: http://msdn.microsoft.com/en-us/library/aa453172.aspx
Этой ф-ии нет ни в winbase.h, ни в coredll.lib (я вручную описал функцию).
Я уже пытался вынуть инфо по батарее из реестра по адресу HKEY_LOCAL_MACHINE  - System\\State\\Battery, тщетно.

Короче убил кучу времени. Нужна помощь.
Спасибо.

PS Уже собираюсь поставить QT Mobility, но ради этой функции что-то не хочется тянуть ее, да и не собирается у меня почему-то.
Кстати может есть у кого опыт сборки этой библиотеки для wince + VC2005 ?


Название: Re: Статус батареи
Отправлено: pastor от Сентябрь 01, 2010, 10:55
PS Уже собираюсь поставить QT Mobility, но ради этой функции что-то не хочется тянуть ее, да и не собирается у меня почему-то.
Кстати может есть у кого опыт сборки этой библиотеки для wince + VC2005 ?

Какая версия Qt? Какая версия Qt Mobility? Лог сборки сюда.


Название: Re: Статус батареи
Отправлено: dd от Сентябрь 01, 2010, 16:55
Очень нужна помощь по основному вопросу  о батарее.

По поводу Mobility:
Код:
http://qt.nokia.com/developer/new-qt-apis
Mobility 1.1.0 - source .zip
qt 4.6.3
VC2005
WINCE_5.0_STANDARD_SDK from MS
Windows XP (на WMWare)
Читаю мануал:
http://doc.qt.nokia.com/qtmobility-1.1-tp/installation.html#building-for-windows-ce
Копирую все в папку, открываю консоль VC2005, захожу туда, набираю
Код:
configure
конфигурится.
Потом судя по мануалу надо набрать make.
Ни программы ни команды такой нет у меня, набираю
Код:
nmake
минут 10 собирается, после чего обламывается.
Лог длинный. Может быть я чего-то не так изачально делаю?

[Добавлено]
Запустил повторна nmake, вот что получилось:
(http://s006.radikal.ru/i214/1009/1b/1e19b4fffb4bt.jpg) (http://radikal.ru/F/s006.radikal.ru/i214/1009/1b/1e19b4fffb4b.jpg.html)




Название: Re: Статус батареи
Отправлено: pastor от Сентябрь 01, 2010, 19:12
У тебя Qt Mobility 1.1.0. Для её сборки нужна Qt 4.7.0.

Далее:

1) Запускаем setcepaths скрипт
2) configure
3) nmake
4) nmake install


Название: Re: Статус батареи
Отправлено: dd от Сентябрь 01, 2010, 20:01
Спасибо, попробую - отпишу.
А ты юзал это творение? Как по оущениям?
Сильно тяжелое? Не глючит?
И при переходе с QT 4.6.3 на 4.7 у меня ничего не повалится?


Название: Re: Статус батареи
Отправлено: pastor от Сентябрь 01, 2010, 20:41
Спасибо, попробую - отпишу.
А ты юзал это творение? Как по оущениям?
Сильно тяжелое? Не глючит?

Творение впринципе не тяжелое, с каждой очередной версией работает стабильнее,
но глюки всеравно имеються. Приходиться багрепортить.

API еще не стабильное. Даже на багфикс релизах наблюдались изменения в API.

Ну, а вобщем, потихоньку начинать юзать можно ))

И при переходе с QT 4.6.3 на 4.7 у меня ничего не повалится?

Если не хочешь переходить на 4.7, то возьми Qt Mobility 1.0.2


Название: Re: Статус батареи
Отправлено: dd от Сентябрь 01, 2010, 21:42
Качнул 1.0.2, набрал configure, сконфигурилось.
Дальше набрал "nmake"
(http://s002.radikal.ru/i200/1009/fe/c758e0bc556bt.jpg) (http://radikal.ru/F/s002.radikal.ru/i200/1009/fe/c758e0bc556b.jpg.html)


Название: Re: Статус батареи
Отправлено: pastor от Сентябрь 01, 2010, 22:35
setcepaths скрипт запускал перед началом конфигурации? Выполни поиск на предмет gpsapi.h.

Дрйгой вариант это собрать только нужный тебе модуль, например: configure -modules <нужный модуль> <...>


Название: Re: Статус батареи
Отправлено: dd от Сентябрь 01, 2010, 23:05
Ну вот полый лог моих действий:
(http://i064.radikal.ru/1009/1a/b28ef8e276e7t.jpg) (http://radikal.ru/F/i064.radikal.ru/1009/1a/b28ef8e276e7.jpg.html)
(http://s39.radikal.ru/i084/1009/62/cecdd4c899aet.jpg) (http://radikal.ru/F/s39.radikal.ru/i084/1009/62/cecdd4c899ae.jpg.html)
(http://s003.radikal.ru/i204/1009/21/5025df89c8a8t.jpg) (http://radikal.ru/F/s003.radikal.ru/i204/1009/21/5025df89c8a8.jpg.html)


Название: Re: Статус батареи
Отправлено: pastor от Сентябрь 01, 2010, 23:44
Немогу найти информацию, какая минимальная версия CE должна быть. По предварительному поиску - 6.0.

Или возможно в стандартном SDK нет этих инклудов.

Утверждать небуду.


Название: Re: Статус батареи
Отправлено: dd от Сентябрь 02, 2010, 08:27
Вопрос с батареей остается открытым (


Название: Re: Статус батареи
Отправлено: kuzulis от Сентябрь 02, 2010, 09:05
А что мешает самому декларировать эти функции и вызывать их динамически из Kernel32.dll ?
-
И вообще, для начала неплохо бы с просмотреть Kernel32.dll из WinCE на наличие этих API функций. Например каким нить просмотрщиком dll-лок типа плагина в TotalCommander.


Название: Re: Статус батареи
Отправлено: dd от Сентябрь 03, 2010, 08:13
Временно удалено автором.