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

P2Kapi, Вопросы

motoprogger
сообщение 11.2.2007, 13:16


Гуру
******

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

Рейтинг: 510



Цитата(n0wheremany @ Воскресенье, 11 Февраля 2007, 17:19)
motoprogger из SetupApi.dll
Стукни в асю если инфа нужна
*


poster_offtopic.gif То, что это функции из SetupApi.dll, можно и в файле p2kapi2.def посмотреть.
ICQ у меня не работает (говорят, через МТСовский GPRS ICQ как-то по-особому настраивать надо unsure.gif ). Пожалуйста, скинь описание этих функций на мыло: kryukdmitriy@rambler.ru. И, если возможно, заархивируй пожёстче. smile.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
n0wheremany
сообщение 11.2.2007, 14:55


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

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

Рейтинг: 341



Цитата
Пожалуйста, скинь описание этих функций на мыло: kryukdmitriy@rambler.ru. И, если возможно, заархивируй пожёстче.


MDSN - рулит
В часности SetupDiGetClassDevs Здесь

А вообще не понимаю зачем нужно создавать P2KApi3.
Поддержку Flash режима делать нельзя. Очень мало народу знает как нормально конкретно пользоваться Flash режимом (команды Flash режима). Какие функции нужны и тп. А Для програмистов тоже ниша уже занята. FlashBackup и RamLdr - более никому ничго не надо...

И в принципе не понял на каком языке писать бкдет она... То Си то Делфи. Ты уж определись...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
motoprogger
сообщение 12.2.2007, 8:09


Гуру
******

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

Рейтинг: 510



Цитата
Поддержку Flash режима делать нельзя. Очень мало народу знает как нормально конкретно пользоваться Flash режимом (команды Flash режима).

n0wheremany,
Но ты же знаешь! wink.gif Или кто тебе это в MotoVCL делал? smile.gif Только MotoVCL, кроме Delphi, ни к чему не подходит по определению. sad.gif
Цитата
И в принципе не понял на каком языке писать бкдет она... То Си то Делфи. Ты уж определись...

Наверное, буду писать на своём родном MASM32... На Delphi откомпилированные файлы получаются очень большими, а на Си я уж очень плохо программирую. huh.gif
Но, боюсь, тогда на широкую подержку рассчмитывать тем более не придётся.
Цитата
А вообще не понимаю зачем нужно создавать P2KApi3.

P2KApi3 мной задумана как универсальная библиотека для извращения над телефоном. smile.gif Хотя если во второй некоторые глюки заполировать, мне и её пока хватит. unsure.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
n0wheremany
сообщение 12.2.2007, 15:35


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

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

Рейтинг: 341



Цитата
n0wheremany,
Но ты же знаешь! wink.gif Или кто тебе это в MotoVCL делал? smile.gif Только MotoVCL, кроме Delphi, ни к чему не подходит по определению. sad.gif

Делал я но не один. Я знаю, Vilko знает, Random тоже знает и ещё несколько человек. На этом круг ограничивается... Хчешь расширить? Зачем?

Цитата
На Delphi откомпилированные файлы получаются очень большими

Вот уж с этим я не согласен. Если подойти по ум, можно и норм сделать (даже с MotoVCL(!!!) один чел [MotoMotionDetect] запоковал в Dll и весила она 55 кБ).

Цитата
Хотя если во второй некоторые глюки заполировать, мне и её пока хватит.

Так говори глюки, предлогай - dwAlex зделает, ну или ещё кто...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
motoprogger
сообщение 12.2.2007, 18:02


Гуру
******

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

Рейтинг: 510



Цитата
один чел [MotoMotionDetect] запоковал в Dll и весила она 55 кБ

Ну, при желании и не такое можно smile.gif в шестой версии Delphi можно было и 9 КБ исполняемый файл получить, в седьмой предел мечтаний - 45 КБ. Для сравнения: на моём кривом GNU C++ минимальный размер программы составляет 6 КБ, на MASM32 - 2 КБ. smile.gif Хотя погоня за малым размером становится бессмысленной. И тем не менее, идея насчёт P2KApi на Delphi мне не очень нравится. Если к указателю нельзя прибавить число, не пользуясь извращёнными методами, это не нормально.
Цитата
На этом круг ограничивается... Хчешь расширить? Зачем?

Я считаю, что все желающие должны иметь возможность научиться работать с телом во флеш-режиме. А ещё я собираюсь написать прошивалку с функциями наподобие: только стирание флеш-памяти: прошивка без предварительного стирания флеш памяти и т. д. Может пригодиться для исследования нетрадиционных подходов к перепрошивке и восстановлению телефонов, благо, с C350L такие эксперименты безопасны.
Цитата
Так говори глюки, предлогай - dwAlex зделает, ну или ещё кто...

Сообщаю о том глюке, который тормозит мою разработку SeemXfer: если сразу после вызова P2K_Restart вызвать Mode_SwitchToAT, P2KApi2 надолго подвисает. (Я хочу перезапустить телефон и не переключать его в P2K режим).
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dwALX
сообщение 12.2.2007, 20:24


McLaren fan
****

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

Рейтинг: 399



Цитата(motoprogger)
Сообщаю о том глюке, который тормозит мою разработку SeemXfer: если сразу после вызова P2K_Restart вызвать Mode_SwitchToAT, P2KApi2 надолго подвисает. (Я хочу перезапустить телефон и не переключать его в P2K режим).

Хм.. ну не знаю где там глюк и есть ли он вообще. Давай свой код, посмотрим. В качестве доказательсва выкладываю свой тест. Там все просто. Подключаешь тел, запускаешь тест, ждешь пока он его подключит (станет активна кнопка рестарт), жмешь ее...
на ней выполняется код:
P2K_Restart();
P2K_Mode_SwitchToAT();
Memo1->SetFocus(); // это чтобы перебросить тебя в редактор, в котором можешь вводить что-нибудь, чтобы убедится что ничего не подвисает.

А вообще я кажется догадываюсь в чем проблема. Ты вызвал P2K_Restart, а дальше либо не дожидаешься пока тел отключится, посылаешь ему какую-нить P2K команду, либо нигде не проверяешь статус, подключен ли телефон.

Прикрепленный файл Test.rar   ( 225.46 килобайт ) Кол-во скачиваний: 183

P.S. сорри за такой грубый тест и за его размер smile.gif
Прикрепленный файл Test.rar   ( 225.46 килобайт ) Кол-во скачиваний: 183
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
motoprogger
сообщение 13.2.2007, 14:12


Гуру
******

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

Рейтинг: 510



Цитата
P.S. сорри за такой грубый тест и за его размер

Мне этот размер стоит чуть больше, чем поездка в автобусе biggrin.gif
Цитата
Ты вызвал P2K_Restart, а дальше либо не дожидаешься пока тел отключится, посылаешь ему какую-нить P2K команду, либо нигде не проверяешь статус, подключен ли телефон.

У меня подряд идут вызовы P2K_Restart и Mode_SwitchToAT, так же, как у тебя. Но твой тест работает нормально, а моя программа глючит!
Я пишу на MASM32, но для пояснения переведу код на C++.
Код
/*
ProcWaitForSingleObject - моя функция (опущена), которая ждёт объект, но обрабатывает сообщения.
SetActTitle - моя функция, устанавливающая заголовок внутри окна.
hPhoneConn - событие, создаваемое в обработчике сообщения WM_CREATE. С ручныи сбросом.
hIfSuspend - флажок (Suspend phone before operation).
hIfRestart - флажок (Restart phone after operation).
*/

void StatusProc(int St)
{
   if (St) SetEvent(hPhoneConn) else ResetEvent(hPhoneConn);
};

bool ConnectPhone()
{
   Mode_SwitchToP2K(&StatusProc);
   if (ProcWaitForSingleObject(hPhoneConn,INFINITE)==WAIT_OBJECT_0)
   {
       if (SendMessage(hIfSuspend,BM_GETCHECK,0,0)==BST_CHECKED)
       {
           SetActTitle(&SuspendingTitle)
           P2K_Suspend();
       };
       return 1;
   };
   return 0;
};

void DisconnectPhone()
{
   if (SendMessage(hIfRestart,BM_GETCHECK,0,0)==BST_CHECKED)
   {
       SetActTitle(&RestartingPhone);
       P2K_Restart();
   };
   Mode_SwitchToAT();
   return;
};

/*В обработчике WM_COMMAND, нажатия на кнопку запуска/*
/*...*/
if (ConnectPhone())
{
   SetActTitle(&OperatingTitle);
   /*Некоторый цикл с P2K командами и периодической обработкой сообщений*/
   DisconnectPhone();
};
/*...*/

Только предупреждаю, с C++ у меня не очень, поэтому в самом языке я где-то мог ошибиться.

Сообщение отредактировал blackbox - 13.2.2007, 14:43
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
n0wheremany
сообщение 13.2.2007, 16:13


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

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

Рейтинг: 341



Цитата
только стирание флеш-памяти: прошивка без предварительного стирания флеш памяти и т. д. Может пригодиться для исследования нетрадиционных подходов к перепрошивке и восстановлению телефонов, благо, с C350L такие эксперименты безопасны.


прошивка без предварительного стирания флеш памяти - это физически не возможно. только стирание флеш-памяти - RamLdr, делай загрузчик и вперёд...

Вообще других функций кроме как в RamLdr Нету и не будет (если загрузчики другие не пойдут).
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dwALX
сообщение 13.2.2007, 16:38


McLaren fan
****

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

Рейтинг: 399



motoprogger,
хм... ну так не найдем точно. Ты на 100% уверен что баг в p2kapi, а не у тебя?
Можешь выложить свой код на MASM? Смотрел отладчиком где именно происходит подвисание?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
motoprogger
сообщение 14.2.2007, 11:12


Гуру
******

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

Рейтинг: 510



Цитата
хм... ну так не найдем точно. Ты на 100% уверен что баг в p2kapi, а не у тебя?

Не уверен. Но в любом случае, мой порядок действий представляется верным. unsure.gif Или несовместимым с какой-то особенностью P2KApi.
Цитата
Можешь выложить свой код на MASM?

Без вопросов.
Цитата
Смотрел отладчиком где именно происходит подвисание?

Не смотрел, да и Турбо Дебаггером оно трудновато (хотя при желании можно). Кажется, в Mode_SwitchToAT().

n0wheremany,
Цитата
прошивка без предварительного стирания флеш памяти - это физически не возможно.

Если флеш-память была стёрта до этого, по идее должно быть возможно.
Цитата
только стирание флеш-памяти - RamLdr, делай загрузчик и вперёд...

Вообще других функций кроме как в RamLdr Нету и не будет (если загрузчики другие не пойдут).
Здесь мне, чайнику, вообще ничего не понятно. biggrin.gif
Прикрепленный файл SeemXfer.rar   ( 21.25 килобайт ) Кол-во скачиваний: 88
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dwALX
сообщение 14.2.2007, 17:53


McLaren fan
****

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

Рейтинг: 399



Цитата(motoprogger)
Не смотрел, да и Турбо Дебаггером оно трудновато (хотя при желании можно). Кажется, в Mode_SwitchToAT().

Ок. Смотри. У тебя код:
Код

DisconnectPhone proc
               invoke SendMessage,hIfRestart,BM_GETCHECK,0,0
               .IF eax==BST_CHECKED
               invoke SetActTitle,ADDR RestartTxt
               invoke P2K_Restart
               .ENDIF
               invoke Mode_SwitchToAT                
               invoke ResetEvent,hPhoneConn
               ret
DisconnectPhone endp

Проверям очень просто. Вставляем после строки invoke Mode_SwitchToAT и после строки invoke ResetEvent,hPhoneConn
строку: invoke MessageBox,hWnd,ADDR MustBeDiff,ADDR ErrTitle,MB_OK+MB_ICONHAND
т.е. получаем такой код:
Код

DisconnectPhone proc
               invoke SendMessage,hIfRestart,BM_GETCHECK,0,0
               .IF eax==BST_CHECKED
               invoke SetActTitle,ADDR RestartTxt
               invoke P2K_Restart
               .ENDIF
               invoke Mode_SwitchToAT                
               invoke MessageBox,hWnd,ADDR MustBeDiff,ADDR ErrTitle,MB_OK+MB_ICONHAND
               invoke ResetEvent,hPhoneConn
               invoke MessageBox,hWnd,ADDR MustBeDiff,ADDR ErrTitle,MB_OK+MB_ICONHAND                
               ret
DisconnectPhone endp

и видим что сообщение появляется сразу после вызова Mode_SwitchToAT, без всяких задержок, т.е. никакого подвисания в Mode_SwitchToAT не произошло, так же сразу же вылезло и второе сообщение (значит и в ResetEvent нету подвисания), а вот после мы подвисли... проходит несколько секунд и мы снова видим первое сообщение, нажимаем ОК и видим второе и после уже обновился интерфейс. Т.е. получается что DisconnectPhone вызывается 2 раза и программа ждет 2го вызова и только потом обновляется интерфейс. В общем надо смотреть обработку событий smile.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
motoprogger
сообщение 15.2.2007, 13:38


Гуру
******

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

Рейтинг: 510



Цитата
получается что DisconnectPhone вызывается 2 раза и программа ждет 2го вызова

Спасибо. Разберусь.
Я код P2KApi посмотрел ещё неделю назад, не нашёл там ничего криминального. Но и не мог понять, в чём проблема. Если так, до релиза 2 шага осталось.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
n0wheremany
сообщение 16.2.2007, 18:59


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

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

Рейтинг: 341



Цитата
Если флеш-память была стёрта до этого, по идее должно быть возможно.


Нет. Это не возможно физически. Это ограничение встроено в загрузчик. Если переделаешь загрузчик то возможно будет работать, хотя сомневаюсь.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
motoprogger
сообщение 17.2.2007, 17:21


Гуру
******

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

Рейтинг: 510



Мелкий баг в P2KApi.
Если вызвать последовательно P2K_Init, Mode_SwitchToAT, Mode_SwitchToP2K, Mode_SwitchToAT (с задержками, необходимыми, чтобы операционная система, библиотека и телефон успевали отрабатывать переключения), второй вызов Mode_SwitchToAT не работает.
Как я выяснил, ошибка в процедуре Mode_SwitchToP2K. Вот фрагмент кода из неё.
Код
push Thread_Handle
call ResumeThread
mov Thread_Suspended,1h

Как я понял, последняя строчка должна быть mov Thread_Suspended,0h, обозначая, что поток теперь работает. Иначе Mode_SwitchToAT считала, что поток уже остановлен, и ей ничего делать не надо.
Что ж, свою ошибку всегда труднее всего найти. smile.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dwALX
сообщение 17.2.2007, 18:23


McLaren fan
****

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

Рейтинг: 399



Цитата(motoprogger @ Суббота, 17 Февраля 2007, 19:21)
Мелкий баг в P2KApi.

Спасибо!
Исправлено smile.gif
Прикрепленный файл p2kapi2.zip   ( 23.57 килобайт ) Кол-во скачиваний: 119
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
alexander.stoyan
сообщение 7.3.2007, 10:17


Новичок
*

Группа: Пользователи
Сообщений: 4
Регистрация: 7.3.2007
Пользователь №: 125 738
Модель телефона: Razr V3

Рейтинг: 0



mad.gif есть трабла.
использую последню версию, выложенную dwALX-ом выше.
И есть один глюк (он был во всех версиях р2к): File_Create вылетает постоянно! При этом файл создаётся. Пишу на С++/CLI. телефон - RazrV3
вот сообщение олб ошибке:
Managed Debugging Assistant 'FatalExecutionEngineError' has detected a problem in 'd:\Project\Work\Products\CarPhone\CPW.Plugins\Moto\Moto\debug\plgtest.exe'.
Additional Information: The runtime has encountered a fatal error. The address of the error was at 0x79e755fc, on thread 0xcf4. The error code is 0xc0000005. This error may be a bug in the CLR or in the unsafe or non-verifiable portions of user code. Common sources of this bug include user marshaling errors for COM-interop or PInvoke, which may corrupt the stack.


вот код:
Код
File_Create("/a/mobile/mib/pcf/video.gif", 0);


ну и чё не так????
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dwALX
сообщение 8.3.2007, 7:10


McLaren fan
****

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

Рейтинг: 399



alexander.stoyan,
код в студию, включая объявление File_Create.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
alexander.stoyan
сообщение 9.3.2007, 8:18


Новичок
*

Группа: Пользователи
Сообщений: 4
Регистрация: 7.3.2007
Пользователь №: 125 738
Модель телефона: Razr V3

Рейтинг: 0



ф-ция объявляется вот так: typedef int(__stdcall* File_Create)(LPCSTR FileName, DWORD Attribute);

внесу небольшую поправку.
как выяснилось тестовым путём, эта ошибка возникает только в приложениях на .NET. Порывшись в сети начинаю делать вывод, что нелады именно в P2KAPI(2).DLL, потому как подобная ошибка появляется, когда unmanaged код портит managed память.
тот же код на С++ отрабатывает безупречно.

была идея написать работу с P2K на Си и вызывать из .NET, но не вышло, т.к. при переходе из unmanaged в managed вылетает всё то же сообщение.

вопрос ледующий мой немного меняет направление: люди, кто работал с P2K на .NET ??? В более старых постах вспоминался C#, но подобной траблы не видел я. Со своим кодом перепробовал все выложенные в этой теме P2KAPI(2).DLL - результат одинаков: в С++ работает, с .NET - нет.

если принипиально важно показать код - покажу. хотя какие могут быть с кодом траблы, если в С++ всё ок? ...

Зараннее благодарен за оказанную помощь.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dwALX
сообщение 15.3.2007, 22:09


McLaren fan
****

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

Рейтинг: 399



Бета верcия с поддержкой P2K05. Нужный режим определяется автоматически.

Прикрепленный файл p2kapi2_beta.zip   ( 23.96 килобайт ) Кол-во скачиваний: 147
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Phjtoxx
сообщение 25.3.2007, 13:12


Новичок
*

Группа: Пользователи
Сообщений: 2
Регистрация: 25.3.2007
Пользователь №: 128 382
Модель телефона: V6 - V3i

Рейтинг: 0



Hello, I try to use p2kapi in delphi to write seem, but it no write. read ok.
I tested to write seem 0074, (the phone lock code).

Цитата


var
Buff: array[0..255] of byte;
i,a,b:integer;
begin
Seem_Read(HexToInt('0074'), HexToInt('0001'), 0,0,buff);
for i:=1 to 4 do begin
a := hextoint('3'+copy(code_bl.Text,i,1));
buffs[b]:=a;
inc(b,2)
end;
Seem_write(HexToInt('0074'), HexToInt('0001'), 0,0 ,buff);
end;

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


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

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

Рейтинг: 341



Код

var
Buff: array[0..255] of byte;
i,a,b:integer;
begin
Seem_Read($0074, $0001, 0,0,buff);
for i:=1 to 4 do begin
a := hextoint('3'+copy(code_bl.Text,i,1)); // Uncorrect >> ord(char( ));
buffs[b]:=a;
inc(b,2);
end;
//Seem_write(HexToInt('0074'), HexToInt('0001'), 0,0 ,buff);
Seem_write(HexToInt('0074'), HexToInt('0001'), 0,BuffSize,buff); // BuffSize !!! 10 byte for 74 seem
end;
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Phjtoxx
сообщение 25.3.2007, 17:45


Новичок
*

Группа: Пользователи
Сообщений: 2
Регистрация: 25.3.2007
Пользователь №: 128 382
Модель телефона: V6 - V3i

Рейтинг: 0



ok thanks, all ok. The buffersize don't make me write.
But there is a way to know, to calculate the buffersize?
thanks a lot. clap.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
lucrece
сообщение 25.3.2007, 18:42


Moto®Head
*****

Группа: Разработчики
Сообщений: 389
Регистрация: 19.12.2005
Из: Кировская область
Пользователь №: 62 616
Модель телефона: V3xx
Прошивка: R26111LD_U_96.A0.0ER

Рейтинг: 329.5



Seem_Read (if called with offset 0, bytes to read 0) will return the seem size = buffer size, if successful. Just call it as a function rather than a procedure.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
alexander.stoyan
сообщение 9.5.2007, 12:14


Новичок
*

Группа: Пользователи
Сообщений: 4
Регистрация: 7.3.2007
Пользователь №: 125 738
Модель телефона: Razr V3

Рейтинг: 0



а где можно найти доку по интерфейсу драйвера P2K ?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
n0wheremany
сообщение 9.5.2007, 12:54


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

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

Рейтинг: 341



Такие вопросы к Вилко и то доку он тебе не даст т.к. её просто нету в сети.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
alexander.stoyan
сообщение 23.5.2007, 15:01


Новичок
*

Группа: Пользователи
Сообщений: 4
Регистрация: 7.3.2007
Пользователь №: 125 738
Модель телефона: Razr V3

Рейтинг: 0



вот есть такой небольшой код на C#:

Код

// компилировать с /unsafe
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.IO;

namespace p2kclr
{
    unsafe class Program
    {
        [StructLayout(LayoutKind.Sequential)]
        public struct FileInfo
        {
            public int sizeOfFile;
            public short attr1;
            public short attr2;
            public sbyte Name;
        };

        //*****************************************************************************

        public delegate void P2K_StatusCallback(int status);

        //*****************************************************************************

        // p2kapi imports

        [DllImport("p2kapi.dll")]
        public static extern int P2K_Init(P2K_StatusCallback statusCallback);

        [DllImport("p2kapi.dll")]
        public static extern int P2K_GetStatus();

        [DllImport("p2kapi.dll")]
        public static extern int File_Count();

        [DllImport("p2kapi.dll")]
        public static extern int File_List(IntPtr info, uint cnt);

        [DllImport("p2kapi.dll")]
        public static extern int File_Create(sbyte* FileName, uint attr);

        [DllImport("p2kapi.dll")]
        public static extern int File_Close();

        [DllImport("p2kapi.dll")]
        public static extern int File_Read(void* Buffer, uint size);

        // kernel32 imports

        [DllImport("kernel32.dll")]
        public static extern bool Sleep(uint milliseconds);

        [DllImport("kernel32.dll")]
        static extern IntPtr LocalAlloc(uint uFlags, int uBytes);

        [DllImport("kernel32.dll", SetLastError = true)]
        static extern IntPtr LocalFree(IntPtr hMem);
        
        //*****************************************************************************

        static void p2k_callback(int status)
        {
            Console.WriteLine("P2K status: " + status);
        }

        //*****************************************************************************

        static void Main(string[] args)
        {
            try
            {
                if (P2K_Init(new P2K_StatusCallback(p2k_callback)) == -1)
                    throw new Exception("P2K_Init failed");

                Sleep(2000);
                
                if (P2K_GetStatus() == 0)
                    throw new Exception("Phone is not connected");

                int cFiles = File_Count();
                if (cFiles == -1)
                    throw new Exception("File_Count failed");

                Console.WriteLine("Number of files: " + cFiles);

                IntPtr info_ptr = LocalAlloc(0x40, cFiles * 0x200);
                if (File_List(info_ptr, (uint)cFiles) == -1)
                {
                    LocalFree(info_ptr);
                    throw new Exception("File_List failed");
                }

                FileInfo* fileInfo = (FileInfo*)info_ptr.ToPointer();
                string out_path = "D:\\Project\\temp\\";

                for(;cFiles-- != 0;)
                {
                    string fileName = new string(&fileInfo->Name);
                    Console.WriteLine("\t" + fileName);
                    if (File_Create(&fileInfo->Name, 0) != -1)
                    {
                        IntPtr buff_ptr = LocalAlloc(0x40, fileInfo->sizeOfFile);
                        if (File_Read(buff_ptr.ToPointer(), (uint)fileInfo->sizeOfFile) != -1)
                        {
                            byte* bt = (byte*)buff_ptr.ToPointer();
                            byte[] buff = new byte[fileInfo->sizeOfFile];
                            for (int i = 0; i != buff.Length; ++i )
                            {
                                buff[i] = *bt++;
                            }

                            FileStream fs = new FileStream(out_path + fileName, FileMode.Create);
                            BinaryWriter bw = new BinaryWriter(fs);
                            bw.Write(buff);
                        }

                        LocalFree(buff_ptr);

                        File_Close();
                    }

                    fileInfo = (FileInfo*)((sbyte*)fileInfo + 0x200);
                }

                LocalFree(info_ptr);


            }
            catch(Exception e)
            {
                Console.WriteLine("Exception: " + e.Message + "\n\nStack:\n" + e.StackTrace);
            }
        }
    }
}


всё, что мне нужно - скопировать все файлы с телефона на комп. но на вызове File_Create постоянно получаю:
"The runtime has encountered a fatal error. The address of the error was at 0x79e755fc, on thread 0x938. The error code is 0xc0000005. This error may be a bug in the CLR or in the unsafe or non-verifiable portions of user code. Common sources of this bug include user marshaling errors for COM-interop or PInvoke, which may corrupt the stack."

я уже пробовал писать это и на С++.NET - всё то же.
самое странное, что если писать на чистом С/С++ - всё ок. вот именно с .NET не дружит shout.gif

устал уже долбаться. люди добрые, подскажите, что не так? может у кого-то есть работающие исходники на .NET? буду очень признателен....

Сообщение отредактировал alexander.stoyan - 23.5.2007, 15:02
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
NickLion
сообщение 15.6.2007, 7:41


Новичок
*

Группа: Пользователи
Сообщений: 12
Регистрация: 20.9.2006
Пользователь №: 99 796
Модель телефона: Motorola SLVR L7
Прошивка: R4513_G_08.B7.ACR_RB

Рейтинг: 0



Где достать как работать с телефоном напрямую (через DeviceIoControl я так понимаю), а не с помощью быблиотеки P2KAPI?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dwALX
сообщение 15.6.2007, 18:48


McLaren fan
****

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

Рейтинг: 399



NickLion, кто мешает посмотреть в исходниках p2kapi ? smile.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
NickLion
сообщение 15.6.2007, 20:17


Новичок
*

Группа: Пользователи
Сообщений: 12
Регистрация: 20.9.2006
Пользователь №: 99 796
Модель телефона: Motorola SLVR L7
Прошивка: R4513_G_08.B7.ACR_RB

Рейтинг: 0



Ня-я! Не думал, что код открытый. shuffle.gif
Спасибо! clap.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Synergy
сообщение 10.7.2007, 15:48


MotoLoudness
*****

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

Рейтинг: 402



Проблема при работе с K3, V6maxx. Любое действие вызывает полное зависание проги. Но подключается =)

Сообщение отредактировал Synergy - 20.7.2007, 6:25
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Mystic-Mirage
сообщение 19.8.2007, 16:10


Новичок
*

Группа: Пользователи
Сообщений: 9
Регистрация: 25.10.2005
Пользователь №: 55 877
Модель телефона: Motorola C650
Прошивка: R365_G_0B.D3.08R + Patchs

Рейтинг: 2.5



А скажите, можно ли при помощи данной библиотеки работать одновременно с двумя и более телефонами?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
lucrece
сообщение 19.8.2007, 16:23


Moto®Head
*****

Группа: Разработчики
Сообщений: 389
Регистрация: 19.12.2005
Из: Кировская область
Пользователь №: 62 616
Модель телефона: V3xx
Прошивка: R26111LD_U_96.A0.0ER

Рейтинг: 329.5



Нет. Но принципиально это вполне возможно. А нужно?

Сообщение отредактировал lucrece - 19.8.2007, 16:34
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
motoprogger
сообщение 20.8.2007, 4:03


Гуру
******

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

Рейтинг: 510



Вообще может быть и нужно. Я разработал методику подбора калибровок аккумулятора, для которой нужно подавать тестовые команды на 2 телефона.
Я сам думал о том, чтобы искать все телефоны и сообщать программе, а программа по своему желанию переключала бы телефоны в P2K-режим, но реализовать не смог.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
n0wheremany
сообщение 20.8.2007, 7:07


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

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

Рейтинг: 341



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


Для этого есть MotoVCL
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
lucrece
сообщение 20.8.2007, 8:55


Moto®Head
*****

Группа: Разработчики
Сообщений: 389
Регистрация: 19.12.2005
Из: Кировская область
Пользователь №: 62 616
Модель телефона: V3xx
Прошивка: R26111LD_U_96.A0.0ER

Рейтинг: 329.5



n0wheremany, все конечно, хорошо, но как быть программерам на С? Да и API это API, а VCL это VCL. А я лично не могу использовать MotoVCL, поскольку на D2005/2006 ее нужно перекомпилировать.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dwALX
сообщение 20.8.2007, 12:44


McLaren fan
****

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

Рейтинг: 399



Эх, есть метод через одно место, берем D7, делаем API с помощью MotoVCL и пихаем в DLL, а дальше уже на чем хотим юзаем полученную DLL biggrin.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DmT
сообщение 21.10.2007, 18:33


Мото-Портной
******

Группа: Разработчики
Сообщений: 1 175
Регистрация: 31.3.2007
Пользователь №: 129 181
Модель телефона: LG GW620, L7e и др.
Победитель конкурса 2008

Рейтинг: 680



n0wheremany,
lucrece прав. Скомпиль компоны хотябы под основные среды разработки. Ну или собери библу на основе своих исходников.
И почему ты не хочеш делится методами работы с телом во флешмоде?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
n0wheremany
сообщение 22.10.2007, 8:02


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

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

Рейтинг: 341



DmT

Цитата
Скомпиль компоны хотябы под основные среды разработки

Скоро скачаю D2005, возможно потом D2007 - тагда и сделаю, а пока я их не имею - следовательно нет возможности скомпилить их. Нужно время! cool.gif Сырсы всё равно никому не дам! ph34r.gif

Цитата
Ну или собери библу на основе своих исходников.

Не вижу смысла - есть p2kapi - все функции туда можно прикрутить - дело, так сказать, техники

Цитата
И почему ты не хочеш делится методами работы с телом во флешмоде?

Смысл - сразу будет много прошивальщиков и тп. На основе мой VCL было несколько - ктонидь ими пользуется? или хотябы помнит?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
S.T.@.L.K.E.R.
сообщение 22.10.2007, 8:28


МОТОRadiation
**

Группа: Пользователи
Сообщений: 55
Регистрация: 31.5.2007
Пользователь №: 136 649
Модель телефона: motorizr Z3

Рейтинг: 42.5



Не могу написать простейшую прогу на Паскале! Подскажите с чего мне начать?
Прогу хочу сделать чтоб могла считывать название проши из CG1!


DmT нет,на обычном Паскале!

Сообщение отредактировал S.T.@.L.K.E.R. - 22.10.2007, 8:42
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DmT
сообщение 22.10.2007, 8:33


Мото-Портной
******

Группа: Разработчики
Сообщений: 1 175
Регистрация: 31.3.2007
Пользователь №: 129 181
Модель телефона: LG GW620, L7e и др.
Победитель конкурса 2008

Рейтинг: 680



Мои извенения за офтоп shuffle.gif
S.T.@.L.K.E.R.,
На Турбо Паскале??? huh.gif ohmy.gif laugh.gif cool.gif wacko.gif
Прям не знаю что и думать!
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
P2Kapi, Вопросы · Ломаем и строим! · Forum
 

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

 



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

Форум живёт: