motofan logo
11 страниц V « < 6 7 8 9 10 > »         
> 

P2Kapi, Вопросы

Synergy
сообщение 30.9.2006, 15:45


MotoLoudness
*****

Группа: Администраторы
Сообщений: 366
Регистрация: 25.1.2006
Из: Уфа
Пользователь №: 67 254
Модель телефона: OnePlus 9 Pro 5G

Рейтинг: 402



Beast6666, тупо но это так
Код


function TEasyMoto.FSCount(d:string; fmt:string):integer;
var
req:string;
begin
req:=\'/\'+d+\'/\'+fmt;
Result:=File_CountEx(req);
end;

Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Bekass
сообщение 28.11.2006, 12:29


Новичок
*

Группа: Пользователи
Сообщений: 15
Регистрация: 8.11.2006
Пользователь №: 106 237
Модель телефона: E770

Рейтинг: 1



Возобновлю тему ....
Есть функция

void (__stdcall*hP2K_Mode_SwitchToP2K)(void*);

заполняю

sp = ::GetProcAddress(HP2KDLL,"Mode_SwitchToP2K");
if (NULL != sp)
hP2K_Mode_SwitchToP2k = (void (__stdcall*)(void*))sp;
тут все нормально ....

Но при вызове
hP2K_Mode_SwitchToAT(NULL);
Вылетает с ошибкой указателя стека :
The value of ESP was not properly saved across a function call.
... function declared with qone calling convention with a function pointer declared with a difrent calling convertion.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dwALX
сообщение 30.11.2006, 9:54


McLaren fan
****

Группа: Пользователи
Сообщений: 230
Регистрация: 27.4.2005
Из: Саратов
Пользователь №: 41 466
Модель телефона: MOTOMING A1200e

Рейтинг: 399



Bekass,
Цитата(p2kapi.txt)
Mode_SwitchToAT()
  Switch phone from P2K mode to AT
  (no return value)

т.е. не void*, а просто void
void (__stdcall*hP2K_Mode_SwitchToP2K)(void);
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Bekass
сообщение 30.11.2006, 14:40


Новичок
*

Группа: Пользователи
Сообщений: 15
Регистрация: 8.11.2006
Пользователь №: 106 237
Модель телефона: E770

Рейтинг: 1



В документе
Функции:

Mode_SwitchToP2k(StatusProc)
переключает телефон из AT режима в P2K
если не была вызвана P2K_Init, то она вызывается с параметром StatusProc, в других
случаях этот параметр не используется
(функция ничего не возвращает)

void (__stdcall*hP2K_Mode_SwitchToP2K)(void*);

Mode_SwitchToAT()
переключает телефон из P2K режима в AT
(функция ничего не возвращает)
А тут действительно
void (__stdcall*hP2K_Mode_SwitchToAT)();

Такое ощущение что эти новые функции что-то затерают.......

Да.. и еще вопрос назрел...
У меня на телефоне два диска a и e, а File_Count и File_List возвращают только то что на диске [а], а как же до [е]
достучаться :o ????
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
MOTOROKR
сообщение 30.11.2006, 15:49


Гуру
******

Группа: Разработчики
Сообщений: 933
Регистрация: 11.9.2005
Из: RU-MOW (ISO-3166-2)
Пользователь №: 51 143
Модель телефона: VA76r (Tundra)
Прошивка: Various

Рейтинг: 476



FileCountEx
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Bekass
сообщение 30.11.2006, 16:01


Новичок
*

Группа: Пользователи
Сообщений: 15
Регистрация: 8.11.2006
Пользователь №: 106 237
Модель телефона: E770

Рейтинг: 1



FileCountEx вроде подходит , спасибо .....
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dwALX
сообщение 30.11.2006, 18:18


McLaren fan
****

Группа: Пользователи
Сообщений: 230
Регистрация: 27.4.2005
Из: Саратов
Пользователь №: 41 466
Модель телефона: MOTOMING A1200e

Рейтинг: 399



Цитата(Bekass @ Четверг, 30 Ноября 2006, 17:40)
В документе
Функции:

Mode_SwitchToP2k(StatusProc)
  переключает телефон из AT режима в P2K
  если не была вызвана P2K_Init, то она вызывается с параметром StatusProc, в других
  случаях этот параметр не используется
  (функция ничего не возвращает)

void (__stdcall*hP2K_Mode_SwitchToP2K)(void*);

Mode_SwitchToAT()
  переключает телефон из P2K режима в AT
  (функция ничего не возвращает)
А тут действительно
void (__stdcall*hP2K_Mode_SwitchToAT)();

Такое ощущение что эти новые функции что-то затерают.......



А что теперь не работает? И код желательно.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Bekass
сообщение 1.12.2006, 8:15


Новичок
*

Группа: Пользователи
Сообщений: 15
Регистрация: 8.11.2006
Пользователь №: 106 237
Модель телефона: E770

Рейтинг: 1



Приводил

Функция

Код
void (__stdcall*hP2K_Mode_SwitchToP2K)(void*);


заполняю

Код
sp = ::GetProcAddress(HP2KDLL,"Mode_SwitchToP2K");
if (NULL != sp)

hP2K_Mode_SwitchToP2k = (void (__stdcall*)(void*))sp;

тут все нормально ....

Но при вызове

Код

void notFound(int c)
{
    if(!c)
 MessageBox(NULL,"Device not found","Alert",0);
    else
 MessageBox(NULL,"Device was found","Alert",0);
}
int CP2K::Init()
{
    if (hP2K_Init != NULL)
    {
 hP2K_Init(notFound);
 hP2K_Mode_SwitchToP2k(notFound);
 return 0;
    }
    else return -1;
}




Вылетает с ошибкой указателя стека :

The value of ESP was not properly saved across a function call.
... function declared with qone calling convention with a function pointer declared with a difrent calling convertion.



И еще про FileCountEx
Код
long (__stdcall*hP2K_File_CountEx)(char *);

Вызываю с параметром

Код
hP2K_File_CountEx("/e")

Виснет намертво ..... :(
Таким образом до диска /е достучаться не могу...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dwALX
сообщение 1.12.2006, 9:00


McLaren fan
****

Группа: Пользователи
Сообщений: 230
Регистрация: 27.4.2005
Из: Саратов
Пользователь №: 41 466
Модель телефона: MOTOMING A1200e

Рейтинг: 399



Цитата
И еще про FileCountEx


Цитата
File_CountEx(lpstr disk_and_mask);
    получает инфомацию о количестве файлов в телефоне
    возвращает количество файлов или -1 в случае ошибки.
    lpstr disk_and_mask - указатель на строку с именем диска и маской
    файлов для поиска.
    например: "/c/*.mp3"

вызывай с параметром "/e/*"

Цитата
hP2K_Init(notFound);
hP2K_Mode_SwitchToP2k(notFound);
Вылетает с ошибкой указателя стека :

The value of ESP was not properly saved across a function call.
... function declared with qone calling convention with a function pointer declared with a difrent calling convertion.


А зачем тут Mode_SwitchToP2k вызывать? В данном случае это не надо, Init все сделает.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Bekass
сообщение 4.12.2006, 9:17


Новичок
*

Группа: Пользователи
Сообщений: 15
Регистрация: 8.11.2006
Пользователь №: 106 237
Модель телефона: E770

Рейтинг: 1



А кто File_VolInfo(ptr Buffer) пользовался ???
Что-топосле ее вызова весть стек портиться.... и ...... :o

Все, разобрался, передавал буфер в 200 байт , видимо было мало....поставил 0х200 - пошло.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dwALX
сообщение 4.12.2006, 10:14


McLaren fan
****

Группа: Пользователи
Сообщений: 230
Регистрация: 27.4.2005
Из: Саратов
Пользователь №: 41 466
Модель телефона: MOTOMING A1200e

Рейтинг: 399



Цитата(Bekass @ Понедельник, 4 Декабря 2006, 12:17)
А кто File_VolInfo(ptr Buffer)  пользовался ???
Что-топосле ее вызова весть стек портиться.... и ...... :o

Все, разобрался,  передавал буфер в 200 байт , видимо было мало....поставил 0х200 - пошло.
*


Все правильно сделал.
В описании написано 128 байт, но реально надо 512.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Stigmata
сообщение 5.12.2006, 13:17


Новичок
*

Группа: Пользователи
Сообщений: 6
Регистрация: 21.3.2006
Из: Беларусь, Минск
Пользователь №: 75 252
Модель телефона: V635
Прошивка: R474_G_08.48.6FR_Patched

Рейтинг: 0



[OFF]С того времени как закрыли тему "Внимание! Делаем Классы Bt От L7 На Е398, Инструкция от Vilko внутри темы", я все время терзаю себя вопросом, что дальше? Будет ли Vilko внедрять классы в прошивку? Извините, нигде не нашел ответ на этот вопрос.[/OFF]
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Sleider
сообщение 1.1.2007, 12:44


Новичок
*

Группа: Пользователи
Сообщений: 1
Регистрация: 1.1.2007
Пользователь №: 114 243
Модель телефона: C650
Прошивка: 03R

Рейтинг: 0



Здоров!
Всех с Новым Годом!

Ребят не можете научить работать с библиотеками?!
Покажите пример работа с p2kapi.dll, чтобы я мог научиться работать и с библиотеками
и с P2KApi!



Ой забыл сказать.

Я работаю на Delphi.
Сможете показать пример на Delphi.

У меня Delphi 2005
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Synergy
сообщение 6.1.2007, 18:46


MotoLoudness
*****

Группа: Администраторы
Сообщений: 366
Регистрация: 25.1.2006
Из: Уфа
Пользователь №: 67 254
Модель телефона: OnePlus 9 Pro 5G

Рейтинг: 402



Sleider,
Зайди ко мне на сайт и скачай EasyMoto 0.27 Это как раз для новичков многие функции библиотеки там описаны что да как.
PAS в архиве. дУмаю разберешься.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
motoprogger
сообщение 7.1.2007, 7:58


Гуру
******

Группа: Разработчики
Сообщений: 1 327
Регистрация: 20.7.2006
Из: Г. Омск
Пользователь №: 92 049
Модель телефона: C380 и Talkabout
Прошивка: разные

Рейтинг: 510



Я почитал исходники последней P2KApi. Нужно переходить на более прогрессивные ассемблеры. Хотя бы с поддержкой синтаксиса invoke. Например, FASM, MASM32.
Вот как выглядит описание функции P2K_SendCommand на ассемблере с синтаксисом invoke:
Код
P2K_SendCommand proc uses esi edi dwOpcode:DWord, lpSendBuff:DWord, cbSendBuff:DWord, lpRecvBuff:DWord, lpcbRecvBuff:DWord  
И её вызов (на примере функции P2K_Restart):
Код
P2K_Restart proc
invoke P2K_SendCommand,P2K_CMD_RESTART,ADDR Cmd_Send_Buf,0,ADDR Cmd_Recv_Buf,ADDR Cmd_Recv_Size
ret
P2K_Restart endp

В MASM32 есть все include- и lib-файлы, нужные для подключения Windows API.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
motoprogger
сообщение 7.1.2007, 13:16


Гуру
******

Группа: Разработчики
Сообщений: 1 327
Регистрация: 20.7.2006
Из: Г. Омск
Пользователь №: 92 049
Модель телефона: C380 и Talkabout
Прошивка: разные

Рейтинг: 510



Предлагаю новую функцию - SuspendEx (описание в текстовом файле, вложенном в архив). Приложенный исходник нужно вставить в исходник P2KApi (так и быть, написал в вашем "универсальном" стиле starwars.gif ) и объявить функцию как public. Также в моём исходнике функция P2K_SendCmd, о которой много говорили и мало сделали. blink.gif
Исходники проверены (компилировал TASM).
Прикрепленный файл p2kapiex.rar   ( 1017 байт ) Кол-во скачиваний: 126
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dwALX
сообщение 7.1.2007, 22:04


McLaren fan
****

Группа: Пользователи
Сообщений: 230
Регистрация: 27.4.2005
Из: Саратов
Пользователь №: 41 466
Модель телефона: MOTOMING A1200e

Рейтинг: 399



Цитата(motoprogger @ Воскресенье, 7 Января 2007, 15:16)
Также в моём исходнике функция P2K_SendCmd, о которой много говорили и мало сделали.  blink.gif

Как так не сделали?
На 17 странице, есть ссылка на p2kapi с этой функцией smile.gif
Если, что см. тут: http://dwalx.motofan.ru/pa2.php (там последнее, что я изменял)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
alexkuz
сообщение 8.1.2007, 9:18


Новичок
*

Группа: Пользователи
Сообщений: 1
Регистрация: 8.1.2007
Пользователь №: 115 497
Модель телефона: E398
Прошивка: R373_G_0E.30.48R

Рейтинг: 0



Здравствуйте!

Сижу, болею, бездельничаю - дай, думаю, с телефоном поиграюсь.
Решил начать с адресной книги - возжелал я её содержимое прочитать. Как я понял, для работы с ней надо перейти в AT-mode.
Ну допустим, а что дальше-то делать? smile.gif
Далее - как определить, в каком режиме (P2K или AT) находится в данный момент телефон?
Также буду благодарен весьма за ссылки на спецификации и прочие полезные бумажки по теме.

(пишу на C#, что, впрочем, не принципиально)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
n0wheremany
сообщение 9.1.2007, 12:32


Прогр@ммер
*****

Группа: Почётные мотофаны
Сообщений: 564
Регистрация: 10.9.2005
Пользователь №: 51 111
Модель телефона: E398

Рейтинг: 341



alexkuz вопрос не по теме. АТ команды изучай.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
motoprogger
сообщение 9.1.2007, 17:36


Гуру
******

Группа: Разработчики
Сообщений: 1 327
Регистрация: 20.7.2006
Из: Г. Омск
Пользователь №: 92 049
Модель телефона: C380 и Talkabout
Прошивка: разные

Рейтинг: 510



Юзаю P2KApi, сразу после вызова P2K_Init вызываю Mode_SwitchToAT. Но программа всё равно переключает тел в режим P2K.
Ещё бывает, после закрытия окна программы процесс остаётся висеть в списке. Если закомментировать все вызовы функций P2KApi, проблема исчезает.
Если тел был подключен в режиме P2K до запуска программы, функция GetStatus не всегда возвращает True.
В чём причина?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dwALX
сообщение 9.1.2007, 18:34


McLaren fan
****

Группа: Пользователи
Сообщений: 230
Регистрация: 27.4.2005
Из: Саратов
Пользователь №: 41 466
Модель телефона: MOTOMING A1200e

Рейтинг: 399



Цитата(motoprogger @ Вторник, 9 Января 2007, 19:36)
Юзаю P2KApi, сразу после вызова P2K_Init вызываю Mode_SwitchToAT.

Смысл этого?

Цитата(motoprogger @ Вторник, 9 Января 2007, 19:36)
Ещё бывает, после закрытия окна программы процесс остаётся висеть в списке. Если закомментировать все вызовы функций P2KApi, проблема исчезает.

Ну надо код смотреть (так что-то ничего конкретного в голову не приходит). У меня все нормально работает.

Цитата(motoprogger @ Вторник, 9 Января 2007, 19:36)
Если тел был подключен в режиме P2K до запуска программы, функция GetStatus не всегда возвращает True.
В чём причина?

Не знаю. Не пользуюсь GetStatus. Использую callback функцию, ИМХО удобнее.
Цитата(p2kapi.txt)
P2K_Init(StatusProc);
    Инициализация библиотеки, запуск монитора статуса телефона.
    StatusProc - указатель на процедуру, которая будет вызвана при обнаружении/потере
    телефона или 0, если вызов процедуры не требуется.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
motoprogger
сообщение 14.1.2007, 18:03


Гуру
******

Группа: Разработчики
Сообщений: 1 327
Регистрация: 20.7.2006
Из: Г. Омск
Пользователь №: 92 049
Модель телефона: C380 и Talkabout
Прошивка: разные

Рейтинг: 510



Цитата
Смысл этого?

Хочу не переключать тел в P2K, пока не станет необходимо.
Цитата
Не пользуюсь GetStatus. Использую callback функцию, ИМХО удобнее.

Вроде и callback функцию в этом случае не вызывает. Но P2KMan видит тел.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dwALX
сообщение 14.1.2007, 19:49


McLaren fan
****

Группа: Пользователи
Сообщений: 230
Регистрация: 27.4.2005
Из: Саратов
Пользователь №: 41 466
Модель телефона: MOTOMING A1200e

Рейтинг: 399



Цитата(motoprogger)
Хочу не переключать тел в P2K, пока не станет необходимо.

ну и не вызывай тогда P2K_Init wink.gif а вызови когда надо будет (в любом случае надо будет время для переключения в p2k режим)

Цитата(motoprogger)
Вроде и callback функцию в этом случае не вызывает. Но P2KMan видит тел.

причем тут p2kman?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
motoprogger
сообщение 15.1.2007, 6:08


Гуру
******

Группа: Разработчики
Сообщений: 1 327
Регистрация: 20.7.2006
Из: Г. Омск
Пользователь №: 92 049
Модель телефона: C380 и Talkabout
Прошивка: разные

Рейтинг: 510



Цитата
причем тут p2kman?

При том, что P2kman основан практически на тех же кодах, что и p2kapi.
Спасибо за идею, ещё подумаю над реализацией.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dwALX
сообщение 21.1.2007, 14:33


McLaren fan
****

Группа: Пользователи
Сообщений: 230
Регистрация: 27.4.2005
Из: Саратов
Пользователь №: 41 466
Модель телефона: MOTOMING A1200e

Рейтинг: 399



Новая версия P2KAPI
  • Исправлена проблема с авто подключением, когда номер COM порта больше 9, а так же c новыми драйверами
  • Добавлена поддержка L7e
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dwALX
сообщение 23.1.2007, 21:38


McLaren fan
****

Группа: Пользователи
Сообщений: 230
Регистрация: 27.4.2005
Из: Саратов
Пользователь №: 41 466
Модель телефона: MOTOMING A1200e

Рейтинг: 399



Еще одно обновление P2KAPI
  • Исправлена ошибка приводящая к сбоям после длительной работы (Спасибо Vilko).
  • Исправлена ошибка при подключении.
Рекомендую всем обновить библиотеку, во всех используемых программах.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
motoprogger
сообщение 27.1.2007, 9:45


Гуру
******

Группа: Разработчики
Сообщений: 1 327
Регистрация: 20.7.2006
Из: Г. Омск
Пользователь №: 92 049
Модель телефона: C380 и Talkabout
Прошивка: разные

Рейтинг: 510



Что-то у меня не компилится обновлённая P2KAPI. Линкер говорит что-то вроде "attempt to export non-public symbol" на каждую экспортируемую функцию и "unresolved external reference" на каждую импорируемую.
Я откопал у себя makefile для Тасма (давно им не пользуюсь), попробовал через него. Компилит, но у меня там включена чувствительность к регистру символов, поэтому местами пришлось исправить заглавные буквы на строчные.
Выкладываю подправленный исходник вместе с мейк-файлом (архив src.rar). Ещё я добавил функции SuspendEx и P2K_PowerOff (про них почитаете в файле p2kapi.txt из моего архива).
Ещё я выкладываю пример программы на MASM32, использующей P2KAPI (архив P2KTest.rar). Предлагаю программистам на TASM оценить, насколько удобнее синтаксис invoke.
Прикрепленный файл Src.rar   ( 11.57 килобайт ) Кол-во скачиваний: 99
Прикрепленный файл P2KTest.rar   ( 3.23 килобайт ) Кол-во скачиваний: 93
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
motoprogger
сообщение 3.2.2007, 10:29


Гуру
******

Группа: Разработчики
Сообщений: 1 327
Регистрация: 20.7.2006
Из: Г. Омск
Пользователь №: 92 049
Модель телефона: C380 и Talkabout
Прошивка: разные

Рейтинг: 510



Ещё одно обновление P2KAPI (выкладываю только asm-ник). Устранена ошибка в Mode_SwitchToP2K и SetCOMPort. Возврат из Mode_SwitchToP2K мог произойти в любой адрес из адресного пространства процесса (например, процедуру низкоуровнего форматирования жёсткого диска wink.gif ). SetCOMPort также могла привести к серьёзным ошибкам (Access Violation) в некоторых программах (впрочем, это маловероятно. Сам не юзал, не знаю, в каких).
На будущее. Прошу избегать ошибок наподобие следующих.
Код
SetCOMPort proc near
arg_0 = dword ptr 8
;Рабочий код функции (пропущен)
pop ebp;зачем?
leave
retn;Должно быть retn 4, чтобы удалить из стека параметр.

[CODE]Mode_SwitchToP2K proc near
;Описание аргумента (пропущено)
cmp Thread_Handle,0
jnz @@inited
push ebp
mov ebp,esp
;Рабочий код (пропущен)
retn ;д. б. retn 4
@@inited:
;Рабочий код (пропущен)
leave ;зачем?
retn ;д. б. retn 4
Комментарии.
1) Выход из стек-фрейма может выполняться либо командой leave, либо парой mov esp,ebp/pop ebp.
2) Выход из стек-фрейма необходим, только если был выполнен вход в него (либо командой enter, либо парой push ebp/mov ebp,esp).
Прикрепленный файл p2kapi2_update.rar   ( 7.21 килобайт ) Кол-во скачиваний: 78
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dwALX
сообщение 3.2.2007, 11:34


McLaren fan
****

Группа: Пользователи
Сообщений: 230
Регистрация: 27.4.2005
Из: Саратов
Пользователь №: 41 466
Модель телефона: MOTOMING A1200e

Рейтинг: 399



Еще одна версия:
  • Все измения от motoprogger
  • Добавлена функция File_ListEx (позволяет отображать процесс получения файлов)
File_ListEx(ptr Buffer, dword Count,ProgressFuncPtr)
первые два параметра аналогичны File_List
ProgressFuncPtr - указатель на функцию вида:
void __stdcall TestFunc(FILELIST* fl, int CurIndex, int TotalCount)
fl - указатель переданный в File_ListEx, который содержит список файлов, полученных на данный момент
CurIndex - индекс последнего полученного имени файла
TotalCount - кол-во файлов в списке
Пример:
Код

void __stdcall TestFunc(FILELIST* fl, int CurIndex, int TotalCount)
{
 if (!TotalCount) return;
 float f = ((float)CurIndex/TotalCount) * 100;
 Log(clBlack,"p2kapi.GetFileListEx: completed %2.0f%% - %s",f,fl[CurIndex].FileName);
}

...
// где-то в том месте где хотим получить список файлов
int FileCount = p2k->GetFileCountEx("/a/*");
FILELIST *fl = new FILELIST[FileCount];
p2k->GetFileListEx(FileList,FileCount,TestFunc);


Прикрепленный файл p2kapi2.zip   ( 23.55 килобайт ) Кол-во скачиваний: 77
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dwALX
сообщение 5.2.2007, 20:49


McLaren fan
****

Группа: Пользователи
Сообщений: 230
Регистрация: 27.4.2005
Из: Саратов
Пользователь №: 41 466
Модель телефона: MOTOMING A1200e

Рейтинг: 399



Еще одна версия:
- изменен алгоритм определения индекса интерфейса (поддержка L7e и т.п.)
Спасибо n0wheremany, s5vi

Прикрепляю к сообщению, а так же можно скачать тут: http://dwalx.motofan.ru/pa2.php
Прикрепленный файл p2kapi2.zip   ( 23.56 килобайт ) Кол-во скачиваний: 108
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
motoprogger
сообщение 7.2.2007, 16:03


Гуру
******

Группа: Разработчики
Сообщений: 1 327
Регистрация: 20.7.2006
Из: Г. Омск
Пользователь №: 92 049
Модель телефона: C380 и Talkabout
Прошивка: разные

Рейтинг: 510



У меня есть чисто концептуальная идея о том, какой будет P2KApi 3.
1) Если какая-то инициализация потребуется, программа будет вызывать P2K3_Init()
2) Периодически программа будет вызывать P2K3_MonitorDevices(DWORD * DevsList). P2KApi будет заполнять массив DevsList парами (идентификатор, режим) для каждого устройства. Идентификатор - любое число, по которому P2KApi сможет определить устройство. Режим - константа, определяющая, в каком режиме это устройство (AT, P2K, Flash, флеш-карта).
3) Программа должна будет вызвать P2K3_SelectDevice(DWORD uDevID), чтобы выбрать, с каким устройством она будет работать.
4) При необходимости программа будет переключать устройство в нужный режим (автоматически не менять).
5) Программа будет вызывать функции, реализующие определённые команды, либо P2K_SendCMD, AT_SendCMD, Flash_SendCMD для отправки команд устройству.
6) Если потребуется деинициализация, программа будет вызывать P2K3_Shutdown.
Перспективы разработанной мной концепции:
1) Полноценная поддержка нескольких телефонов
2) Возможность работы с телефоном в любом режиме (а не только в P2K).
Но сам приняться за реализацию я не могу, потому что не совсем понимаю (а точнее, совсем не понимаю smile.gif ), как P2KApi ищет устройство.
А так - идею одобряете?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
blackbox
сообщение 7.2.2007, 16:58


Control Freak
******

Группа: Разработчики
Сообщений: 838
Регистрация: 23.9.2005
Пользователь №: 52 431
Модель телефона: iPhone
Прошивка: 2.2.1

Рейтинг: 627.5



Цитата(motoprogger @ Среда, 7 Февраля 2007, 18:03)
А так - идею одобряете?
*


Одобряю. Есть только одно замечание - лучше, чтобы P2K3_MonitorDevices() была callback-функцией, которую вызывает сама P2KApi, а не программа. Указатель на эту функцию можно передавать в P2K3_Init() (сейчас это функция StatusProc(), которой передается состояние - подключен телефон или нет).
Цитата(motoprogger @ Среда, 7 Февраля 2007, 18:03)
Но сам приняться за реализацию я не могу, потому что не совсем понимаю (а точнее, совсем не понимаю smile.gif ), как P2KApi ищет устройство.
*


Вот исходник
Прикрепленный файл MSwitch.zip   ( 6.37 килобайт ) Кол-во скачиваний: 178
, идея в принципе та же самая - найти девайс и определить, в каком он режиме. Правда там предусмотрено всего одно устройство, но никто не мешает сделать массив smile.gif

Кстати, раз уже делать новую версию P2KApi, почему бы не сделать это на C вместо асма?
Прикрепленный файл MSwitch.zip   ( 6.37 килобайт ) Кол-во скачиваний: 178
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
n0wheremany
сообщение 7.2.2007, 18:39


Прогр@ммер
*****

Группа: Почётные мотофаны
Сообщений: 564
Регистрация: 10.9.2005
Пользователь №: 51 111
Модель телефона: E398

Рейтинг: 341



Цитата
Кстати, раз уже делать новую версию P2KApi, почему бы не сделать это на C вместо асма?


Ну или Delphi...

Могу дать советы по поводу реализации функций. Сам думал об этом, когда хотел сделать поддержку KOL. но потом само собой всё разрешилось.

dwALX
Если нужны советы стукай в асю.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dwALX
сообщение 7.2.2007, 19:10


McLaren fan
****

Группа: Пользователи
Сообщений: 230
Регистрация: 27.4.2005
Из: Саратов
Пользователь №: 41 466
Модель телефона: MOTOMING A1200e

Рейтинг: 399



Цитата(motoprogger)
Программа будет вызывать функции, реализующие определённые команды, либо P2K_SendCMD, AT_SendCMD, Flash_SendCMD для отправки команд устройству.

Тогда это уже будет не P2KAPI smile.gif

Цитата(blackbox)
Кстати, раз уже делать новую версию P2KApi, почему бы не сделать это на C вместо асма?

Согласен, на C несколько проще писать smile.gif

Цитата(n0wheremany)
Могу дать советы по поводу реализации функций. Сам думал об этом, когда хотел сделать поддержку KOL. но потом само собой всё разрешилось.
dwALX
Если нужны советы стукай в асю.

Спасибо smile.gif Но, я врядли буду делать 3 версию smile.gif Меня полностью устраивает текущая версия. Если кто возмется, то помогу чем смогу smile.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
motoprogger
сообщение 8.2.2007, 16:53


Гуру
******

Группа: Разработчики
Сообщений: 1 327
Регистрация: 20.7.2006
Из: Г. Омск
Пользователь №: 92 049
Модель телефона: C380 и Talkabout
Прошивка: разные

Рейтинг: 510



Цитата
P2K3_MonitorDevices() была callback-функцией, которую вызывает сама P2KApi, а не программа

Тогда придётся решить ещё одну проблему: где взять память для информации о телефонах. К тому же я попытался избавиться от лишнего потока (как угодно, он расходует системные ресурсы).
Цитата
Кстати, раз уже делать новую версию P2KApi, почему бы не сделать это на C вместо асма?

Тогда нужно договориться о компиляторе. У меня такое впечатление, что с ними тот ещё разнобой. unsure.gif На одном - компилится, на другом - нет.
Цитата
Тогда это уже будет не P2KAPI

Название P2KApi останется в качестве исторического. biggrin.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
blackbox
сообщение 8.2.2007, 20:40


Control Freak
******

Группа: Разработчики
Сообщений: 838
Регистрация: 23.9.2005
Пользователь №: 52 431
Модель телефона: iPhone
Прошивка: 2.2.1

Рейтинг: 627.5



motoprogger, какой смысл избавляться от потоков? В любом графическом приложении должно быть как минимум два потока, если оно выполняет какую-либо длительную операцию.
В данном случае дополнительный поток нужен для реализации цикла сообщений. Можно конечно от него избавиться, и обрабатывать события типа WM_DEVICECHANGE в цикле основной программы, но тогда вообще зачем эта библиотека?
Ресурсы на потоки расходуются, безусловно, но не так, чтобы был повод на них экономить.

По поводу компилятора - рекомендую Microsoft Visual C++ Toolkit 2003. Инсталлятор (без .NET Framework) весит всего 7 Мб.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
motoprogger
сообщение 9.2.2007, 16:15


Гуру
******

Группа: Разработчики
Сообщений: 1 327
Регистрация: 20.7.2006
Из: Г. Омск
Пользователь №: 92 049
Модель телефона: C380 и Talkabout
Прошивка: разные

Рейтинг: 510



Цитата
В любом графическом приложении должно быть как минимум два потока, если оно выполняет какую-либо длительную операцию.
В данном случае дополнительный поток нужен для реализации цикла сообщений.

Обычно я прерываю эту самую длительную операцию на обработку сообщений.
Цитата
По поводу компилятора - рекомендую Microsoft Visual C++ Toolkit 2003. Инсталлятор (без .NET Framework) весит всего 7 Мб.

У меня вообще GNU C++ какой-то кривой smile.gif А качать 7 МБ по 8,47 за каждый - дорого.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dion
сообщение 10.2.2007, 22:36


/dev/null
Group Icon

Группа: System Administrators
Сообщений: 528
Регистрация: 21.12.2004
Из: Kiev, Ukraine
Пользователь №: 28 801
Модель телефона: E680i, C380

Рейтинг: 70



Цитата(motoprogger @ Пятница, 9 Февраля 2007, 18:15)
У меня вообще GNU C++ какой-то кривой
*

Готовить не умеем? smile.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
motoprogger
сообщение 11.2.2007, 2:57


Гуру
******

Группа: Разработчики
Сообщений: 1 327
Регистрация: 20.7.2006
Из: Г. Омск
Пользователь №: 92 049
Модель телефона: C380 и Talkabout
Прошивка: разные

Рейтинг: 510



blackbox,
Я почитал твой исходник (mswitch). Я так понял, что идея поиска нескольких устройств заключается в том, чтобы вызывать SetupDiEnumDeviceInterfaces не один раз, а пока есть устройства. unsure.gif Но проблема в том, что у меня нет справки по WinAPI sad.gif , поэтому я юзаю встроенную в Delphi. huh.gif Там нет описания функций SetupDiGetClassDevs, SetupDiEnumDeviceInterfaces, SetupDiGetDeviceInterfaceDetail, SetupDiDestroyDeviceInfoList. По названиям-то понятно, что они отвечают за перечисление устройств, но хотелось бы про них почитать поконкретнее. smile.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
n0wheremany
сообщение 11.2.2007, 11:19


Прогр@ммер
*****

Группа: Почётные мотофаны
Сообщений: 564
Регистрация: 10.9.2005
Пользователь №: 51 111
Модель телефона: E398

Рейтинг: 341



motoprogger из SetupApi.dll
Стукни в асю если инфа нужна
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
P2Kapi, Вопросы · Ломаем и строим! · Forum
 

11 страниц V « < 6 7 8 9 10 > » 
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 20.7.2025, 20:51

Форум живёт: