Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2213799
  • 博文数量: 436
  • 博客积分: 9833
  • 博客等级: 中将
  • 技术积分: 5558
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-29 10:27
文章存档

2013年(47)

2012年(79)

2011年(192)

2010年(118)

分类:

2010-11-13 01:42:06

网络工程作业阶段性成果及下一步研究计划报告6

 

题目:嵌入式系统中的无线技术 zigbee,bluetooth,wifi,红外协议分析

组长:李天祺  组员:李天祺

 

报告日期:20101113

一.研究内容概述

本次主要内容是蓝牙协议源代码的阅读与学习,在之前对蓝牙协议基础有一定的认识上阅读蓝牙协议源码,以增强阅读源代码的能力及认识蓝牙协议的具体实践方式。

二.蓝牙协议源代码

本源代码源于网络

//判断蓝牙是否打开的函数
TBool CMessageClient::GetBluetoothOn()
{
  // Create and initialise an RHostResolver
   RHostResolver hr;
   TInt res = false;
   TBool ret;
  
   RSocketServ socketServer;
   User::LeaveIfError(socketServer.Connect());        
   CleanupClosePushL(socketServer);
  
   res =  hr.Open(socketServer, KBTAddrFamily, KBTLinkManager);
  
   if (KErrNone != res) {
      // if not success, this means bluetooth is not on
      ret = EFalse;
   }
  
   else
   {
      ret = ETrue; // Bluetooth is already ON
      hr.Close();
   }
  
   CleanupStack::PopAndDestroy(1); 
  
   return ret;
}

//打开蓝牙的函数
void CMessageClient::ProcessBTPowerON()
{
 TPckgBuf pckg;
 RNotifier iNotifier;
 TPckgBuf iNotifierResult;
 TRequestStatus status;

User::LeaveIfError(iNotifier.Connect());
 iNotifier.StartNotifierAndGetResponse(status,KPowerModeSettingNotifierUid,pckg,iNotifierResult);
 User::WaitForRequest(status);
 User::LeaveIfError(status.Int());

iNotifier.CancelNotifier(KPowerModeSettingNotifierUid);
 iNotifier.Close();
 User::LeaveIfError(iNotifierResult[0]);
}

 

三.本阶段问题

本阶段的主要问题是难以下载协议源代码,由于学校网络、用户注册、积分等原因资源来源十分有限,比如用校园网CSDN无法登陆、PUDN等网站需要积分。以上所示源码,虽然能够下载,但源代码下载下来没有注释,很难读明白。另外,有些手机上的蓝牙源代码是用java语言写的,但是我不会,因此没法读。

本周我读过《蓝牙协议及其源代码分析》的无限协议和基带协议这两章的小部分内容,但是书中并没有给出源代码,多是讲原理,比如分组格式,信道定义,时序等。

 

四.总结

本周时间有些仓促,而且源代码看的不是很明白,收获不是很大,但是在《蓝牙协议及其源代码分析》中提到了一个蓝牙开发平台,不知还有没有时间去尝试一下。

阅读(1122) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~