在好例子网,分享、交流、成长!
您当前所在位置:首页C# 开发实例C#网络编程 → PC端蓝牙调试软件 源码

PC端蓝牙调试软件 源码

C#网络编程

下载此实例
  • 开发语言:C#
  • 实例大小:0.45M
  • 下载次数:250
  • 浏览次数:3588
  • 发布时间:2018-04-02
  • 实例类别:C#网络编程
  • 发 布 人:这局
  • 文件格式:.rar
  • 所需积分:2
 相关标签: c 蓝牙 调试 软件

实例介绍

【实例简介】简单的蓝牙串口调试工具

【实例截图】

from clipboard


from clipboard

【核心代码】

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);
                
            }));


        }
    }
}

标签: c 蓝牙 调试 软件

实例下载地址

PC端蓝牙调试软件 源码

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

第 1 楼 a18874971452 发表于: 2021-11-16 16:27 26
我连上又断开

支持(0) 盖楼(回复)

发表评论

(您的评论需要经过审核才能显示)

查看所有1条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警