您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 第9章_基于红外和蓝牙协议的网络开发
第9章基于红外和蓝牙协议的网络开发主讲教师:贾震斌本章学习建议•本章学习的重点是掌握基于J2ME的蓝牙无线传输技术规范JSR82及其在编程中的应用,关键是通过实例程序理解J2ME中蓝牙应用程序设计的基本步骤;•需要注意的是JSR82并未实现蓝牙设备初始化的规范,这需要设备本身实现该功能。•本章对于蓝牙开发概念及方法的介绍都是非常初步的,对于程序开发者来说仅在本章教材中的知识甚至可以说是不完备,因此需要具有通过网络等途径查找相关资料的能力。本章学习目标•了解手持移动设备无线数据传输主要技术特点;•了解蓝牙无线数据传输技术的特点;•掌握基于J2ME的蓝牙编程技术规范JSR82;•了解红外无线传输技术的特点;•掌握J2ME中蓝牙编程基本步骤。本章目录•9.1无线数据传输概述•9.1蓝牙技术通信•9.3红外技术通信•9.4蓝牙技术实例•9.5本意小结•9.6思考与习题9.1无线数据传输概述9.1.1红外数据传输概述•红外线是波长在750nm至1mm之间的电磁波,波长较短,穿越障碍物能力差,适用于短距离对点对点无线数据传输;•红外数据传输就是通过红外线来传输数据,是一种广泛使用的无线连接技术;•设备需要安装可以接收和发送红外线的装置才具有红外传输能力,也就是所谓的红外接口;•红外数据传输具有点对点、小角度、短距离、安全性等特点•红外数据传输的主要有距离短、点对点直线不能有障碍物等缺点•红外数据传输广泛应用于移动计算和通信设备中,可以实现手机与手机、手机与电脑等同样具有红外接口设备间信息交流会•红外通信技术的主流标准是IrDA(红外数据协会)标准,波长范围在850nm—900nm之间,有4Mb/s、16Mb/s等传输速率红外数据传输的缺点•红外数据传输的主要有距离短、点对点直线、无法穿越障碍物等缺点红外数据传输的特点•红外数据传输具有点对点、小角度、短距离、安全性、高速率等特点9.1.2蓝牙技术通信•蓝牙(Bluetooth)技术是一种支持短距离通信(一般是10m之内)的无线通信技术,目前广泛应用于移动电话、PDA、无线耳机、笔记本电脑等设备之间进行近距离无线信息交换•蓝牙的标准是IEEE902.15,工作频率为2.4GHz,带宽为1Mb/s•JSR82规范定义了JavaAPIs(JABWT),这是J2ME关于蓝牙编程技术的重要规范,包括了编程主要步骤、类和对象的说明,WTK的Documentation中已经包括这个文档,务必要认真阅读9.2蓝牙技术通信•在J2ME中,专门定义两个Java蓝牙技术包:Java蓝牙技术包:javax.bluetooth对象交换协议包:javax.obex(OBEX)•蓝牙控制中心(BBC,即BluetoothControlCenter)是一种控制面板,主要让用户给设备栈配置参数。•任何蓝牙应用都有以下组件:堆栈初始化组件设备管理组件设备发现组件服务发现组件通信组件蓝牙编程的主要规范•初始化蓝牙设备:JSR82中不包含这部分内容,是由蓝牙设备商提供;•获得蓝牙设备本身的信息,依靠JSR82的LocalDevice设备管理类,继承于javax.bluetooth.LocalDevice,可以获得包括设备类型和服务类型等信息;•获得邻近区域蓝牙设备信息:依靠JSR82的RemoteDevice设备管理类,可以获得包括邻近设备地址和名称的信息;•在蓝牙服务设备上注册或广播某种服务,以便客户端能发现某种服务;•发现并访问其他邻近蓝牙设备:无线设备需要这样一种机制,由DiscoveryAgent类和DiscoveryListener接口提供这种机制;•进行通信的蓝牙设备应共享某种相同的通信协议才能通信,使用蓝牙接口框架建立连接传输数据。第1步初始化蓝牙设备•JSR82规范中不包含这部分内容,是由蓝牙设备商提供相关的类库,用于在蓝牙设备启动时对蓝牙设备栈初始化,设置蓝牙设备所用的串口号、波特率、是否允许被其他蓝牙设备连接、是否允许被其他蓝牙设备发现等功能。•蓝牙设备的栈是一个保存控制蓝牙设备参数的数据结构,不同的设备商提供的初始化栈的类库并不完全相同,这里用AtinavJAVABluetoothSDK来初始化一个栈,以便说明初始化代码的具体形式:importjavax.bluetooth.*;importjavax.microedition.io.*;importcom.atinav.bbc.*;BBC.setPortName(“COM1”);BBC.setBaudRate(57600);BBC.setConnectable(true);BBC.setDiscoverable(DiscoveryAgent.GIAC);第2步获取蓝牙设备本身信息•依靠JSR82的LocalDevice设备管理类(该类继承于javax.bluetooth.LocalDevice)可以获得包括本地蓝牙设备的设备类型和服务类型等信息,代码如下:LocalDevicelocal=LocalDevice.getLocalDevice();•LocalDevice对象可以通过其方法设置当前设备,如setDiscoverable()方法可以设置让其他设备发现本设备。第3步获取邻近蓝牙设备信息•依靠JSR82的RemoteDevice设备管理类,可以获得包括邻近设备地址和名称的信息第4步发现并访问其他蓝牙设备•无线设备需要这样一种机制:发现并访问其设备,这个机制由DiscoveryAgent类和DiscoveryListener接口提供,有2种方法:•DiscoveryAgent.startInquiry()方法将设备设置为查询模式;•DiscoveryAgent.retrieveDevices()方法获得一个已经存在的设备列表;LocalDevicelocalDevice=LocalDevice.getLocalDevice();DiscoveryAgentdiscoveryAgent=localDevice.getDiscoveryAgent();discoveryAgent.startInquiry(DiscoveryAgent.GIAC,this);第5步发现蓝牙设备上的服务•在蓝牙服务设备上注册或广播某种服务,使客户端发现某种服务;第6步共享某种通信协议•为了使应用能够访问蓝牙服务进行通信,蓝牙提供了多种通信服务协议,如:RFCOMM、L2CAP、OBEX第7步建立连接传输数据9.3红外技术通信•这部分内容仅了解,不要求掌握•红外通信技术设备成本较低,其协议主要包括基本协议和特定应用领域协议两种,包括以下层次:•信息访问服务层:包括局域网访问(IrLAN)、对象交换(IrOBEX)、模拟串口(IrCOMM)、流传输(TingTP)等•物理层(IrPHY)、建立连接(IrLMP)、连接管理(IrLMP)等•由于硬件限制,红外通信通常采用异步通信方式,传输速率较低,并且要求通信设备间无障碍物,而蓝牙技术采用无线电波受障碍物影响较小,速率较高,因此目前蓝牙技术已经成为近距数据传输的主流技术。9.4蓝牙技术实例•在本实例中设想使用两台蓝牙设备,其中一台作为服务器,发布服务程序,将客户端发过来的字符转换成大写字符串,另一台作为客户端,客户端程序从文本框输入字符串,将字符串发送到服务器,同时等待服务器发送回来的信息。9.5本意小结•本意重点是掌握蓝牙技术编程方法,了解红外技术的基本概念,实现小型移动设备的无线网络编程。习题•1.简述红外数据传输技术的特点及优劣之处。•2.简述蓝牙数据传输技术的特点。•3.J2ME关于蓝牙编程技术的规范名称是什么?•4.详述蓝牙编程技术的主要规范步骤及各步中类的作用。•5.该规范中蓝牙技术用于管理设备的有哪两个类?实际编程中有什么作用?
本文标题:第9章_基于红外和蓝牙协议的网络开发
链接地址:https://www.777doc.com/doc-2199717 .html