基本信息
源码名称:PC端蓝牙调试软件 源码
源码大小:0.45M
文件格式:.rar
开发语言:C#
更新时间:2018-04-02
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍
简单的蓝牙串口调试工具


using System;
using System.Collections.Generic;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using InTheHand.Net;

using InTheHand.Net.Bluetooth;
using InTheHand.Net.Sockets;
using InTheHand.Windows.Forms;

namespace Bluetooth
{
    public partial class BluetoothScan : Form
    {
        //string SendFileName = null;      //发送文件名
        BluetoothRadio Radio = null;     //蓝牙适配器
        BluetoothAddress SendAdder = null; //发送的目的地址
        Guid mGUID = Guid.Parse("00001101-0000-1000-8000-00805F9B34FB");//蓝牙串口服务的uuiid
        ObexListener Listener = null;      //监听器
        string RecFileDir = null;         //接收文件存放目录
        BluetoothListener BluetoothListener = null;   //蓝牙监听
        Thread ListenThread, SendThread;  //接收和发送线程
        BluetoothClient BlueClient = null;   //监听远程蓝牙设备
        BluetoothEndPoint BluetoothEndPoint = null;
        Dictionary<string, BluetoothAddress> deviceAddresses = new Dictionary<string, BluetoothAddress>();//存放地址的列表
        NetworkStream networkStream;
        bool Status = false;
        bool Button3StatusFlag = true;
        public BluetoothScan()
        {
            InitializeComponent();

        }

        private void BluetoothScan_Load(object sender, EventArgs e)
        {
            /*放程序主体的地方*/
            Radio = BluetoothRadio.PrimaryRadio;        //获取当前PC的蓝牙适配器
            CheckForIllegalCrossThreadCalls = false;    //不检测跨线程使用
            发送按钮.Enabled = false;                   //不使能发送按钮
            选择蓝牙设备.Enabled = true;
            打开连接按钮.Enabled = false;
            if (Radio == null)
            {
                MessageBox.Show("电脑蓝牙未打开或者未发现!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                信息.Text = "电脑蓝牙未打开或者未发现,请打开设备蓝牙";

            }
            else
            {  
                信息.Text = "设备蓝牙打开";
                //this.timer1.Interval = 10;
                //this.timer1.Start();      //启动定时器
            }
            //RecFileDir = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);   //显示文件存放位置的
           

        }

        

        //private void SnedData()
        //{
        //    ObexWebRequest Request = new ObexWebRequest(SendAdder,Encoding.UTF8.GetBytes(richTextBox1.Text.Trim()));

        //}

        
        //private void Find_Click_1(object sender, EventArgs e)
        //{
        //    this.richTextBox1.Text = "";
        //    this.richTextBox1.Visible = true;
        //    Radio = BluetoothRadio.PrimaryRadio;    //获取蓝牙适配器
        //    Radio.Mode = RadioMode.Connectable;     //打开蓝牙设备
        //    BluetoothDeviceInfo[] Device = BlueClient.DiscoverDevices();    //获取设备信息
        //    comboBox1.Items.Clear();
        //    deviceAddresses.Clear();   //清除队列
        //    foreach (BluetoothDeviceInfo device in Device)
        //    {
        //        comboBox1.Items.Add(device.DeviceName);
        //        deviceAddresses[device.DeviceName] = device.DeviceAddress;
        //    }
        //    this.richTextBox1.Text = "搜索设备完成,搜索到"   comboBox1.Items.Count   "蓝牙设备。";
        //}

        private void Choice_Click(object sender, EventArgs e)
        {
            SelectBluetoothDeviceDialog Dialog = new SelectBluetoothDeviceDialog
            {
                ShowRemembered = true,          //显示记住的蓝牙设备        
                ShowAuthenticated = true,       //显示认证过的蓝牙设备
                ShowUnknown = true            //显示位置蓝牙的设备
            };   //创建一个船体

            if (Dialog.ShowDialog()==DialogResult.OK)
            {

                
                SendAdder = Dialog.SelectedDevice.DeviceAddress;//获取选择的远程蓝牙的地址
                
                label2.Text = "设备名:"   Dialog.SelectedDevice.DeviceName   "     地址:"   SendAdder.ToString();
                打开连接按钮.Enabled = true;
                Status = true;
                

                //finally
                //{
                //    if (BlueClient != null)
                //    {
                //        // [注意3]:要延迟一定时间(例如1000毫秒)
                //        //避免因连接后又迅速断开而导致蓝牙进入异常(傻逼)状态
                //        Thread.Sleep(1000);
                //        BlueClient.Close();
                //    }
                //}
            }
            else
            {
                打开连接按钮.Enabled = false;
                Status = false;
            }

        }

        private void Send_Click(object sender, EventArgs e)
        {

            //SendThread = new Thread(SnedData);
            //SendThread.Start();       //开启发送线程

            try
            {

                if (Status != false&& Button3StatusFlag==false)
                {
                    发送按钮.Enabled = false;
                    byte[] SendData = null;
                    networkStream = BlueClient.GetStream();
                    SendData = Encoding.UTF8.GetBytes(richTextBox1.Text.Trim());
                    if (networkStream.CanWrite)
                    {
                        networkStream.Write(SendData, 0, SendData.Length);
                    }
                   
                    发送按钮.Enabled = true;
                }
                else
                {
                    /*输出我设备的信息*/
                }
            }
            catch
            {

                发送按钮.Enabled = false;
                if (BlueClient != null)
                {
                    // [注意3]:要延迟一定时间(例如1000毫秒)
                    //避免因连接后又迅速断开而导致蓝牙进入异常(傻逼)状态
                    Thread.Sleep(1000);
                    BlueClient.Close();
                }
                label3.Text = "发送失败,自动断开蓝牙连接";
                打开连接按钮.Text = "打开连接";
                发送按钮.Enabled = false;
                选择蓝牙设备.Enabled = true;
                Button3StatusFlag = true;
            }

        }


        private void Button3_Click(object sender, EventArgs e)
        {

            打开连接按钮.Enabled = false;

            if (Button3StatusFlag == true)
            {

                label3.Text = "";
                try
                {
                    
                    BlueClient = new BluetoothClient();
                    BluetoothEndPoint = new BluetoothEndPoint(SendAdder, BluetoothService.SerialPort);
                    BlueClient.Connect(BluetoothEndPoint);  //连接蓝牙
                    if (BlueClient.Connected)
                    {
                        
                        label3.Text = "连接蓝牙成功";
                        打开连接按钮.Text = "断开连接";
                        发送按钮.Enabled = true;
                        选择蓝牙设备.Enabled = false;
                        Button3StatusFlag = false;

                        //BlueClient.
                        //if (BluetoothListener == null)
                        //{
                        //    Radio.Mode = RadioMode.Discoverable;   //设置本地蓝牙可被检查
                        //    BluetoothListener = new BluetoothListener(BluetoothEndPoint);
                        //    BluetoothListener.Start();             //创建监听

                        ListenThread = new Thread(ReceiveData);
                        ListenThread.Start();    //开启监听线程
                        //}
                        /*
                       写要发送的数据 
                       使能发送按钮
                     */

                    }
                }
                catch (SocketException)
                {
                    label3.Text = "连接不成功,请检查蓝牙设备";

                    if (BlueClient != null)
                    {
                        // [注意3]:要延迟一定时间(例如1000毫秒)
                        //避免因连接后又迅速断开而导致蓝牙进入异常(傻逼)状态
                        Thread.Sleep(1000);
                        BlueClient.Close();
                        
                    }
                    //BluetoothListener = null;
                    打开连接按钮.Text = "打开连接";
                    发送按钮.Enabled = false;
                    选择蓝牙设备.Enabled = true;
                    Button3StatusFlag = true;

                }
            }
            else
            {
                label3.Text = "";
                /*断开连接的操作*/
                try
                {
                     
                        if (BlueClient != null)
                        {
                            // [注意3]:要延迟一定时间(例如1000毫秒)
                            //避免因连接后又迅速断开而导致蓝牙进入异常(傻逼)状态
                            Thread.Sleep(1000);
                            BlueClient.Close();
                        }
                        try
                        {
                        ListenThread.Abort();   //终止线程
                        //BluetoothListener.Stop();
                        //BluetoothListener = null;
                    }
                    catch
                        {

                        }
                       
                       
                        label3.Text = "断开蓝牙连接";
                        打开连接按钮.Text = "打开连接";
                        发送按钮.Enabled = false;
                        选择蓝牙设备.Enabled = true;
                        Button3StatusFlag = true;
                       
                        /*
                       写要发送的数据 
                       使能发送按钮
                     */

                   
                }
                catch (SocketException)
                {

                    label3.Text = "断开连接不成功";
                }

            }
            打开连接按钮.Enabled = true;
        }

        private void ReceiveData()
        {
            while (true)
            {
                try
                {

                    //BluetoothListener = new BluetoothListener(BluetoothEndPoint);//使用指定的本地端点初始化BluetoothListener类的新实例。
                    //BluetoothListener.Start();              //开始监听的蓝牙传输服务
                    //BlueClient = BluetoothListener.AcceptBluetoothClient();  //侦听器组件检测到指定的服务或端点时,为连接创建客户端对象。
                    //bool isConnected = true;

                    //while (isConnected)
                    //{
                    //    if (BlueClient != null && BlueClient.Connected)
                    //    {
                    //    networkStream = BlueClient.GetStream();
                    //    }
                    //    else
                    //    {
                    //        break;
                    //    }
                    //    byte[] buffer = new byte[100];
                    //    networkStream.Read(buffer, 0, buffer.Length);

                    //}



                    if (Status != false && Button3StatusFlag == false)
                    {

                        networkStream = BlueClient.GetStream();
                         
                        if(networkStream.CanRead)
                        {
                            byte[] ReceiceData = new byte[1024];
                            Thread.Sleep(100);
                            int DataSize=networkStream.Read(ReceiceData, 0, ReceiceData.Length);
                            Addcontent(new UTF8Encoding().GetString(ReceiceData, 0, DataSize));
                        }
                        
                            

                        

                    }

                }
                catch
                {

                }
            }
        }


        //窗体关闭的时候释放资源
        private void BluetoothScan_FormClosing(object sender, FormClosingEventArgs e)
        {
            ListenThread.Abort();   //终止线程
            if (BlueClient != null)
            {
                // [注意3]:要延迟一定时间(例如1000毫秒)
                //避免因连接后又迅速断开而导致蓝牙进入异常(傻逼)状态
                Thread.Sleep(1000);
                BlueClient.Close();
            }

        }

        //实现自动换行
        private void Addcontent(string content)
        {
            this.BeginInvoke(new MethodInvoker(delegate
            {
                 if(richTextBox2.Text.Length<0)
                {
                    richTextBox2.AppendText("\r\n");
                }
                 richTextBox2.AppendText(content);
                
            }));


        }
    }
}