当前位置:首页 » 操作系统 » osal源码

osal源码

发布时间: 2022-07-25 17:17:13

❶ ZigBee2006无线网络与无线定位实战的目录

第1章 ZigBee无线网络和定位系统基础
1.1 无线数据网络和无线定位技术广阔的应用前景
1.2 ZigBee无线网络使用频谱和ISM开放频带
1.3 热门短距离无线数据网络技术
1.3.1 ZigBee
1.3.2 Wi-Fi
1.3.3 蓝牙(Bluetooth)
1.3.4 超宽频技术(UWB)
1.3.5 近短距无线传输(NFC)
1.4 典型的无线网络结构和网络拓扑
1.5 典型的无线网络定位系统
1.6 ZigBee无线网络定位技术特点
1.6.1 ZigBee技术的广阔应用前景
1.6.2 低功耗低速技术特点
1.6.3 高可靠性的无线网络
1.6.4 网络拓扑和路由
1.6.5 安全和加密
1.6.6 协议栈模式和应用模式
1.7 练习题和答案
第2章 ZigBee无线定位单片机CC2430/CC2431
2.1 CC2430/CC2431芯片的主要特点
2.2 CC2430/CC2431芯片构架
2.3 CC2430/CC2431片上8051内核
2.3.1 增强型8051内核
2.3.2 存储空间
2.3.3 特殊功能寄存器
2.4 CC2430/CC2431主要特征外设
2.4.1 输入输出(I/O)端口
2.4.2 直接存取(DMA)控制器
2.4.3 MAC定时器
2.4.4 AES-128安全协处理器
2.4.5 14位模数转换器(ADC)
2.5 CC2430/CC2431无线收发部分
2.5.1 IEEE802.15.4调制模式
2.5.2 接收模式
2.5.3 发送模式
2.5.4 MAC数据格式
2.5.5 CSMA/CA协处理器
2.5.6 参考设计电路
2.6 CC2430/CC2431所涉及无线通信技术
2.6.1 清洁信道评估CCA
2.6.2 无线直接频谱技术DSSS
2.6.3 载波侦听多点接入/冲突检测CSMA/CA
2.7 CC2431无线定位引擎介绍
2.8 练习题和答案
第3章 建立自己ZigBee无线定位硬件平台
3.1 无线开发系统硬件平台的选择
3.2 ZigBee无线网络/定位系统C51RF-CC2431-ZDK概述
3.3 C51RF-CC2431-ZDK仿真器
3.4 无线定位中心控制板系统:网关系统
3.5 无线参考节点和定位节点:ZigBee高频模块
3.6 硬件综合测试SPP软件
3.7 C51RF-3-F协议分析仪
3.8 习题与答案
第4章 自己ZigBee无线定位软件平台
4.1 ZigBee软件集成开发平台
4.2 IAR集成开发环境
4.2.1 IAR安装
4.2.2 添加文件或新建程序文件
4.2.3 设置工程选项参数
4.2.4 编译、连接、下载
4.2.5 仿真调试
4.3 ZigBee2006协议栈库
4.4 无线网络定位图形监视软件
4.5 物理地址修改软件
4.6 ZigBee数据分析仪软件
4.7 其它辅助软件
4.8 配套测试例程
4.9 练习题和答案
第五章 ZigBee协议栈结构和原理
5.1 ZigBee协议栈概述
5.2 IEEE802.15.4通信层
5.2.1 PHY(物理)层
5.2.2 MAC(介质接入控制子层)层
5.3 ZigBee网络层
5.3.1 网络层(Network Specification)概况
5.3.2 网络层帖结构
5.3.3 网络层功能介绍
5.4 ZigBee应用层
5.4.1 ZigBee技术应用
5.4.2 应用层(Application Layer Specification)概述
5.4.3 ZigBee应用支持子层
5.4.4 ZigBee Profile
5.4.5 ZigBee设备对象(ZDO)
5.5 ZigBee网络/定位系统配套协议栈
5.5.1 精简版ZigBee协议栈(2004)
5.5.2 验证版ZigBee协议栈2006
5.6 练习题和答案
第6章 ZigBee2006 基础实验(一)
6.1 初级实验样板(Sample App)
6.1.1 实验目的
6.1.2 实验原理
6.1.3 实验硬件和软件准备
6.2 ZigBee2006协议栈编译、下载
6.2.1 设备选择及设置
6.2.2 编译、下载程序
6.3 实验源代码
6.3.1 发送一个信息包
6.3.2 发送、接收数据的过程
6.3.2 接收一个信息包
6.4 实验内容
6.4.1 流程图
6.4.2 路由器代码
6.4.3 协调器代码
6.5 采用C51RF-3-F数据分析仪分析ZigBee数据包
6.5.1 协议分析仪组成
6.5.2 加入网络
6.5.3 发送、接收数据
6.6 实验效果
6.7 习题与答案
第7章 ZigBee 2006基础实验(二)
7.1 ZigBee 2006 实时操作系统简介
7.1.1 OS术语介绍
7.1.2 OSAL API介绍
7.1.3 OSAL任务
7.2 简单ZigBee 2006应用接口(simple api)
7.2.1 实验目的
7.2.2 实验原理
7.2.3 软件准备SAPI介绍
7.3 网络形成
7.3.1 协调器格式化网络
7.3.2 路由器和终端设备加入网络
7.3.3 ZDO_StartDevice
7.4 绑定
7.4.1 绑定表格
7.4.2 绑定建立
7.4.3 绑定解除
7.5 命令
7.5.1 命令定义及使用
7.5.2 串(cluster)
7.5.3 ZCL介绍
7.5.4 PROFILE介绍
7.6 灯开关实验
7.6.1 APP函数分析
7.6.2 灯开关实验
7.6.3 实验总结
7.7 温度传感器实验
7.7.1 设备
7.7.2 命令
7.7.3 发现和绑定
7.7.4 数据包发送和接收
7.8 习题与答案
第8章 ZigBee2006无线定位实验
8.1 实验目的和设备
8.1.1 实验目的
8.1.1 实验设备
8.2 ZigBee2006无线定位应用Profile
8.2.1 XY-RSSI 请求(串ID0X0011)
8.2.2 XY-RSSI 应答(串ID0x0012)
8.2.3 定位节点发现请求(串ID0x0013)
8.2.4 定位节点发现回答(串ID0x0014)
8.2.5 参考节点配置(串ID0x0015)单播
8.2.6 定位节点配置(串ID0x0016)单播
8.2.7 参考节点请求配置(串ID0x0017)广播
8.2.8 定位节点请求配置(串ID0x0018)广播
8.2.9 RSSI blast(串ID0x0019)广播
8.3 装载无线定位模式软件代码到网关
8.3.1 初始化物理地址
8.3.2 下载中心控制器软件
8.4 参考模块和定位模块设定和软件下载
8.4.1 参考模块和移动模块程序下载
8.4.2 设置物理地址
8.5 理解CC2431无线定位C51源代码
8.5.1 协调器代码
8.5.2 参考节点代码
8.5.3 定位节点代码
8.5.4 无线定位系统运行效果观察
8.6 习题与答案
第9章 矿井安全 无线定位网络系统
9.1 矿井井下无线定位网络原理和实现
9.2 系统各节点电路框图
9.3 理解无线定位网络应用程序C51源代码
9.3.1 液晶驱动程序
9.3.2 ZigBee协议栈和API调用说明
9.3.3 参考节点设计
9.3.4 定位节点设计
9.3.5 网关设计
9.4 实验效果
9.4.1 各节点上电复位后的数据
9.4.2 查看参考节点配置数据(参考节点请求配置(0x0017))
9.4.3 参考节点配置数据(参考节点配置(0x0015))
9.4.4 查看定位节点配置数据(定位节点请求配置(0x0018))
9.4.5 定位节点配置参数(定位节点配置(0x0016))
9.4.5 发现定位节点位置(发现定位节点请求(0x0013))
9.5 习题和答案

❷ 在IAR环境下运行时报错

HalUARTWrite(0,next,);

这一句逗号后面少了strlen(next)

❸ 求一个c++小程序源代码,要求200行以上,给100分,能用再加100

//=================================[说明]=======================================*/
//学生成绩管理
//文件名:main.cpp
//------!!!!!!---------BOF-[程序代码开始]-------------------

#include<iostream>
#include<string>
using namespace std;
//=============<开始定义结构体>===================================================
struct combox
{

int num;
int mark;
string name;
combox *next;

};
//=============<结束定义结构体>===================================================

//=============<开始定义Commonbox类>==============================================

//-----类体开始------------------------
class Commonbox
{

private:
combox *head;
void Swap(combox *,combox *); //交换两个combox变量的数据域
void Print(combox *); //输出一combox指定的记录
combox *Find(int); //查找条例条件的记录,并返回该记录的指针

public:
Commonbox()
{
head=NULL;
}
int ListCount(); //统计当前链表的记录总数,返回一个整数
void AddItem(int num, string name, int mark); //添加一条记录到表尾
void RemoveItem(int); //删除一条指定的记录
void List(); //列出当前链表中的所有记录
void Sort(); //对当前链表进行排序
void Search(int); //在当前链表查找指定记录并输出
float Average(); //计算平均成绩
};
//-----类体结束------------------------

//-----类成员函数开始----------------------------------
int Commonbox::ListCount() //统计当前链表的记录总数,返回一个整数
{

if (! head)return 0;
combox *p=head;
int n=0;
while (p)
{
n++;
p=p->next;
}
return n;

}

void Commonbox::AddItem(int num, string name, int mark) //添加一条记录到表尾
{

if (! head)
{
head=new combox;
head->mark=mark;
head->num=num;
head->name=name;
head->next=NULL;
return;
}

combox *t=head;
while (t && t->num!=num)
t=t->next;

if (t)
{
cout<<"操作失败:学号为"<<num<<"的记录已经存在!"<<endl;
return;
}

combox *p=head;
while (p->next)p=p->next;
combox *p1=new combox;
p1->num=num;
p1->mark=mark;
p1->name=name;
p1->next=NULL;
p->next=p1;

return;
}

void Commonbox::RemoveItem(int num) //删除一条指定的记录
{

combox *t=Find(num);
if (! t)return;

combox *p=head;

//如果要删除的记录位于表头
if (head==t)
{
head=head->next;
delete p;
cout <<"成功删除学号为 "<<num<<" 的记录!"<<endl<<endl;
return;
}

while (p->next!=t)p=p->next;
combox *p1=p->next;
p->next=p1->next;
delete p1;
cout <<"成功删除学号为 "<<num<<" 的记录!"<<endl<<endl;

return;
}

void Commonbox::Print(combox *p) //输出一combox指定的记录
{

cout<<p->num<<"\t\t";
cout<<p->name<<"\t\t";
cout<<p->mark<<endl;

return;
}

void Commonbox::List() //列出当前链表中的所有记录
{

if (ListCount()==0)
{
cout <<"错误:当前的列表为空!"<<endl;
return;
}

combox *p=head;
cout<<"共有记录:"<<ListCount()<<endl;
cout<<"学号\t\t姓名\t\t分数"<<endl;
while (p)
{
Print(p);
p=p->next;
}
cout <<endl;
return;
}

void Commonbox::Search(int num) //在当前链表查找指定记录并输出
{

cout <<"Searching...."<<endl;

combox *p=Find(num);
if (p)
{
cout<<"学号\t\t姓名\t\t分数"<<endl;
Print(p);
}
cout <<endl;
}

combox *Commonbox::Find(int num)
{

if (ListCount()==0)
{
cout <<"错误:当前的列表为空!"<<endl;
return NULL;
}

combox *p=head;
while (p)
{
if (p->num==num)break;
p=p->next;
}

if (! p)
{
cout <<"错误:找不到该记录!\n";
return NULL;
}

return p;
}

void Commonbox::Swap(combox *p1, combox *p2) //交换两个combox变量的数据域
{

combox *temp=new combox;
temp->num=p1->num;
temp->mark=p1->mark;
temp->name=p1->name;

p1->num=p2->num;
p1->mark=p2->mark;
p1->name=p2->name;

p2->num=temp->num;
p2->mark=temp->mark;
p2->name=temp->name;

}

void Commonbox::Sort() //对当前链表进行排序
{
cout <<"Sorting..."<<endl;
if (ListCount()<2) return;

combox *temp=NULL,*p=NULL,*p1=NULL,*p2=NULL,*k=NULL;
int n=ListCount(),i,j;

p=head;
for (i=1;i<n;i++)
{
k=p;
p1=p->next;
for (j=0;j<n-i;j++)
{
if (k->num > p1->num)
{
k=p1;
}
p1=p1->next;
}
if (p!=k)Swap(k,p);
p=p->next;
}
cout <<"Complete successfully!"<<endl<<endl;
return;
}

float Commonbox::Average() //计算平均成绩
{

if (ListCount()==0)
{
cout <<"错误:当前的列表为空!"<<endl;
return -1;
}
int sum=0,n=0;
combox *p=head;
while (p)
{
sum += p->mark;
p=p->next;
n++;
}
return float(sum)/n;
}
//-----类成员函数结束----------------------------------

//=============<结束定义Commonbox类>==============================================

Commonbox student; //定义全局变量

int Menu()
{
cout <<"===========[主选单:]==========="<<endl;
int n=1,select=-1;
cout <<n++<<".输入学生成绩;"<<endl<<endl;
cout <<n++<<".按学号排序;"<<endl<<endl;
cout <<n++<<".按学号查找记录;"<<endl<<endl;
cout <<n++<<".删除由学号指定的记录;"<<endl<<endl;
cout <<n++<<".列出所有记录;"<<endl<<endl;
cout <<n++<<".计算平均成绩;"<<endl<<endl;
cout <<"0.退出;"<<endl<<endl;

cout <<"[请选择(输入相应数字)]:";
cin >>select;
return select;
}

char Exit() //返回一个字符患,用于确认退出
{
char s;
cout<<"确定要退出程序吗?[Y/N]:";
cin >>s;
return s;
}

void Input(int *num, string *name, int *mark) //输入学生信息
{

cout <<"请输入 学号 姓名 分数:";
cin >>*num;
if (*num==-1)return;
cin >>*name>>*mark;

return;
}

void AddNew() //增加记录
{

int num=0,mark=0;
string name="";

cout<<endl<<"当输入的学号为-1时表示结束输入."<<endl;
Input(&num, &name, &mark);
while (num!=-1)
{
student.AddItem(num,name,mark);
Input(&num, &name, &mark);
}
return;
}

void DoFind() //按学号查找
{

int num;
cout<<endl<<"当输入的学号为-1时表示结束输入."<<endl;
do
{
cout <<"请输入要查找的学生的学号: ";
cin>>num;
if (num==-1)continue;
student.Search(num);
}
while (num!=-1);

return;
}

void DoDelete() //删除记录
{

cout<<endl<<"当输入的学号为-1时表示结束输入."<<endl;
int num;
do
{
cout <<"请输入要删除的学生的学号:";
cin>>num;
if (num==-1)continue;
student.RemoveItem(num);
}
while (num!=-1);
return;
}

void ShowAverage() //输出平均数
{

float avr=student.Average();
if (avr>0)
{
cout<<"共有记录:\t"<<student.ListCount()<<endl<<endl;
cout<<"平均成绩:\t"<<avr<<endl<<endl;
}
return;
}
//-------******<主函数开始>******-------

int main()
{

cout<<"Welcome!\n学生成绩管理系统\nVer 1.01\nBy FondBoy\n\n";

int select;
char s;

while (1)
{
select=Menu();
switch (select)
{
case 0: //退出程序
s=Exit();
if (s=='y' || s=='Y')return 0;
break;

case 1: //输入学生成绩
AddNew();
break;

case 2: //按学号排序
student.Sort();
break;

case 3: //按学号查找记录
DoFind();
break;

case 4: //删除由学号指定的记录
DoDelete();
break;

case 5: //列出所有记录
student.List();
break;

case 6: //输出平均成绩
ShowAverage();
break;

default:
cout<<"无效输入!"<<endl;
}
}

return 0;
}
//-------******<主函数结束>******-------
//------!!!!!!---------EOF-[程序代码结束]-------------------

热点内容
java方法定义 发布:2025-01-19 20:20:50 浏览:404
kr脚本 发布:2025-01-19 20:17:41 浏览:518
帮我开启存储 发布:2025-01-19 20:17:39 浏览:813
s9存储缩水 发布:2025-01-19 20:08:06 浏览:335
2b2t的服务器编号是什么 发布:2025-01-19 19:58:55 浏览:874
androidstudio下载与安装 发布:2025-01-19 19:58:14 浏览:560
拉钩算法 发布:2025-01-19 19:58:14 浏览:866
python中读取文件 发布:2025-01-19 19:37:26 浏览:369
网吧电脑连接到steam服务器错误 发布:2025-01-19 19:37:17 浏览:602
mc怎么在别人的服务器开创造 发布:2025-01-19 19:37:16 浏览:71