2013-04-22 09:41:06

什么是蓝牙?

现在只能手机这么发达,蓝牙对我们来说肯定不陌生。我来介绍一下官方概念:

蓝牙,是一种支持设备短距离通信(一般10m内)的无线电技术。能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。利用“蓝牙”技术,能够有效地简化移动通信终端设备之间的通信,也能够成功地简化设备与因特网Internet之间的通信,从而数据传输变得更加迅速高效,为无线通信拓宽道路。蓝牙采用分散式网络结构以及快跳频和短包技术,支持点对点及点对多点通信,工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段。其数据速率为1Mbps。采用时分双工传输方案实现全双工传输。

我的介绍:通过蓝牙我们可以在10m范围内让两个有蓝牙的设备进行数据交换。

C#进行蓝牙编程

本节我们给大家用源码的形式给大家介绍如何用C#调用蓝牙。下面的源码是基于destop的C#调用蓝牙的程序,也就是使用普通版本的.NET Framework来调用编程,一般是有蓝牙的笔记本电脑,或者使用外接蓝牙设备的电脑,如何使用外接蓝牙设备,请参考:外接USB蓝牙设置无法启动

好了下面直接上代码:

 

odeusing System;

sing System.Collections.Generic;

sing System.Windows.Forms;

sing InTheHand.Net;

sing InTheHand.Net.Bluetooth;

sing InTheHand.Net.Sockets;

 

amespace BlueTooth

 

   public partial class Form1 : Form

   {

       public Form1()

       {

           InitializeComponent();

       }

 

       BluetoothClient Blueclient = new BluetoothClient();

       Dictionary<string, BluetoothAddress> deviceAddresses = new Dictionary<string, BluetoothAddress>();

 

       private void btnFind_Click(object sender, EventArgs e)

       {

           this.lblMessage.Text = "";

           this.lblMessage.Visible = true;

           BluetoothRadio BuleRadio = BluetoothRadio.PrimaryRadio;

           BuleRadio.Mode = RadioMode.Connectable;

           BluetoothDeviceInfo[] Devices = Blueclient.DiscoverDevices();

           lsbDevices.Items.Clear();

           deviceAddresses.Clear();

           foreach (BluetoothDeviceInfo device in Devices)

           {

               lsbDevices.Items.Add(device.DeviceName);

               deviceAddresses[device.DeviceName] = device.DeviceAddress;

           }

 

           this.lblMessage.Text = "搜索设备完成,搜索到" + lsbDevices.Items.Count + "个蓝牙设备。";

 

       }

 

       private void btnConnect_Click(object sender, EventArgs e)

       {

           try

           {

               BluetoothAddress DeviceAddress = deviceAddresses[lsbDevices.SelectedItem.ToString()];

               Blueclient.SetPin(DeviceAddress, txtPwd.Text.Trim());

               Blueclient.Connect(DeviceAddress, BluetoothService.Handsfree); 

               MessageBox.Show("配对成功。");

           }

           catch (Exception ex)

           {

               MessageBox.Show(ex.Message);

           }

       }

   }

运行结果:

上图是点击finddevices按钮后的结果。我们选择其中的一个设备,然后在Password的textbox中输入配对密码,点击Connect,如果成功会弹出对话框提示“配对成功”,如果失败会出现如下提示:

Note:你只要想在Visual Studio中建立一个winform的默认程序,并把代码复制过去,然后引用InTheHand.Net.Personal.dll你的程序就可以直接运行了。不过我不建议你直接复制,最好是敲一边代码比较好。

上面的示例代码中还需要特殊注意的就是下面这三个命名空间:

using InTheHand.Net;
using InTheHand.Net.Bluetooth;

using InTheHand.Net.Sockets;

他们是拿来的呢?在上面的程序中我引用了一个外部的DLL:InTheHand.Net.Personal.dll,上面那三个命名空间就是InTheHand.Net.Personal.dll中的。我使用的是桌面版的.NET Framework3.5,如果你想在移动设备,如手机或者手持机等移动设备而上使用,那么你只需要创建一个.NET Compact  Framework 3.5的程序,把上面的源码直接复制过去,并且引用InTheHand.Net.Personal.dll的移动版本就ok了。

总结

本文介绍了蓝牙技术以及用C#写了一个调用蓝牙的实例Demo,帮助大家理解,希望对大家有所帮助。我在这里留下一个悬念就是InTheHand.Net.Personal.dll是怎么来的,请参考:.NET蓝牙开源库:32feet.NET

.NET蓝牙开源库:32feet.NET

2013-04-22 09:42:50

用C#调用蓝牙编程一文中我留个小悬念就是:InTheHand.Net.Personal.dll是怎么来的?这篇文章来解答这个问题,InTheHand.Net.Personal.dll就是来源于今天要介绍的内容32feet.NET。

什么是32feet.NET

32feet.NET是shared-source的项目,支持CF.net 2.0以及桌面版本.NET framework,提供短距离领域(personal area networking technologie)的通信功能,支持bluetooth,Infrared(IrDA)红外等.

想了解更多的信息可以参考其官方主页,其项目的安装包和源码是放在微软的开源工程网站CodePlex上面的,作为.NET开发人员我们必须要上的网站就是CodePlex,本文的主要内容是32feet.net,所以就不过多的介绍CodePlexle ,更多CodePlex信息请参考百度百科

下载32feet.NET的安装包和源码

下载32feet.net的安装包以及实例代码请点击这里,下载32feet.net的源码请点击这里。对于想了解如何使用32feet.net的人员来说我们直接仅仅下载安装包即可;如果想了解32feet.net是如何实现的那就必须要下载其源代码了。我是一个使用者所以仅仅下载了安装包。

安装和使用32feet.NET实例

下载下来后怎安装我就不详细介绍了,就是傻瓜安装,安装过程中需要注意的是安装目录在哪里,安装完毕后就可以直接去找了。我的安装路径是:D:\Program Files\32feet.NET,然后进去后打开文件夹发现:

如上图文件夹所示Help是我们如何使用的官方帮助,NET是桌面版的引用所在位置,NET文件夹下仅仅存放了桌面版的InTheHand.Net.Personal.dll和其对应的xml文件。到这里我也就完全回答了上篇文章所留一下的小悬念。NETCF文件夹下的内容和NET文件夹下的内容是一样的都是一个InTheHand.Net.Personal.dll文件和其对应的xml文件,但是其平台不同,当我们开发.NET Compact Framework的项目是需要引用NET CF 文件夹下的InTheHand.Net.Personal.dll。

Sample是实例的文件夹,打开后是一些项目源码,我们可以参考这个来学习32feet.net,我就是根据研究这里的代码为参考开发出了上篇文章的实例,想查看具体内容请参考:用C#调用蓝牙编程。至于其他的文件大家可以去研究,我就不多介绍了。

总结

本文介绍了一个.NET 关于蓝牙等技术的开源库,当我们遇到有关蓝牙等有关编程的时候可以利用这个库,站在巨人的肩膀上编程。希望对大家有帮助。

用C#调用蓝牙编程的更多相关文章

  1. C# 蓝牙编程

    C#进行蓝牙编程 本节我们给大家用源码的形式给大家介绍如何用C#调用蓝牙.下面的源码是基于destop的C#调用蓝牙的程序,也就是使用普通版本的.NET Framework来调用编程,一般是有蓝牙的笔 ...

  2. Windows Phone 8 蓝牙编程

    蓝牙是手机的近距离无限传输的技术,在之前的Windows Phone 7系统手机里面仅支持蓝牙耳机功能,并不支持蓝牙文件信息传输,那么在Windows Phone 8手机里面将全面支持蓝牙技术,并且提 ...

  3. android 蓝牙编程重点---如何发送和接收16进制数据

    最近的android蓝牙开发项目也逐渐接近尾声,基本的功能都已经完成,只剩下界面的设计.现在真的是舒了一口气! 作为编程学习经验只有1年的菜鸟,这是我独自完成的商业性产品,而且还是涉及到与单片机蓝牙模 ...

  4. C++调用Lua编程环境搭建及测试代码示例

    C++调用Lua编程环境搭建及测试代码示例 摘要:测试环境是VS2005+LuaForWindows_v5.1.4-45.exe+WIN7 1.安装lua开发环境LuaForWindows_v5.1. ...

  5. android平台蓝牙编程

    Android平台支持蓝牙网络协议栈,实现蓝牙设备之间数据的无线传输. 本文档描述了怎样利用android平台提供的蓝牙API去实现蓝牙设备之间的通信,蓝牙设备之间的通信主要包括了四个步骤:设置蓝牙设 ...

  6. android平台蓝牙编程(转)

    http://blog.csdn.net/pwei007/article/details/6015907 Android平台支持蓝牙网络协议栈,实现蓝牙设备之间数据的无线传输. 本文档描述了怎样利用a ...

  7. Android BLE 蓝牙编程(四)

    接上篇,我们已经实现了短震,长震的功能了- 现在我们需要实现点击后一直震动的功能 开始我的想法是再循环中不断执行write方法,然而这个办法行不通. 系统会报错. 那要如何实现这个想法呢?其实很简单, ...

  8. Android BLE 蓝牙编程(三)

    上节我们已经可以连接上蓝牙设备了. 本节我们就要获取手环的电池电量和计步啦. 在介绍这个之前我们需要先了解下什么是 服务 什么是 UUID 我们记得上节中我们item监听事件的回调的返回值是Bluet ...

  9. Android调用蓝牙打印机

    首先需要一个jar包,bluesdk,请自行百度. 具体排版样式跟网络打印机打印排版样式实现一样,这里不多叙述,只贴一个实现方法代码.蓝牙打印机使用前需要先跟手机配对,可以保存在本地,记录下地址,这里 ...

随机推荐

  1. CodeForces 489B (贪心 或 最大匹配) BerSU Ball

    题意: 有m个男孩和n个女孩,每个人都有一个舞蹈熟练度,用一个不超过100的正整数来表示. 一个男孩和一个女孩能够结为舞伴当且仅当两人的熟练度相差不超过1. 问最多能结成多少对舞伴 分析: 这是一个二 ...

  2. [Sciter系列] MFC下的Sciter–3.Sciter脚本与底层交互

    [Sciter系列] MFC下的Sciter–3.Sciter脚本与底层交互,脚本调用底层自定义的方法函数. 本系列文章的目的就是一步步构建出一个功能可用,接口基本完善的基于MFC框架的SciterF ...

  3. 【转】iPhone屏幕尺寸、分辨率及适配

    原文网址:http://blog.csdn.net/phunxm/article/details/42174937 1.iPhone尺寸规格 设备 iPhone 宽 Width 高 Height 对角 ...

  4. Oracle DBA 的常用Unix参考手册(二)

    9.AIX下显示CPU数量    # lsdev -C|grep Process|wc -l10.Solaris下显示CPU数量# psrinfo -v|grep "Status of pr ...

  5. asp.net MVC 应用程序的生命周期(上)

    首先我们知道http是一种无状态的请求,他的生命周期就是从客户端浏览器发出请求开始,到得到响应结束.那么MVC应用程序从发出请求到获得响应,都做了些什么呢? 本文我们会详细讨论MVC应用程序一个请求的 ...

  6. ZOJ3865:Superbot(BFS) The 15th Zhejiang University Programming Contest

    一个有几个小坑的bfs 题目很长,但并不复杂,大概总结起来有这么点. 有t组输入 每组输入n, m, p.表示一个n*m的地图,每p秒按键会右移一次(这个等会儿再讲). 然后是地图的输入.其中'@'为 ...

  7. adb remount 失败remount failed: Operation not permitted

    1. 进入shell adb shell 2. shell下输入命令 shell@android:/ $ sushell@android:/ # mount -o rw,remount -t yaff ...

  8. EasyHook远注简单监控示例 z

    http://www.csdn 123.com/html/itweb/20130827/83559_83558_83544.htm 免费开源库EasyHook(inline hook),下面是下载地址 ...

  9. HNU 13108-Just Another Knapsack Problem (ac自动机上的dp)

    题意: 给你一个母串,多个模式串及其价值,求用模式串拼接成母串(不重叠不遗漏),能获得的最大价值. 分析: ac自动机中,在字典树上查找时,用dp,dp[i]拼成母串以i为结尾的子串,获得的最大价值, ...

  10. TP分析

    http://blog.csdn.net/l627859442/article/details/7633457 http://blog.chinaunix.net/uid-27717694-id-37 ...