ʵսLinux Bluetooth±à³Ì£¨Èý£© HCI²ã±à³Ì
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒ鶼ÊÇÈí¼þÐÎʽÌá³öµÄ£¨BluezÖÐÊÇÒÔkernel²ã³ÌÐò)¡£ÔÚModuleÕâÒ»¶Ë£ºLink Manager, BB, µÈÐÒ鶼ÊÇÓ²¼þÖÐfirmwareÌṩµÄ¡£
¶øHCIÔò±È½ÏÌØÊ⣬ËüÒ»²¿·ÖÔÚÈí¼þÖÐʵÏÖ£¬ÓÃÀ´¸øÉϲãÐÒéºÍ³ÌÐòÌṩ·ÃÎʽӿڣ¨BluezÖÐ,hci.c hci_usb.c£¬hci_sock.cµÈ£©.ÁíÒ»²¿·ÖÒ²ÊÇÔÚFirmwareÖÐʵÏÖ£¬ÓÃÀ´½«Èí¼þ²¿·ÖµÄÖ¸ÁîµÈÓõײãÐÒéÃ÷°×µÄ·½Ê½´«µÝ¸øµ×²ã¡£
¾ÓÓÚPCµÄÉϲã³ÌÐòÓëÐÒéºÍ¾ÓÓÚModulesµÄϲãÐÒéÖ®¼äͨ¹ýHCI¹µÍ¨£¬ÓÐ4ÖÖ²»Í¬ÐÎʽµÄ´«Ê䣺Commands, Event, ACL Data, SCO/eSCO Data¡£
1.1. HCI Command£º
HCI CommandÊÇHostÏòModules·¢ËÍÃüÁîµÄÒ»ÖÖ·½Ê½¡£HCI Command Packet½á¹¹ÈçÏ£º
OpCodeÓÃÀ´Î¨Ò»±êʶHCI Command.ËüÓÉ2²¿·Ö×é³É£¬10bitµÄOpcode Command. 6bitµÄOpcode Group¡£
1.1.1: OpCode Group:
Linux Kernel£¨BlueZ£©ÖУ¬~/include/net/bluetooth/hci.hÖж¨ÒåÁËOpCode Group¡£
#define OGF_LINK_CTL 0x01
#define OGF_LINK_POLICY 0x02
#define OGF_HOST_CTL 0x03
#define OGF_INFO_PARAM 0x04
#define OGF_STATUS_PARAM 0x05
ËüÃÇ´ú±íÁ˲»Í¬µÄCommand Group£º
OGF_LINK_CTL: Link control,Õâ¸öCommand GroupÖеÄCommandÔÊÐíHost¿ØÖÆÓëÆäËübluetooth device µÄÁ¬½Ó¡£
OGF_LINK_POLICY £ºLink Policy¡£Õâ¸öCommand GroupÖеÄCommandÔÊÐíµ÷ÕûLink Manager control.
OGF_HOST_CTL: Control and Baseband.
1.1.2: Opcode Command:
ÓÃÀ´ÔÚͬһ¸öGroupÄÚΨһʶ±ðCommand¡£~/include/net/bluetooth/hci.hÖж¨Òå¡£
1.2: HCI Event£º
ModulesÏòHost·¢ËÍһЩÐÅÏ¢£¬Ê¹ÓÃHCI Event¡£Event Packet½á¹¹ÈçÏ£º
HCI Event·Ö3ÖÖ£ºCommand complete Event, Command States Event£¬Command Subsequently Completend.
Command complete Event: Èç¹ûHost·¢Ë͵ÄCommand¿ÉÒÔÁ¢¿ÌÓнá¹û£¬Ôò»á·¢ËÍ´ËÀàEvent¡£Ò²¾ÍÊÇ˵£¬Èç¹û·¢Ë͵ÄCommandÖ»Óë±¾µØModulesÓйأ¬²»ÓëremoteÉ豸´ò½»µÀ£¬ÔòʹÓÃCommand complete Event¡£ÀýÈ磺HCI_Read_Buffer_Size.
Command States Event£ºÈç¹ûHost·¢ËÍ
Ïà¹ØÎĵµ£º
×¼±¸¹¤×÷:
¡¡¡¡Óõ½µÄperl À©Õ¹×é¼þ(modules)ÔÚÉÏƪÌù³ö.( win32::odbc Ä£¿é
)ÏÂÔØ×é¼þºó°´ÕÕReadmeÎļþ°²×°µ¹ÏìӦĿ¼.ÅäÖúÃÏàÓ¦µÄodbcÊý¾ÝÔ´.
¡¡¡¡
¡¡¡¡³ÌÐòʵÏÖ:
¡¡¡¡Ê¹ÓÃ
¡¡¡¡use
Win32::ODBC;
¡¡¡¡
¡¡¡¡Óï¾ä°üº¬Ó¦Ê¹ÓõÄÄ£¿éÊÇwin32::odbc,д³öÊý¾Ý¿â
Á¬½Ó×Ö·û´®
¡¡¡¡
¡¡¡¡$DSN = "DSN =
My DSN ......
×î½üÁ½Ä꣬ÎļþϵͳµÃµ½Á˺ܴóµÄ·¢Õ¹¡£
SunÓпªÔ´µÄZFSÒÔ¼°ÊÕ¹ºµÄLustreÎļþϵͳ¡£Quantum¡¢Panasas¡¢ IBM¡¢»ÝÆÕ¡¢NetAppºÍRed HatÒ²¶¼ÔöÇ¿ÁËÎļþϵͳ¿ª·¢Á¦¶È¡£NFS£¨ÍøÂçÎļþϵͳ£©ÕýÔÚ¾Àú´óµÄ±ä¶¯£¬Ö÷Òª´ú±í¾ÍÊÇpNFS£¨²¢ÐÐÍøÂçÎļþϵͳ£©¡£ºÁ²»Ææ¹ÖµÄÊÇ£¬ËùÓÐÕâЩ¿ª·¢Ðж¯´Ùʹ¿ªÔ´ÉçÇøÍƳöÕë¶ÔLinuxµÄ¸ü¸ßÐÔÄܵÄÎļþÏµÍ ......
ÔÚÓ¦ÓóÌÐò¿ª·¢Ê±£¬Ò²¾³£ÐèÒªÈçϵĶ¨Ê±Æ÷. ÕâÀï¶Ô¶¨Ê±Æ÷×öÁËÒ»¸öÓÅ»¯£¬¾ÍÊÇÔÚ²åÈë¶ÓÁÐÖÐʱ½øÐÐÁËÒ»´ÎÅÅÐò£¬Ê¹µÃ¼ì²âʱ²»ÐèÒª±éÀúÕû¸öÁ´±í£¬Ö»Ðè°ÑÅÅÔÚÇ°ÃæµÄ¼¸¸öµ½Ê±µÄÈÎÎñÈ¡³öÀ´¾Í¿ÉÒÔÁË¡£
static struct timer_list {
long jiffies;
void (*fn)();
......
1£ºÕë¶ÔÔÚÒ»¸öÓ²ÅÌÉÏ°²×°ÁË˫ϵͳµÄÇé¿ö£º
Linuxϵͳ¿Éʶ±ðWindows·ÖÇø£¬Ä¬ÈÏÇé¿öϲ»×Ô¶¯¼ÓÔØËü¡£µ«ÓÐʱÔÚLinuxÖÐÐèÒªÓëWindows·ÖÇø½»»»Îļþ£¬Õâ¾ÍÐèÒª¼ÓÔØËü¡£¸ù¾Ý²»Í¬µÄ½»»»ÐèÒª£¬ÎÒÃǿɲÉÓò»Í¬µÄ¼ÓÔØ·½Ê½¡£ÏÂÃæÒÔRedHat Linux 7.3¼òÌåÖÐÎÄ°æΪÀýÀ´ËµÃ÷¡£
Ò»¡¢ÊÖ¹¤¼ÓÔØ
Èç¹ûÄãÖ»ÊÇż¶û½øÐÐһЩÎļþ½»»»£¬ÓÖÏ ......
×ܽ᣺
zhy2111314
À´×Ô£º
LinuxSir.Org
ÕûÀí£º
±±ÄÏÄϱ±
ͻ񻣼
±¾ÎÄÊÇfind ÃüÁîµÄÏêϸ˵Ã÷£¬¿É¹óµÄÊÇÕë¶Ô²ÎÊý¾ÙÁ˺ܶàµÄʵÀý£¬´óÁ¿µÄÀýÖ¤£¬ÈóõѧÕ߸üΪÈÝÒ×Àí½â£»±¾ÎÄÊÇzhyflyÐÖÌùÔÚÂÛ̳ÖУ»ÎÒ¶Ô±¾ÎĽøÐÐÁËÔÙ´ÎÕûÀí£¬Îª·½±ã´ó¼ÒÔĶÁ£»
Ŀ¼
°æȨÉùÃ÷
Ç°ÑÔ£º¹ØÓÚfindÃüÁî
Ò»¡¢find ÃüÁî¸ñʽ
1¡¢findÃüÁîµÄÒ» ......