全部博文(436)
分类:
2010-11-13 01:42:06
网络工程作业阶段性成果及下一步研究计划报告6
题目:嵌入式系统中的无线技术 zigbee,bluetooth,wifi,红外协议分析
组长:李天祺 组员:李天祺
报告日期:
一.研究内容概述
本次主要内容是蓝牙协议源代码的阅读与学习,在之前对蓝牙协议基础有一定的认识上阅读蓝牙协议源码,以增强阅读源代码的能力及认识蓝牙协议的具体实践方式。
二.蓝牙协议源代码
本源代码源于网络
//判断蓝牙是否打开的函数
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
RNotifier iNotifier;
TPckgBuf
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语言写的,但是我不会,因此没法读。
本周我读过《蓝牙协议及其源代码分析》的无限协议和基带协议这两章的小部分内容,但是书中并没有给出源代码,多是讲原理,比如分组格式,信道定义,时序等。
四.总结
本周时间有些仓促,而且源代码看的不是很明白,收获不是很大,但是在《蓝牙协议及其源代码分析》中提到了一个蓝牙开发平台,不知还有没有时间去尝试一下。