Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Первый выпуск. Статья "Компьютер на ладони" - о программировании на карманных ПК. Содержание "К+П" N2/2002


Служба Рассылок Subscribe.Ru

Лучшие статьи журнала "Компьютеры+Программы"

Здравствуйте, уважаемые читатели!

Знакомьтесь: "Компьютеры+Программы", ежемесячный журнал о современных компьютерных технологиях и их практическом применении в самых разных областях. Для краткости и в личной беседе можно попросту "К+П".

Основная масса нашей информационной нагрузки ложится на мозги "бумажных" читателей, но теперь кое-что с этого стола будет перепадать и вам, читателям электронной рассылки. Почему только кое-что? Помилуйте, но мы при всем желании не можем втиснуть в рассылку все 80 полос, да еще с картинками! Так что не обессудьте… Зато уж кусочки будем отбирать самые лакомые.

Что же выбрать на первый раз, из январского номера? Статью о том, как из компьютера и телетюнера сделать видеодвойку? Или о том, как устроен мультимедийный проектор… А может быть, о том, как Иван-сисадмин при помощи Wake On LAN локальную сеть "будил" и головы не сносил?.. Нет, пожалуй, лучше о том, как пишут программы для карманных компьютеров на этих же самых компьютерах.

А чтобы мне больше не пришлось гадать, обратите внимание на содержание февральского номера "К+П" в конце этого выпуска рассылки. Проголосуйте за понравившуюся вам статью. Та статья, которая наберет больше всего ваших голосов, и будет опубликована следующий раз.

Компьютер на ладони

ПК на ладони? Это уже давно не ново - скажет юзер.
ПК на ладони? Такого не бывает - скажет программист.
Слишком по-разному воспринимают они слово "компьютер"

В эпоху, когда "умные" чипы расползаются по бытовым и носимым устройствам, слово "компьютер" стало терять свой первоначальный смысл. Уже немногие помнят, что стандартный PC стал популярным благодаря своей универсальности. Для программиста или человека, который использует ПК не только как печатную машинку, компьютер означает платформу + ОС + инструментальные средства разработки. Для первых "наладонников" был характерен жестко ограниченный (хоть и вполне достаточный в большинстве случаев) набор функций, из-за чего их и назвали PDA (персональный цифровой помощник). Термин КПК появился сравнительно недавно, и, как и в случае с IBM PC, ситуация изменилась только тогда, когда ОС, ПО и "железо" стали поставляться отдельными производителями, то есть архитектуры стали открытыми.

На сегодня КПК - это полноценные компьютеры, имеющие не только инструментальные средства разработки, но и альтернативные ОС. Возможно, именно это сыграет решающую роль в их популяризации в Украине. Для рядового отечественного пользователя КПК пока слишком дороги, но они вполне могут оказаться незаменимой платформой для специфичных приложений. Этому особо способствуют развитые коммуникационные возможности КПК, в частности, передача информации по GSM-сетям и использование GPS - глобальной системы позиционирования.

Средства разработки для Windows CE

На сегодня одной из самых распространенных ОС для КПК является Windows CE, поэтому в первую очередь мы заинтересовались инструментарием именно для нее. В качестве подопытного кролика был использован КПК Compaq iPAQ (см. рис. 1).

Первоначально проблема поиска инструментария представлялась нам довольно сложной. ПО для компактных и специализированных устройств, как правило, разрабатывается с помощью дорогих и сложных кросс-средств. Есть, правда, еще вариант с Java, но для iPAQ и она тоже стоит денег. Однако поисковая система сразу вывела на сайт Microsoft, где бесплатно (то есть даром) раздается Microsoft eMbedded Visual Tools (далее - eVT). Содержимое этого набора просто поразило. В него входит не только SDK для всех поддерживаемых платформ (Pocket PC, H/PC Pro, Palm-size PC 1.2), но и программные эмуляторы Windows CE на этих платформах. То есть разработку и отладку можно вести, вообще не имея такого устройства под рукой! Кроме того, там находится самое приятное - eMbedded Visual Basic 3.0 (далее - eVB) и eMbedded Visual С++ 3.0.

Разработка приложений ведется на обычном ПК, а для запуска или отладки eVB связывается с КПК, передает в него программу и запускает. Если разработка идет в eVB (с eVC++ такое у нас не получилось), то запуск программы можно осуществлять прямо в эмуляторе.

EMBEDDED VISUAL BASIC 3.0

Visual Basic всегда был удобным и простым инструментом для разработки нетребовательных к быстродействию программ. Не исключение и его eMbedded-версия.

После запуска в окне New Project необходимо выбрать целевую платформу. В случае с iPAQ это 'Windows CE for the Pocket PC project'.

После этого eVB создаст новый проект с единственной формой, размеры которой совпадают с размером экрана на целевой платформе.

Если просмотреть свойства проекта (в меню Project > Project1 properties), то в качестве целевой платформы можно выбрать Pocket PC Emulation (программы будут запускаться в эмуляторе) или Pocket PC (Default Device) (программы будут запускаться на iPAQ, подключенном к ПК - рис 2).

Бейсик есть Бейсик. Особых проблем с его освоением, как правило, не возникает. Поэтому, не читая документации, сразу беремся за дело. Стандартная форма дебюта - это программа типа "Hello world". Мы просто разместили кнопку "Hello" и текст "Ok". Для события нажатия кнопки определили следующее действие:

If Label1.Caption = "Ok" Then Label1.Caption = "Yes" Else Label1.Caption = "Ok"

Теперь нажимаем кнопочку панели инструментов "Start debug" и видим результат: при каждом нажатии на кнопку, текст весело отзывается Yes, Ok, Yes, Ok … (см. рис. 3).

На первую программу ушло полминуты. Неплохо, идем дальше. Хотим меню. В палитре компонентов ничего по этому поводу нет, поэтому идем в меню Project>Components… Здесь, собственно, и скрывается вся возможная стандартная функциональность наших программ (см. рис. 4).

Отмечаем компонент MenuBar Control и размещаем его в нашей форме (неважно где - компонент не визуальный, т. е. во время выполнения не виден). Тут, собственно, наша кавалерийская атака и закончилась. Никаких средств визуального построения меню нет, имеется единственный пункт New, который можно отключить, присвоив свойству NewButton значение False. Нужно лезть в документацию. Компонент MenuBar Control конфигурируется только через программный код. Меню обычно формируется в момент загрузки формы, поэтому после код желательно разместить в процедуре Load формы. Для создания заготовки процедуры в окне кода в левой верхней кнопке со списком выбираем Form в правой верхней - Load. После этого редактор размещает в коде программы следующую заготовку процедуры:

Private Sub Form_Load()
End Sub

По совету справочной системы вставим в нее следующий код:

Private Sub Form_Load()
Dim mnuFile As MenuBarLib.MenuBarMenu
Dim mnuEdit As MenuBarLib.MenuBarMenu
Set mnuFile = MenuBar1.Controls.AddMenu("File", "mnuFile")
mnuFile.Items.Add 1, "mnuFileOpen", "Open"
mnuFile.Items.Add 2, "mnuFileAdd", "Add"
mnuFile.Items.Add 3, "mnuFileUpdate", "Update"
mnuFile.Items.Add 4, "mnuFileDelete", "Delete"
Set mnuEdit = MenuBar1.Controls.AddMenu("Edit", "mnuEdit")
mnuEdit.Items.Add 1, "mnuEditSort", "Sort"
mnuEdit.Items.Add 2, "mnuEditFind", "Find"
End Sub

В принципе, все достаточно просто. ".AddMenu(" добавляет новый пункт меню с заданным именем и массивом подпунктов, имеющих тип MenuBarLib.MenuBarMenu. После запуска программы получаем красивое меню.

project_menu.bmp

Обработка события выбора пункта меню производится в процедуре MenuClick компонента меню. Выглядит это примерно так:

Private Sub MenuBar1_MenuClick(ByVal Item As MenuBarLib.Item)
Select Case Item.Key
Case "mnuFileOpen"
Label1.Caption = "Открыть"
Case "mnuFileAdd"
Label1.Caption = "Добавить"
Case "mnuFileUpdate"
Label1.Caption = "Обновить"
Case "mnuFileDelete"
Label1.Caption = "Удалить"
Case "mnuEditSort"
Label1.Caption = "Навести порядок :)"
Case "mnuEditFind"
Label1.Caption = "Обнаружить :)"
End Select
End Sub

Теперь поведение нашей формы стало намного интересней (см. рис. 5), хотя все равно игрушечки. Для того чтобы стать полноценной, программа наша должна научится работать с базами данных.

И тут начинается настоящее развлечение. Стандартных компонентов для работы с БД в палитре нет. Нужная нам функциональность есть в библиотеке ATL, в компоненте CE ADO control. Ее нужно подключить с помощью пункта меню Project > References… Кроме того, понадобится компонента CE File System и соответствующий ей компонент из палитры инструментов (меню Project > Components…). ADOCE позволяет программно создавать и изменять базы данных. Его основа - объект Recordset, через который происходит чтение и управление данными. В контексте Recordset существуют объекты Field, составляющие его поля для каждого столбца. Объект Connection используется для соединения с источником данных.

Для демонстрации работы с БД мы несколько изменили нашу первоначальную форму (см. рис. 6).

Кнопку удалили, текстовое поле теперь служит для вывода диагностики, а объект типа ListBox - для показа записей базы данных. Все манипуляции с БД происходят из измененного меню. Полный текст программы приведен в листинге 1, а результат работы - на рис. 7.

EMBEDDED VISUAL C++ 3.0

Разрабатывать программы на eVB очень легко и быстро, но и недостатки тоже есть. Выполнение VB-программ в Windows CE происходит с помощью интерпретатора, что не способствует особому быстродействию. Запущенный нами "сапер" из примеров работал ну очень медленно. Для создания native exe программ нужен eVC++. Кроме того, с его помощью можно создавать MFC-приложения, ATL-компоненты и библиотеки. Обратная сторона медали - сложность. Кроме того, запуск и отладка создаваемых приложений происходит только на присоединенном КПК.

Write Once Work Anywere

Написанное однажды работает везде. Естественно, речь идет о Java. Как было сказано ранее, JVM для КПК на Windows CE - платные (Начиная с модели iPAQ Pocket PC H3800, вместе с КПК стандартно поставляется Jeode PDA Edition). Хотя и не слишком дорогие - Jeode runtime для iPAQ стоит $19,99. Кроме того, "есть мнение" что Java-приложения работают медленно. На наш iPAQ мы поставили JVM от Jeode (на рис. 8 показано выполнение тестовой графической программы). Естественный минус (хотя это, скорее, недостаток Windows CE, ведь ОС для портативного устройства ОБЯЗАНА поддерживать Java) - на JVM нужно отдать около 3 Мб ОЗУ. Достоинства - JVM от Jeode работает очень быстро, визуально намного быстрее, чем родной интерпретатор Бейсика. А если учесть, что в состав Jeode входит Java-консоль, которая позволяет запускать/отлаживать программы в исходниках (см. рис. 9), то это чуть ли не единственная платформа разработки, которая может использоваться без ПК.

Другие средства разработки

Количество средств разработки, доступных программистам, далеко не исчерпывается приведенными выше. Из свободных средств хотелось бы отметить dsFORTH - мультиплатформенную FORTH-систему от российской фирмы Delosoft, работающую под Windows CE,9x,ME,NT,2000. А есть еще Linux…

На сегодняшний день для iPAQ существует семь (!!!) дистрибутивов Linux - от очень компактных до "монстров", требующих винчестера MicroDrive, но предоставляющих в распоряжение пользователя те же возможности, что и у настольного ПК. Естественно, все средства Linux-разработки также доступны для КПК, а программы, написанные с использованием популярных библиотек QT и GTK+ вообще не требуют переработки.

Сергей АНТОНЧУК

СОДЕРЖАНИЕ "К+П" N 2/2002

Александр Ваврисевич
Сокетный период процессорной эры - от 370 до 478
Борьба между ведущими компаниями-производителями процессоров продолжается. Что определит победителя в этой гонке - частота, производительность, стоимость?…

Евгений Высокович
Ваш карманный помощник
Наверняка каждый пользователь ПК мечтает быть независимым от своего настольного помощника. Однако ноутбук и дороговат, и в карман его не положишь. Различные PDA, казалось бы,- то что надо, но работа с ними все-таки отличается от того, к чему мы привыкли. Устройство, о котором пойдет речь в этой статье, handheld-компьютер HP Jornada 720

Сергей Антончук, Владимир Сайко
Электронная почта в мобильных телефонах
В последнее время в мобильных телефонах стали появляться полноценные e-mail клиенты

Эдуард Комухаев
Проектирование устройств на ПЛИС - примеры разработки
Одной из основных причин спада объема продаж электронных компонентов и затоваривания складов в 2001 г. аналитики называют недостаток инструментальных средств EDA нового поколения. HDL-языки позволяют наиболее полно формализовать описание функционирования разрабатываемой цифровой системы.

Олег Степаненко
Электрическая бумага
Существуют эбонитовые, шерстяные, шелковые и прочие предметы, насыщенные электричеством. Оказывается, бумага также может быть источником электроэнергии

Таисия Боровская, Ирина Колесник, Виктор Северилов
Детская экономика
Аннотация: Примеры моделирования и оптимизации производственных систем с помощью MathCAD

Владимир Безмалый
Программные средства наблюдения за персоналом
Наиболее уязвимый элемент любой компьютерной системы - это люди, которые с ней работают. Именно они представляют наибольшую угрозу компьютерной безопасности.

Юрий Горский
Работа с последовательными портами
В настоящее время существует множество устройств, которые обмениваются с компьютером информацией через последовательный порт (COM1, COM2) по протоколу RS-232. Но, как ни странно, информации о работе с последовательными портами в программах под Win32 очень мало.

Вячеслав Яковенко
JavaCC - маленький дракон с большими возможностями
Задумывались ли Вы, уважаемый читатель, о том, как создаются новые языки программирования? А может быть, Вы даже пробовали создать свой интерпретатор или компилятор?

Юрий Коротун
Опыт оффшорного программирования: практикум для начинающих
Телеработа для IT-специалистов... Это магическое словосочетание неизменно привлекает внимание не только программистов, но и просто грамотных пользователей ПК, настойчиво листающих веб-страницы в поисках достойной работы или просто дополнительного заработка.

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

Александр Маринич
Kai's Power Tools - красота по-американски
Стиль MetaCreations так не похож на привычные серые кнопки Windows! Не зря в лицензионном соглашении написано, что авторскими правами защищается также "внешний вид и ощущение от продукта"…

Елена Полонская
Осваиваем HTML. Гипертекстовые ссылки
Очередная статья из цикла для начинающих веб-дизайнеров. О том, как строятся взаимосвязи между веб-страницами и веб-сайтами.

Юрий Горский
Способ быстрой установки Windows 98 Как переустановить Windows за 10 минут

Андрей Дунский
Призрак Нортона, или Малина для сисадмина-3
Вы никогда не считали, сколько раз за год приходится переустанавливать себе, друзьям или сотрудникам всеми любимые "Форточки"? А сколько на это уходит времени? А на установку необходимых для работы драйверов и приложений, которых, по всем законам подлости, никогда не бывает в достаточном количестве под рукой?

Татьяна Li_
Как я стала сисадмином Кто, где и в каких лабораториях сделал программистов?..

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

До следующего выпуска!
Елена Полонская, редактор "К+П"
www.cp.comizdat.com

Перепечатка материалов этой рассылки разрешается только по согласованию с редакцией журнала "Компьютеры+Программы"


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное