ʵսLinux Bluetooth±à³Ì (Æß) SDPÐÒé
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£Õâ¸öÐÒ鶨ÒåÁ˿ͻ§ÈçºÎÄܹ»Ñ°ÕÒ»ùÓÚÌØ¶¨ÊôÐԵķþÎñ¶ø²»Èÿͻ§ÖªµÀ¿ÉÓ÷þÎñµÄÈκÎ֪ʶ¡£SDPÌṩ·¢ÏÖзþÎñµÄ·½·¨£¬ÔÚµ±¿Í»§µÇ¼µ½ÕýÔÚ²Ù×÷µÄÀ¶ÑÀ·þÎñÆ÷µÄÒ»¸öÇøÓòʱÊÇ¿ÉÓõÄʱ¡£
Service discovery»úÖÆÌṩclientÓ¦ÓóÌÐòÕì²âserverÓ¦ÓóÌÐòÌṩµÄ·þÎñµÄÄÜÁ¦£¬²¢ÇÒÄܹ»µÃµ½·þÎñµÄÌØÐÔ¡£·þÎñµÄÆ·Öʰüº¬·þÎñtype»ò·þÎñclass.
SDPÒ²ÌṩSDP serverÓëSDP clientÖ®¼äµÄͨѶ¡£SDP serverά»¤×ÅÒ»¸ö·þÎñÌõÄ¿(service record)Áбí.ÿ¸ö·þÎñÌõÄ¿ÃèÊöÒ»¸öµ¥¶ÀµÄ·þÎñÊôÐÔ¡£ SDP client¿ÉÒÔͨ¹ý·¢ËÍSDP requestÀ´µÃµ½·þÎñÌõÄ¿¡£
Èç¹ûÒ»¸öclient»òÕßÒÀ¸½ÓÚclientÖ®ÉϵÄÓ¦ÓóÌÐò¾ö¶¨Ê¹ÓÃij¸öservice. Ëü´´½¨Ò»¸öµ¥¶ÀµÄÁ¬½Óµ½serviceÌṩÕß¡£ SDP Ö»ÌṩÕì²âServiceµÄ»úÖÆ£¬µ«²»ÌṩÈçºÎÀûÓÃÕâЩServiceµÄ»úÖÆ¡£Sam¾õµÃ£¬ÕâÀïÆäʵÊÇ˵£ºSDPÖ»ÌṩÕì²âServiceµÄ°ì·¨£¬µ«ÈçºÎÓã¬SDP²»¹Ü¡£
ÿ¸öBluetooth Device×î¶àÖ»ÄÜÓµÓÐÒ»¸öSDP Server¡£Èç¹ûÒ»¸öBluetooth DeviceÖ»µ£ÈÎClient£¬ÄÇËü²»ÐèÒªSDP Server¡£µ«Ò»¸öBluetooth Device¿ÉÒÔͬʱµ£µ±SDP ServerºÍSDP client.
Service Record(Service ÌõÄ¿)£º
Ò»¸öserviceÊÇÒ»¸öʵÌåΪÁíÒ»¸öʵÌåÌṩÐÅÏ¢£¬Ö´Ðж¯×÷»ò¿ØÖÆ×ÊÔ´¡£Ò»¸öservice¿ÉÒÔÓÉÈí¼þ£¬Ó²¼þ»òÈíÓ²¼þ½áºÏÌṩ¡£
ËùÓеÄServiceÐÅÏ¢¶¼°üº¬ÓÚÒ»¸öService RecordÄÚ¡£Ò»¸öService Record °üº¬Ò»¸öService attribute(ServiceÊôÐÔ) list.
ÔÚÒ»¸öSDP ServerÄÚ£¬Ã¿¸öService RecordÓµÓÐÒ»¸ö32-bitµÄΨһÐÔÊý¾Ý¡£Í¨³££¬Õâ¸öΨһÐÔÖ»ÊÇÔÚÿ¸öSDP ServerÄÚ²¿¡£ Èç¹ûSDP Server S1 ºÍSDP Server S2ÓµÓÐͬÑùµÄÒ»¸öService Record¡£ÄÇËûÃÇÔÚ²»Í¬SDP SeverÄڵĶÀÌØÊýÖµ²¢²»Ò»¶¨Ïàͬ¡£
SDPÔÚSDP ServerÔö¼Ó»ò¼õÉÙService Recordʱ£¬²¢²»»á֪ͨSDP client.
Service Attribute(Service ÊôÐÔ)£º
ÿ¸öServiceÊôÐÔÃèÊöservcieµÄÌØÐÔ.Ò»¸öService AttributeÓÉ2²¿·Ö£º
Attribute ID + Attribute Value¡£
Attribute ID£º16-bitÎÞ·ûºÅÕûÊý£¬ÓÃÓÚÇø±ðÒ»¸öService RecordÄ򵀮äËüÊôÐÔ¡£
Attribute Value£ºAttributeÖµ¡£
Service Class£º
ÿ¸öServi
Ïà¹ØÎĵµ£º
×¼±¸¹¤×÷:
¡¡¡¡Óõ½µÄperl À©Õ¹×é¼þ(modules)ÔÚÉÏÆªÌù³ö.( win32::odbc Ä£¿é
)ÏÂÔØ×é¼þºó°´ÕÕReadmeÎļþ°²×°µ¹ÏìӦĿ¼.ÅäÖúÃÏàÓ¦µÄodbcÊý¾ÝÔ´.
¡¡¡¡
¡¡¡¡³ÌÐòʵÏÖ:
¡¡¡¡Ê¹ÓÃ
¡¡¡¡use
Win32::ODBC;
¡¡¡¡
¡¡¡¡Óï¾ä°üº¬Ó¦Ê¹ÓõÄÄ£¿éÊÇwin32::odbc,д³öÊý¾Ý¿â
Á¬½Ó×Ö·û´®
¡¡¡¡
¡¡¡¡$DSN = "DSN =
My DSN ......
Ç°Ãæ½²ÁËʹÓà ioctl·¢ËÍHCI CommandµÄ·½·¨¡£µ«HCI protocol»¹ÓÐһЩCommand£¬±ÈÈçInquiryµÈ£¬ËûÃÇÔò²»ÐèҪʹÓÃioctlÀ´·¢ËÍ¡£blueZ Ö±½ÓÌṩÁËÖ§³Ö£¬ËäÈ»ËûÃǵÄ×îÖÕ¶¼ÊÇÓÃͬÑù°ì·¨ÊµÏֵġ£
ÔÚÓ¦ÓóÌÐòÖУº
hci_inquiry(dev_id, length, num_rsp, NULL, &info, flags);
ÕâÑùÐèÒª°üº¬blueZ Í·ÎļþÈçÏ£º
#include //BT ......
LinuxÏÂBluetoothÐÒéÕ»µÄʵÏÖ. LinuxÏ¿ª·ÅµÄÀ¶ÑÀÐÒéÕ»Ö÷Òª°üÀ¨IBM¹«Ë¾µÄBlueDrekar£¬Nokia¹«Ë¾µÄAffix, Axis¹«Ë¾µÄOpenBTºÍ¹Ù·½ÐÒéÕ»BlueZ¡£ÎÒÃÇÖ÷ÒªÃæ¶ÔBluezÀ´Ì½ÌÖ¡£
BlueZ»ù´¡´úÂë¾ùÊÇÓÉMaxim KrasnyanskyÍê³ÉµÄ¡£°üÀ¨£ºHCI£¬L2CAP£¬RFCOMMºÍ»ù±¾socketµÄʵÏÖ¡£Ëû¾ÍÖ°ÓÚQualcomm(¸ßͨ)¡£Marcel Holtmann¿ª·¢²ãµÄÐÒ ......
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......