|
Помоготи начать проект с нуля, Программирование под Windows CE |
|
|
|
Jun 2 2010, 09:08
|
Частый гость
 
Группа: Участник
Сообщений: 184
Регистрация: 11-09-08
Пользователь №: 40 121

|
Стоит задача пообщаться через блютуз навигатора с другим устройством . Не разу не программировал под Windows CE. Подскажите , как начать, какую студию выбрать. Пишу на Builder C++. Навигатор HP. Если можно сразу пару премерчиков, типа хелло ворльд. Заранеее спасибо.
|
|
|
|
2 страниц
< 1 2
|
 |
Ответов
(15 - 28)
|
Jun 8 2010, 09:07
|
Частый гость
 
Группа: Участник
Сообщений: 184
Регистрация: 11-09-08
Пользователь №: 40 121

|
Цитата(kosyak© @ Jun 8 2010, 12:50)  Ну..тут я ничего сказать не могу - я не знаю можно ли в CE (именно на вашием устройстве) настроить виртуальный порт на работу с сервисами устройства блютуф...у меня такой возможности не было. Но, например, стэк от Майкросот, для ПК, такие вещи делать позволяет, может быть если у Вас использыется этот же стек то и на ЦЕ тоже это можно... Покажите пожалуйста с чего хоть начать, я сегодня весь день форумы листаю и ничего путного не нашёл. Мнебы хотя бы статус считать какой-нибудь.  Заранее спасибо.
|
|
|
|
|
Jun 9 2010, 04:53
|
Частый гость
 
Группа: Участник
Сообщений: 184
Регистрация: 11-09-08
Пользователь №: 40 121

|
Добрый день, нашёл кусок кода для эмуляции блютуз как ком порт. Скомпелировал. Но эта функция DeregisterDevice(test) не выполныется успешно. Прокансультируйье пожалуйста.
IntPtr test; [DllImport("coredll", EntryPoint = "DeregisterDevice", SetLastError = true)] internal static extern bool DeregisterDevice(IntPtr hDevice); [DllImport("coredll", EntryPoint = "RegisterDevice", SetLastError = true)] internal static extern IntPtr RegisterDevice(string lpszType, int dwIndex, string lpszLib, [Out]PORTEMUPORTPARAMS portInfo); [StructLayout(LayoutKind.Sequential)] internal class PORTEMUPORTPARAMS { public int channel = 1; public int flocal = 0; public ulong device = 0; public int imtu = 0; public int iminmtu = 0; public int imaxmtu = 0; public int isendquota = 0; public int irecvquota = 0; public Guid uuidService; public int uiportflags = 0; } private void RegisterCOMPort() { int i; Encoding ascii = Encoding.ASCII; Byte[] encodedBytes = ascii.GetBytes(textBox1.Text); PORTEMUPORTPARAMS portInfo = new PORTEMUPORTPARAMS(); // Изменить шестнадцатеричного значения в десятичное, потому что так // Microsoft рассчитывает получить его for (i = 0; i < 12; ++i) { int c = encodedBytes[i]; if (c >= 'a') c = c - 'a' + 0xa; if (c >= 'A') c = c - 'A' + 0xa; else c = c - '0'; portInfo.device = (portInfo.device * 16) + (ulong)c; //portInfo.device = (ulong) 0x000AD2102561; } // Intermec принтер настроен на канал 1, поэтому мы не должны использовать // Guid информацию, чтобы найти его. portInfo.channel = 1; portInfo.uiportflags = 0; test = RegisterDevice("COM", 9, "btd.dll", portInfo); if (test != null) label5.Text = "RegisterDevice выполнено успешно"; else label5.Text = "RegisterDevice выполнено не успешно"; } private void button3_Click(object sender, EventArgs e) { //textBox1.Text = bre.strDataBuffer; //textBox1.Text = "001CC4FD01D8"; textBox1.Text = "000AD2102561"; Cursor.Current = Cursors.WaitCursor; Cursor.Show(); RegisterCOMPort();
//... Модули печати ... тут;
if (DeregisterDevice(test)) label6.Text = "DeregisterDevice выполнено успешно"; else label6.Text = "DeregisterDevice выполнено не успешно"; test = IntPtr.Zero; Cursor.Current = Cursors.Default; Cursor.Hide(); }
|
|
|
|
|
Jun 9 2010, 20:31
|
Знающий
   
Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644

|
Книга " Douglas Boling. Programming Microsoft Windows CE .NET, Third Edition" даст ответы на многие вопросы. По указанной ссылке Вы сможете скачать архив с 9 книгами по программированию для WindowsCE,Windows Mobile. Нужная Вам книга в этом архиве - "Programming_Microsoft_WindowsCe.Net_3Ed.chm".
|
|
|
|
|
Jun 10 2010, 11:00
|
Частый гость
 
Группа: Участник
Сообщений: 184
Регистрация: 11-09-08
Пользователь №: 40 121

|
Цитата(Konst_777 @ Jun 10 2010, 00:39)  Спасиюо юольшее. Сйчас буду осваивать. Цитата(Konst_777 @ Jun 10 2010, 00:39)  Всё очень понятно и прекрассно. но не работает. Я даже статус устройтсва получить не могу. Он всё время false возвращает и -1. Всё подключается, никаких исключений нет, а всё равно не работает.  Как я понял из интернета у многих такие проблемы. С чем это может быть связано??? Вроде то ошибиться нечего. функции инмортируются. Может где что в студии настроить надо? С чем это может быть связано???
|
|
|
|
|
Jun 16 2010, 04:53
|
Частый гость
 
Группа: Участник
Сообщений: 184
Регистрация: 11-09-08
Пользователь №: 40 121

|
Цитата(Konst_777 @ Jun 13 2010, 11:20)  Все таки я верю, что если работать по книге "Douglas Boling. Programming Microsoft Windows CE .NET, Third Edition", то все получиться... Но для этого нужно использовать Microsoft eMbedded Visual C++ 4.0 и создавать графический интерфейс с помощью native Win API. Эта технология позавчерашнего дня удручает своей бесперспективностью.
Я попробовал использовать Windows Mobile 6.5.3 Developer Tool Kit (Windows Mobile 6.5.3 Professional). В плане поддержки программирования для Bluetooth, документация очень обнадеживает. Но, не удалась конвертация ни одного примера в Visual Studio 2008 и 2010. Сейчас скачиваю Visual Studio 2005, которая заявлена штатным средством разработки для Windows Mobile 6.5.3 Professional. Попробую запустить примеры в Visual Studio 2005. Только вот, похоже, что скачивать Visual Studio 2005 буду еще несколько дней... Добрый день. Спасибо ещё раз за помощь. Я бился бился, но так ничего и не вышло. Сейчас поменял аппарат на HTC. Но возникла проблема, не одно моё приложение написанное в VS2008 вообще не запускается. НА нём стоит WinMob 6.1. Я с майкрасовтовского сайта скачал сдк для WinMob 6. Но всё равно ничего не работает.  Microsoft eMbedded Visual C++ 4.0 Много примеров. Но я обращаю внимание, на то что люди и в VS тоже удачно пишут. А в ксате помоему VS2010 вообще smart device не поддерживает.
|
|
|
|
|
Jun 17 2010, 14:28
|
Знающий
   
Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644

|
Вообщем, скачал я Visual Studio 2005. Да еще и SP1 к нему.  Все это установил, запустил VS2005 и попробовал откомпилировать примеры из Windows Mobile 6.5.3 DTK. Результаты оказались еще хуже, чем в Visual Studio 2008.  То есть, VS2005 проекты признал своими. Но при компиляции жаловался на плохую библиотеку dll и сокрушенно сообщал, что база проекта разрушена.  Тогда я вернулся в VS2008, предварительно деинсталировав все, что хоть как то было связано с Windows Mobile/CE. Не помогло. При конвертации проектов VS2008 сообщал, то же что и раньше: не установлена платформа, для которой предназначен проект.  И вот тут то мне и помогло Ваше последнее сообщение. Я решил тоже установить Windows Mobile 6 SDK. Скачал и установил их обновленную - Refresh версию. После этого все примеры для Bluetooth из Windows Mobile 6.5.3 DTK (BthChat, btsearch и SpaceWar2D) успешно откомпилировались. Конечно же, попытки запустить примеры на любом эмуляторе заканчивались сообщением:"Socket Error: 10050". А при попытке включить Bluetooth все эмуляторы гордо сообщали: "  There is no Bluetooth hardware installed on this device." Поэтому я подключил к компьютеру через кабель USB реальный смартфон и все примеры перестали жаловаться на отсутствие Bluetooth, как только я его включил в смартфоне. Все это я сделал под Windows XP на нетбуке. В Windows 7 тот же VS2008, при попытке соединиться с любым эмулятором Windows Mobile 6 SDK постоянно аварийно завершает работу и зависает. Какую то стабильность можно получить, если до отладки соединиться с нужным эмулятором. У меня тоже сложилось впечатление, что VS2010 признает только Windows XNA и создание приложений только для Windows Phone 7.
|
|
|
|
|
Jun 24 2010, 07:28
|
Частый гость
 
Группа: Участник
Сообщений: 184
Регистрация: 11-09-08
Пользователь №: 40 121

|
Цитата(Konst_777 @ Jun 17 2010, 20:28)  И вот тут то мне и помогло Ваше последнее сообщение. Я решил тоже установить Windows Mobile 6 SDK. Скачал и установил их обновленную - Refresh версию. После этого все примеры для Bluetooth из Windows Mobile 6.5.3 DTK (BthChat, btsearch и SpaceWar2D) успешно откомпилировались.  Занимался другим проектом пока. А сейчас вновь вернулся к этой задаче и на HTC написал гиертерминал для общения через ком - порт. Эмулируем блютуз устройство, как ком порт и всё просто суер работает. Теперь вот думаю, как непосредственно с блютузом поработать. Изучаю посаветанную литературу.
Сообщение отредактировал rezident - Jun 26 2010, 01:11
Причина редактирования: Нарушение п.3.4 Правил форума.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|