Re[5]: не коннектится OBEX
От: Mickey_Mouse  
Дата: 11.11.05 07:59
Оценка:
Здравствуйте, Tsnok, Вы писали:

T>Здравствуйте, Mickey_Mouse, Вы писали:


M_M>>Здравствуйте, Tsnok, Вы писали:


T>>>Подключи winsock.

T>>>Если закончу свой труд( — надеюсь на это ), скорее всего выложу

M_M>> WinSock я подключил. У меня ругается вот так:


M_M>> [Error] Unit1.pas(24): Undeclared identifier: 'PWINDOWS_DEVICELIST'

M_M>> [Error] Unit1.pas(25): Undeclared identifier: 'SOCKADDR_IRDA'
M_M>>по-моему, надо подключить что-то типа af_irda.h в Си

T>из ддк бери заголовочный файл, портируй под д, и подключай в проектте ...


Извини если кажусь бронелобым, но не мог бы ты с этого места поподробней немного.
1. Ссылка на заголовочный файл (не могу найди в ддк)
2. Как его отпортировать под делфу?
Re[6]: не коннектится OBEX
От: Mickey_Mouse  
Дата: 11.11.05 12:34
Оценка:
Перевел af_irda.h в делфовый формат (pas) утилкой c2pas32
но что дальше делать — не знаю.
хелп!
Re[7]: не коннектится OBEX
От: Tsnok  
Дата: 11.11.05 12:38
Оценка:
Здравствуйте, Mickey_Mouse, Вы писали:

M_M>Перевел af_irda.h в делфовый формат (pas) утилкой c2pas32

M_M>но что дальше делать — не знаю.
M_M> хелп!

положи в свой проект,( я надеюсь ты её проправил .т.к. эта утилита работает "немного грубо" ) подключи, и начинай писать, создай сокет, и попробуй сделать коннект. В общем смотри посты повыше.


Удачи.
Re[8]: не коннектится OBEX
От: Mickey_Mouse  
Дата: 11.11.05 14:18
Оценка:
Здравствуйте, Tsnok, Вы писали:

T>Здравствуйте, Mickey_Mouse, Вы писали:


M_M>>Перевел af_irda.h в делфовый формат (pas) утилкой c2pas32

M_M>>но что дальше делать — не знаю.
M_M>> хелп!

T>положи в свой проект,( я надеюсь ты её проправил .т.к. эта утилита работает "немного грубо" ) подключи, и начинай писать, создай сокет, и попробуй сделать коннект. В общем смотри посты повыше.



T>Удачи


Блин, чето эта утилка плохо перевела с-шный код в пас. теперь ошибки только в нем. ты бы не мог выложить готовый (исправленный) af_irda.pas?
заранее очень благодарю
Re[12]: не коннектится OBEX
От: Tsnok  
Дата: 14.11.05 07:27
Оценка:
Здравствуйте, kiborg, Вы писали:

K>В Buf_s[ 0 ] должно быть число $80.

все дело в том, что раньше не приходилось работать с подобной системой представления и преобразования информации ;(.
поэтому не очень получается.

// opcode|length |version|flag|packsize|HI|data length|data(uuid)
// 80 | 001A |10 |00 |0x2000 |46|0013 |6B01CB31410611D49A770050DA3F471F

BUF_S[ 0 ] := $80 ; //$80

Buf_s[ 1 ] := $14 ; //длинна пакеты в байтах

Buf_s[ 2 ] := $10 ; //version
Buf_s[ 3 ] := $00 ; //flag
Buf_s[ 4 ] := $20 ; //packsize
Buf_s[ 5 ] := $00 ; //packsize
Buf_s[ 6 ] := $46 ; //HI
Buf_s[ 7 ] := $00 ; //data length
Buf_s[ 8 ] := $13 ; //data length

K>А где у тебя uuid сервиса OBEX для которого выполняется операция???

а вот с этим большая проблема, как правильно можно uuid поместить в буфер

Buf_s[ 9 ] := $6B01CB3 ;
Buf_s[ 10 ] := $1410611 ;
Buf_s[ 11 ] := $D49A770 ;
Buf_s[ 12 ] := $050DA3F4 ;
Buf_s[ 13 ] := $71F ;

K>А этого тем более не может быть потому что показано что должно быть 7 байт в пакете, а ты привел 6.

он возвращает семь байт просто там нули 00, и я их не стал писать ...
Re[13]: не коннектится OBEX
От: kiborg Россия  
Дата: 14.11.05 08:19
Оценка: 2 (1)
K>>В Buf_s[ 0 ] должно быть число $80.
T>все дело в том, что раньше не приходилось работать с подобной системой представления и преобразования информации ;(.
T>поэтому не очень получается.
Хочешь сказать ты только с символами работал?


T>// opcode|length |version|flag|packsize|HI|data length|data(uuid)

T>// 80 | 001A |10 |00 |0x2000 |46|0013 |6B01CB31410611D49A770050DA3F471F

T> BUF_S[ 0 ] := $80 ; //$80


T> Buf_s[ 1 ] := $14 ; //длинна пакеты в байтах

Ты надо мной издеваешься?
Длина пакета задаётся ДВУМЯ БАЙТАМИ ВСЕГДА!!!
Если у тебя длина $14 то должно быть в массиве так
   Buf_s[1]  := $00 ; //длинна пакеты в байтах
   Buf_s[2]  := $14 ; //

ДВА БАЙТА понимаешь? Младший и старший.

Т.е. дальше можно не смотреть уже здесь бага.
Тут ещё не понятно, если ты скопировал мой пример, то почему у тебя
длина $14?? Догда когда она $1A. К чему здесь творческая переработка? Это не литературная проза, в который раз пытаюсь дать понять. Тут всё точно, ло бита.


T> Buf_s[ 2 ] := $10 ; //version

T> Buf_s[ 3 ] := $00 ; //flag
T> Buf_s[ 4 ] := $20 ; //packsize
T> Buf_s[ 5 ] := $00 ; //packsize
T> Buf_s[ 6 ] := $46 ; //HI
T> Buf_s[ 7 ] := $00 ; //data length
T> Buf_s[ 8 ] := $13 ; //data length

K>>А где у тебя uuid сервиса OBEX для которого выполняется операция???

T>а вот с этим большая проблема, как правильно можно uuid поместить в буфер

Главное, это бросить программировать на Паскале.


T> Buf_s[ 9 ] := $6B01CB3 ;

T> Buf_s[ 10 ] := $1410611 ;
T> Buf_s[ 11 ] := $D49A770 ;
T> Buf_s[ 12 ] := $050DA3F4 ;
T> Buf_s[ 13 ] := $71F ;

Ну если уж пока так...
То в чем проблема делать побайтно??
    Buf_s[ 9  ]  := $6B;
    Buf_s[ 10 ]  := $01;
    Buf_s[ 11 ]  := $CB;


И так далее...



K>>А этого тем более не может быть потому что показано что должно быть 7 байт в пакете, а ты привел 6.

T>он возвращает семь байт просто там нули 00, и я их не стал писать ...
А я должен был додумать? А что нули уже не данные???
Есть большая разница между $1A и $1A00 например.


Так что пока ты отправляешь неправильный пакет.
... << RSDN@Home 1.1.4 stable rev. 510>>
Re[8]: не коннектится OBEX
От: Mickey_Mouse  
Дата: 14.11.05 15:55
Оценка:
Здравствуйте, Tsnok, Вы писали:

T>Здравствуйте, Mickey_Mouse, Вы писали:


M_M>>Перевел af_irda.h в делфовый формат (pas) утилкой c2pas32

M_M>>но что дальше делать — не знаю.
M_M>> хелп!

T>положи в свой проект,( я надеюсь ты её проправил .т.к. эта утилита работает "немного грубо" ) подключи, и начинай писать, создай сокет, и попробуй сделать коннект. В общем смотри посты повыше.



T>Удачи.


Друг, ну помоги. Хреново перевелся в делфу заголовочный файл. а отладить не получается. все стоит на месте. короче я в ступоре. подгони пожалуйста нормаольный заголовочный делфовый файлик af_irda.
Обчень благодарю!
Re[9]: не коннектится OBEX
От: alsemm Россия  
Дата: 14.11.05 17:33
Оценка:
Здравствуйте, Mickey_Mouse, Вы писали:

...
M_M>Друг, ну помоги. Хреново перевелся в делфу заголовочный файл. а отладить не получается. все стоит на месте. короче я в ступоре. подгони пожалуйста нормаольный заголовочный делфовый файлик af_irda.
Больше проблем нет?

M_M>Обчень благодарю!
Re[9]: не коннектится OBEX
От: Tsnok  
Дата: 15.11.05 04:27
Оценка:
Здравствуйте, Mickey_Mouse, Вы писали:

M_M>Хреново перевелся в делфу заголовочный файл. а отладить не получается. все стоит на месте. короче я в ступоре. подгони пожалуйста нормаольный заголовочный делфовый файлик af_irda.

M_M>Обчень благодарю!

Давай мыло.
Re[10]: не коннектится OBEX
От: Mickey_Mouse  
Дата: 15.11.05 07:13
Оценка:
Здравствуйте, Tsnok, Вы писали:

T>Здравствуйте, Mickey_Mouse, Вы писали:


M_M>>Хреново перевелся в делфу заголовочный файл. а отладить не получается. все стоит на месте. короче я в ступоре. подгони пожалуйста нормаольный заголовочный делфовый файлик af_irda.

M_M>>Обчень благодарю!

T>Давай мыло.

scorp@bvkt.kiev.ua
Заранее огромное данке!
Re[14]: не коннектится OBEX
От: Tsnok  
Дата: 17.11.05 13:12
Оценка:
Здравствуйте, kiborg,

изучил ваши замечания и по попробывал реализовать фомирование пакета с учетом все выше рассмотренного, но все равно в ответ отклик неважнецкий 17 10 04 80

// opcode|length |version|flag|packsize|HI|data length|data(uuid)
// 80 | 001A |10 |00 |0x2000 |46|0013 |6B 01 CB 31 41 06 11 D4 9A 77 00 50 DA 3F 47 1F

BUF_s[ 0 ] := $80;

BUF_s[ 1 ] := $00; //length
BUF_s[ 2 ] := $1A; //length длинна пакета 26 байт
BUF_s[ 3 ] := $10; //VERSION
BUF_s[ 4 ] := $00; //FLAG
BUF_s[ 5 ] := $20; //PACKSIZE
BUF_s[ 6 ] := $00; //PACKSIZE
BUF_s[ 7 ] := $46; //HI
BUF_s[ 8 ] := $00; //DATA LENGTH
BUF_s[ 9 ] := $13; //DATA LENGTH

{uuid}

BUF_s[ 10 ] := $6B; BUF_s[ 11 ] := $01; BUF_s[ 12 ] := $CB; BUF_s[ 13 ] := $31;
BUF_s[ 14 ] := $41; BUF_s[ 15 ] := $06; BUF_s[ 16 ] := $11; BUF_s[ 17 ] := $D4;
BUF_s[ 18 ] := $9A; BUF_s[ 19 ] := $77; BUF_s[ 20 ] := $00; BUF_s[ 21 ] := $50;
BUF_s[ 22 ] := $DA; BUF_s[ 23 ] := $3F; BUF_s[ 24 ] := $47; BUF_s[ 25 ] := $1F;

if send( Sock, BUF_S, sizeof( @BUF_S ) , 0 ) = SOCKET_ERROR then
Debug_.Items.Add( 'filed ... !' )
else
Debug_.Items.Add( 'Data send ... OK ... !' );

recv( Sock, BUF_R, sizeof( @BUF_R ), 0 );
View_BUF_RCV.AppendBuffer( @BUF_R, sizeof( @BUF_R ) );
View_BUF_RCV.SelStart := 0;

Благодарю за помощь.
Re[15]: не коннектится OBEX
От: kiborg Россия  
Дата: 18.11.05 04:08
Оценка: 2 (1)
T>изучил ваши замечания и по попробывал реализовать фомирование пакета с учетом все выше рассмотренного, но все равно в ответ отклик неважнецкий 17 10 04 80
Назову вещи своими именами — ЭТО совсем не отклик OBEX!
Такого отклика не может быть в принципе!
Итак, читай ВНИМАТЕЛЬНО:
Первый байт в OBEX пакете всегда кокой-нибудь код. ВСЕГДА понимаещь?
И когда посылаешь и когда принимаешь, всегда первый байт это код.
В данном случае, ты ждешь отклика от устройства, значит должен анализировать коды ответа.
$A0 или $20 — успешно
$90 или $10 — Запрос на продолжение.
и т.д. см. спецификацию
Почему некоторые коды могут иметь два числа одного и того же результата я не знаю. Спецификаторы не договорились наверно.
Но реально зависит от производителя устройства. Может то, а может это посылать. Кто-то тут хотел универсальную прогу для всех устройств?-) Блажен кто верует... Это ещё цветочки.
Ну тык вот.
Далее после первого байта ВСЕГДА идут ДВА байта длины пакета. Понимаешь всегда?
А вот далее уже от обстоятельств.
Тут можно использовать такую стратегию, читай внимательно:

Сначала ВСЕГДА читаешь ТРИ первых байта.
Анализируешь первый. Если не совпадает ни с какими кодами (как в твоём собственно примере вверху), то это мусор. Можешь дальше не мучаться — это не OBEX.
Если совпало с кодом, то в зависимоти от кода во-первых, а во-вторых анализируешь длину пакета в бвух следующих байтах и если она больше 3 то остатки надо принять (длина — 3).
Ну а что там — читай спецификацию.

T>// opcode|length |version|flag|packsize|HI|data length|data(uuid)

T>// 80 | 001A |10 |00 |0x2000 |46|0013 |6B 01 CB 31 41 06 11 D4 9A 77 00 50 DA 3F 47 1F

T> BUF_s[ 0 ] := $80;


T> BUF_s[ 1 ] := $00; //length

T> BUF_s[ 2 ] := $1A; //length длинна пакета 26 байт
T> BUF_s[ 3 ] := $10; //VERSION
T> BUF_s[ 4 ] := $00; //FLAG
T> BUF_s[ 5 ] := $20; //PACKSIZE
T> BUF_s[ 6 ] := $00; //PACKSIZE
T> BUF_s[ 7 ] := $46; //HI
T> BUF_s[ 8 ] := $00; //DATA LENGTH
T> BUF_s[ 9 ] := $13; //DATA LENGTH

Вот видишь КРАСОТА! Уже более разумный код. Посмотри с чего ты начинал.

T> {uuid}


T> BUF_s[ 10 ] := $6B; BUF_s[ 11 ] := $01; BUF_s[ 12 ] := $CB; BUF_s[ 13 ] := $31;

T> BUF_s[ 14 ] := $41; BUF_s[ 15 ] := $06; BUF_s[ 16 ] := $11; BUF_s[ 17 ] := $D4;
T> BUF_s[ 18 ] := $9A; BUF_s[ 19 ] := $77; BUF_s[ 20 ] := $00; BUF_s[ 21 ] := $50;
T> BUF_s[ 22 ] := $DA; BUF_s[ 23 ] := $3F; BUF_s[ 24 ] := $47; BUF_s[ 25 ] := $1F;

T> if send( Sock, BUF_S, sizeof( @BUF_S ) , 0 ) = SOCKET_ERROR then

T> Debug_.Items.Add( 'filed ... !' )

Ну у тут... Сколько ты будешь наступать на одни и теже грабли в одном и том же месте. Причем тебе ещё и говорят что тут грабли???

Ты должен послать ровно столько байт, сколько ты сформировал в пакете, а не сколько у тебя буфер размером.
Ты вообще понимаешь, что возвращает sizeof( @BUF_S )???
Вот именно столько будет посылаться байт функцией send. И все эти байты будет пытаться анализировать принимающее устройство.


T> else

T> Debug_.Items.Add( 'Data send ... OK ... !' );

T> recv( Sock, BUF_R, sizeof( @BUF_R ), 0 );


Те же яйца — вид сбоку.
Ты пытаешься принять с устройства sizeof( @BUF_R ) байт. Функция будет ждать пока ей не прилетит именно столько байт.
А между тем тебе точно известно сколько устройство посылает тебе байт.
Стратегию я описал выше.

T>Благодарю за помощь.

Где тогда мне оценки???
... << RSDN@Home 1.1.4 stable rev. 510>>
Re[16]: не коннектится OBEX
От: Tsnok  
Дата: 18.11.05 05:17
Оценка:
Здравствуйте, kiborg,

Есть интересная вещь.

Если при задании структуры адреса
указать следующее

irADRR.irdaAddressFamily := AF_IRDA;
irADRR.irdaServiceName := 'OBEX';
и т.д.

и при этом послать в порт, что угодно получаю следующий отклик A0 00 07 10 00 и т.д.

но если структуру определить как

irADRR.irdaAddressFamily := AF_IRDA;
irADRR.irdaServiceName := 'IrDA:IrCOMM';

то в этом случае в ответ вываливается мусор, что в полне логично.

Вот.
По поводу длинны
View_BUF_SND.AppendBuffer( @BUF_S, 26 );
,,,,,,,
когда пробую просмотреть свой сформированный пакет вижу запрошенные 26 байт, судя по всему столько же отправляется в телефон,
вот то что отображается в буфере

80 00 00 00 00 00 00 00 1A 00 00 00 10 00 00 00
00 00 00 00 20 00 00 00 00 00

объясните если несложно, почему струтура пакета отличается от той что была задана, если я определил, что весь пакет заполнен данными а здесь только 6 байт в перемешку с нулями.

if send( Sock, BUF_S, 26 , 0 ) = SOCKET_ERROR then
,,,,,,,

recv( Sock, BUF_R, 26, 0 );
View_BUF_RCV.AppendBuffer( @BUF_R, 26 );
,,,,,,,

даже если определить динну пакета в 26 байт то в ответ все равно вываливается 17 04 80 и т.д.


Благодарю за помощь!
Re[16]: не коннектится OBEX
От: Tsnok  
Дата: 18.11.05 05:29
Оценка:
Здравствуйте, kiborg,

пробывал формировать пакет на основе доки по обексу 1.3

BUF_s[ 0 ] := $80;

BUF_s[ 1 ] := $00;
BUF_s[ 2 ] := $11;

BUF_s[ 3 ] := $10;
BUF_s[ 4 ] := $00;
BUF_s[ 5 ] := $20;
BUF_s[ 6 ] := $00;
BUF_s[ 7 ] := $C0;
BUF_s[ 8 ] := $00;
BUF_s[ 9 ] := $00;
BUF_s[ 10 ] := $00;
BUF_s[ 11 ] := $04;
BUF_s[ 12 ] := $C3;
BUF_s[ 13 ] := $00;
BUF_s[ 14 ] := $00;
BUF_s[ 15 ] := $F4;
BUF_s[ 16 ] := $83;

длинну определял как 00 11 тоесть в десятичной форме это 17 байт в ответ все равно вываливается 17 04 80

Подскажите чего не так делаю.
Re[16]: не коннектится OBEX
От: Tsnok  
Дата: 18.11.05 08:38
Оценка:
Здравствуйте, kiborg, Вы писали:

В общем, сделал я нормальную структуры отправки, т.е. 80 00 1А и.т.д, но вот на счет правильности пакета у меня все равно сомнения, отклик получаю какой то не такой уже и пример из доки по обексу пробывал все равно не катит ..... подскажите пожалуйста в чем ошибка, даже не знаю чего делать

Благодарю за помощь.
Re[17]: не коннектится OBEX
От: kiborg Россия  
Дата: 21.11.05 03:45
Оценка: 2 (1)
T>Если при задании структуры адреса
T>указать следующее

T> irADRR.irdaAddressFamily := AF_IRDA;

T> irADRR.irdaServiceName := 'OBEX';
T> и т.д.

T>и при этом послать в порт, что угодно получаю следующий отклик A0 00 07 10 00 и т.д.

А это что-то не логично. Как это что угодно? Что если полсать скажем один байт на пример $00,
то всё равно получишь то что ты написал?
И кстати A0 00 07 10 00 и т.д. это ведь успешный отклик. Еслиб ты всё написал можно точно сказать, а так
начало неплохое...


T>но если структуру определить как


T> irADRR.irdaAddressFamily := AF_IRDA;

T> irADRR.irdaServiceName := 'IrDA:IrCOMM';

T>то в этом случае в ответ вываливается мусор, что в полне логично.

Вот именно логично.


T>Вот.

T>По поводу длинны
T> View_BUF_SND.AppendBuffer( @BUF_S, 26 );
T> ,,,,,,,
T> когда пробую просмотреть свой сформированный пакет вижу запрошенные 26 байт, судя по всему столько же отправляется в телефон,
T> вот то что отображается в буфере

T> 80 00 00 00 00 00 00 00 1A 00 00 00 10 00 00 00

T> 00 00 00 00 20 00 00 00 00 00

T> объясните если несложно, почему струтура пакета отличается от той что была задана, если я определил, что весь пакет заполнен данными а здесь только 6 байт в перемешку с нулями.

Как я это объясню? Я же не стою у тебя за спиной не смотрю что ты там творишь. Откуда ты берёщь эти байты.


T> if send( Sock, BUF_S, 26 , 0 ) = SOCKET_ERROR then

T> ,,,,,,,

T> recv( Sock, BUF_R, 26, 0 );

Это по-прежнему не правильнро. Стратегию я описывал раньше. С какого потолка ты получаешь 26 байт?


T> View_BUF_RCV.AppendBuffer( @BUF_R, 26 );

T> ,,,,,,,

T> даже если определить динну пакета в 26 байт то в ответ все равно вываливается 17 04 80 и т.д.


Вот у меня вопросы.
... << RSDN@Home 1.1.4 stable rev. 510>>
Re[18]: не коннектится OBEX
От: Tsnok  
Дата: 21.11.05 10:08
Оценка:
Здравствуйте, kiborg,

T>Если при задании структуры адреса

T>указать следующее

T> irADRR.irdaAddressFamily := AF_IRDA;

T> irADRR.irdaServiceName := 'OBEX';
T> и т.д.

T>и при этом послать в порт, что угодно получаю следующий отклик A0 00 07 10 00 и т.д.

>А это что-то не логично. Как это что угодно? Что если полсать скажем один байт на пример $00,
>то всё равно получишь то что ты написал?
>И кстати A0 00 07 10 00 и т.д. это ведь успешный отклик. Еслиб ты всё написал можно точно сказать, а так
>начало неплохое...
\Это действительно так. Если описать имя сервиса ОБЕКС, и послать в порт что угодно хот $00 то в ответ получаетм именно такой отклик. Если интересно то могу скинуть исходные коды, убедитесь сами.

T>> if send( Sock, BUF_S, 26 , 0 ) = SOCKET_ERROR then

T>> ,,,,,,,

T>> recv( Sock, BUF_R, 26, 0 );

K>Это по-прежнему не правильнро. Стратегию я описывал раньше. С какого потолка ты получаешь 26 байт?
BUF_s[ 0 ] := $80;

BUF_s[ 1 ] := $00; //length
BUF_s[ 2 ] := $1A; //length

BUF_s[ 3 ] := $10; //VERSION
BUF_s[ 4 ] := $00; //FLAG
BUF_s[ 5 ] := $20; //PACKSIZE
BUF_s[ 6 ] := $00; //PACKSIZE
BUF_s[ 7 ] := $46; //HI
BUF_s[ 8 ] := $00; //DATA LENGTH
BUF_s[ 9 ] := $13; //DATA LENGTH

{uuid}

BUF_s[ 10 ] := $6B; BUF_s[ 11 ] := $01; BUF_s[ 12 ] := $CB; BUF_s[ 13 ] := $31;
BUF_s[ 14 ] := $41; BUF_s[ 15 ] := $06; BUF_s[ 16 ] := $11; BUF_s[ 17 ] := $D4;
BUF_s[ 18 ] := $9A; BUF_s[ 19 ] := $77; BUF_s[ 20 ] := $00; BUF_s[ 21 ] := $50;
BUF_s[ 22 ] := $DA; BUF_s[ 23 ] := $3F; BUF_s[ 24 ] := $47; BUF_s[ 25 ] := $1F;

25 плюс нулевой байт в итоге имеем 26 байт. Или все таки что то не так.


T>> View_BUF_RCV.AppendBuffer( @BUF_R, 26 );

T>> ,,,,,,,

K>Вот у меня вопросы.

K>[list]
K>
  • Что за устройство с которым ты работаешь?
    Мобильный телефон — Siemens s35

    K>
  • Есть ли у тебя программа вообще какая нибудь, которая с ним работает? То есть ты вообще видел сам чтобы с ним ктонибудь работал?
    Обмен между ним и ещё одним мобильником проиходит — обменивался картинками.

    K>
  • Если да, может ли твоё устройство работать по COM порту? Если да, то можно подглядеть что там работающая программа посылает в порт. Я например, довольно долго этим занимался, потому что все производители вставляюта
    свои особенности в протокол.
    если не секрет, не подскажите какими программами можно просматривать, что отправляется в порт.

    K>
  • Пробовал ли ты свой код на других устройствах?
    Да, результат аналогичный.
  • Re[18]: не коннектится OBEX
    От: Tsnok  
    Дата: 22.11.05 06:16
    Оценка:
    Здравствуйте, kiborg,:

    Извиняюсь за настойчивость, но неподскажите как можно просмотреть списки какталогов в телефоне, записать файл на телефон, скопировать файл файл с телефона на ПК.

    Благодарю за помощь!
    Re[19]: не коннектится OBEX
    От: kiborg Россия  
    Дата: 22.11.05 09:28
    Оценка: 2 (1)
    Здравствуйте, Tsnok, Вы писали:

    T>>и при этом послать в порт, что угодно получаю следующий отклик A0 00 07 10 00 и т.д.

    >>А это что-то не логично. Как это что угодно? Что если полсать скажем один байт на пример $00,
    >>то всё равно получишь то что ты написал?
    >>И кстати A0 00 07 10 00 и т.д. это ведь успешный отклик. Еслиб ты всё написал можно точно сказать, а так
    >>начало неплохое...
    T>\Это действительно так. Если описать имя сервиса ОБЕКС, и послать в порт что угодно хот $00 то в ответ получаетм именно такой отклик. Если интересно то могу скинуть исходные коды, убедитесь сами.

    Не ну всякое бывает. Только это не правильно. Тут ничего случайного не должно быть.

    T>>> if send( Sock, BUF_S, 26 , 0 ) = SOCKET_ERROR then

    T>>> ,,,,,,,

    T>>> recv( Sock, BUF_R, 26, 0 );

    K>>Это по-прежнему не правильнро. Стратегию я описывал раньше. С какого потолка ты получаешь 26 байт?
    T> BUF_s[ 0 ] := $80;

    T> BUF_s[ 1 ] := $00; //length

    T> BUF_s[ 2 ] := $1A; //length

    T> BUF_s[ 3 ] := $10; //VERSION

    T> BUF_s[ 4 ] := $00; //FLAG
    T> BUF_s[ 5 ] := $20; //PACKSIZE
    T> BUF_s[ 6 ] := $00; //PACKSIZE
    T> BUF_s[ 7 ] := $46; //HI
    T> BUF_s[ 8 ] := $00; //DATA LENGTH
    T> BUF_s[ 9 ] := $13; //DATA LENGTH

    T> {uuid}


    T> BUF_s[ 10 ] := $6B; BUF_s[ 11 ] := $01; BUF_s[ 12 ] := $CB; BUF_s[ 13 ] := $31;

    T> BUF_s[ 14 ] := $41; BUF_s[ 15 ] := $06; BUF_s[ 16 ] := $11; BUF_s[ 17 ] := $D4;
    T> BUF_s[ 18 ] := $9A; BUF_s[ 19 ] := $77; BUF_s[ 20 ] := $00; BUF_s[ 21 ] := $50;
    T> BUF_s[ 22 ] := $DA; BUF_s[ 23 ] := $3F; BUF_s[ 24 ] := $47; BUF_s[ 25 ] := $1F;

    T> 25 плюс нулевой байт в итоге имеем 26 байт. Или все таки что то не так.


    Я говорю про функцию recv( Sock, BUF_R, 26, 0 );
    Откуда здесь 26???


    K>>Вот у меня вопросы.

    K>>[list]
    K>>
  • Что за устройство с которым ты работаешь?
    T> Мобильный телефон — Siemens s35

    Сименсы самые нормальные в этом отношении телефоны (по-моему). У меня самого S65 (а есть и M45, M50, CF65). И все работают (в смысле OBEX).


    K>>
  • Есть ли у тебя программа вообще какая нибудь, которая с ним работает? То есть ты вообще видел сам чтобы с ним ктонибудь работал?
    T> Обмен между ним и ещё одним мобильником проиходит — обменивался картинками.
    При обмене между мобильниками используется OBEX Push! А не OBEX folder-listing. OBEX Push сервер принимает объект и ложит в папку по-умолчанию. Он не выдает список файлов по запросу. Другой вопрос что если поддерживается сервис OBEX Push то и как правило OBEX folder-listing. Но это разные сервисы понимаешь?



    K>>
  • Если да, может ли твоё устройство работать по COM порту? Если да, то можно подглядеть что там работающая программа посылает в порт. Я например, довольно долго этим занимался, потому что все производители вставляюта
    T>свои особенности в протокол.
    T>если не секрет, не подскажите какими программами можно просматривать, что отправляется в порт.

    www.ya.ru — найдется всё!
    www.google.ru — ещё больше.

    Есть бесплатная программка у Марка Руссиновича http://www.sysinternals.com
    PortMonNt

    Есть free-serial-port-monitor.exe (платная, но порты дает просматривать). Она покрасивше отчет выдает.



    K>>
  • Пробовал ли ты свой код на других устройствах?
    T> Да, результат аналогичный.
    Пародокс!
    ... << RSDN@Home 1.1.4 stable rev. 510>>
  • Re[19]: не коннектится OBEX
    От: kiborg Россия  
    Дата: 22.11.05 09:41
    Оценка: 2 (1)
    Здравствуйте, Tsnok, Вы писали:

    T>Здравствуйте, kiborg,:


    T>Извиняюсь за настойчивость, но неподскажите как можно просмотреть списки какталогов в телефоне, записать файл на телефон, скопировать файл файл с телефона на ПК.


    Соответственно программами. Но для разных моделей разные.
    Например Sumsung вообще OBEX не поддерживает. Всё через AT комманды. Их ещё узнать надо. И даже родной софт у них к одним подходит, к другим нет.

    Вот Сименсы самые нормальные. OBEX поддерживают с самых ранних моделей.
    Даже самая старая программа (dataexchangesoftware) называетсяя (опять же повторюсь поиск рулит!) работает со всеми моделями.
    Для Сименсов ещё могу SiMoCo посоветовать.
    Тут по моему
    http://www.siemens-club.ru/soft.php
    Ну соответственно другие модели другие программы.
    ... << RSDN@Home 1.1.4 stable rev. 510>>
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.