ʵս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 ......
ÔںܶàϵͳÈí¼þµÄ¿ª·¢ÖУ¬ÐèҪʹÓÃһЩϵͳµÄΨһÐÔÐÅÏ¢¡£ËùÒÔ£¬µÃµ½Ö÷»úµÄCPUID¡¢Ó²ÅÌÐòÁкż°Íø¿¨µÄMACµØÖ·£¬¾Í³É¸öÒ»¼þºÜÖØÒªµÄÓ¦Óá£
±¾È˾¹ýÒ»·¬google¼´×Ô¼ºµÄ×êÑУ¬»ù±¾ÉÏʵÏÖÁËÕ⼸¸ö¹¦ÄÜ¡£ÐèÒªµÄ×¼±¸ÖªÊ¶ÓУº
GCCµÄǶÈë»ã±à£¬¾ßÌåµÄGCCǶÈë»ã±à֪ʶ£¬Çë²Î¿¼Ïà¹ØÊÖ²á
ioctlϵͳµ÷Ó㬾ßÌåµÄµ÷Ó÷½·¨ ......
Ç°Ãæ½²ÁËʹÓà 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¿ª·¢²ãµÄÐÒ ......
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......