首页 > 编程语言 >.NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件

.NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件

时间:2022-12-26 15:23:19浏览次数:77  
标签:Toast 控件 VB sender Smobiler void args 蓝牙 private

本文简述如何在Smobiler中使用Bluetooth。

Step 1. 新建一个SmobilerForm窗体,并在窗体中加入Button和Bluetooth,布局如下

Button的点击事件代码:

       /// <summary>
        /// 关闭蓝牙
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Press(object sender, EventArgs e)
        {
            bluetooth1.Close((abj, args) =>
            {
                if (args.isError == true)
                    Toast(args.error);
                else
                    Toast("success");
            });
        }
        /// <summary>
        /// 打开蓝牙
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Press(object sender, EventArgs e)
        {
            bluetooth1.Open((abj, args) =>
            {
                if (args.isError == true)
                    Toast(args.error);
                else
                    Toast("success");
            });

        }
        string macAdress = "";
         /// <summary>
         /// 搜索蓝牙设备
         /// </summary>
         /// <param name="sender"></param>
         /// <param name="e"></param>
        private void button3_Press(object sender, EventArgs e)
        {
            bluetooth1.Search((abj, args) =>
            {
                if (args.isError == true)
                    Toast(args.error);
                else
                {
                    Toast("success" + args.Name + "  " + args.MacAddress);
                    macAdress = args.MacAddress;
                }
            });

        }
        /// <summary>
        /// 连接蓝牙
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button4_Press(object sender, EventArgs e)
        {
            //第一个参数为蓝牙设备MAC地址
            bluetooth1.Connect(macAdress, (abj, args) =>
            {
                if (args.isError == true)
                    Toast(args.error);
                else
                    Toast("success");
            });
        }
        /// <summary>
        /// 关闭蓝牙
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button5_Press(object sender, EventArgs e)
        {
            bluetooth1.CloseConnect((abj, args) =>
            {
                if (args.isError == true)
                    Toast(args.error);
                else
                    Toast("success");
            });
        }
        /// <summary>
        /// 发送蓝牙信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button6_Press(object sender, EventArgs e)
        {
            string str = "690000001";
            string print = "SIZE 80 mm,40 mm\r\n" + "REFERENCE 0,0\r\n" + "SPEED 4.0\r\n" + "DENSITY 8\r\n" + "SET PEEL OFF\r\n" + "SET CUTTER OFF\r\n" + "SET TEAR ON\r\n" + "DIRECTION 0\r\n" + "SHIFT 0\r\n" + "OFFSET 0 mm\r\n" + "CLS\r\n" + "BARCODE 20,20,\"128M\",160,1,0,4,12,\"" + str + "\"\r\n" + "TEXT 20,190,\"ARIAL.TTF\",0,15,15,\"" + str + "\"\n" + "PRINT 3,1\r\n";
            bluetooth1.WriteData(System.Text.Encoding.UTF8.GetBytes(print), (abj, args) =>
            {
                if (args.isError == true)
                    Toast(args.error);
                else
                    Toast("success");
            });
        }
        /// <summary>
        ///获取蓝牙状态,蓝牙是否连接成功需要GetStatus获取状态来判断
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button7_Press(object sender, EventArgs e)
        {
            bluetooth1.GetStatus((abj, args) =>
            {
                if (args.isError == true)
                    Toast(args.error);
                else
                {
                    Toast(args.Status + "  " + args.Name + "  " + args.MacAddress);
                    label2.Text = args.Status.ToString();
                }
            });
        }

在设计器中选中Bluetooth添加事件

        private void bluetooth1_DataReceived(object sender, Smobiler.Plugins.BluetoothDataReceivedEventArgs e)
        {
            //e.Data 接收到的数据; e.Deviceid 蓝牙设备id; 当连接多个蓝牙时,会多次触发该事件,可根据e.Deviceid区分蓝牙设备
            MessageBox.Show(System.Text.Encoding.GetEncoding("gbk").GetString(e.Data));
        }

Step 2. 运行服务端后,手机上安装官网的调试工具进行测试,效果如下

若是使用云平台上自行打包的客户端, 需要添加相应插件后再打包客户端。

补充

以上代码可用于连接经典蓝牙,BLE蓝牙请使用以下方法

方法 方法说明
CloseConnectBle 断开连接上的低功耗蓝牙设备
ConnectBle 连接指定低功耗蓝牙
SearchBle 查找并连接低功耗蓝牙
WriteBleData 发送低功耗蓝牙信息

demo 参考 https://github.com/comsmobiler/SmobilerTutorials/blob/master/Source/Plugins/demoBluetooth.cs

标签:Toast,控件,VB,sender,Smobiler,void,args,蓝牙,private
From: https://www.cnblogs.com/smobiler/p/17005873.html

相关文章

  • SAP UI5 应用里一些容器控件的介绍
    sap.m.Shell控件可用作应用程序的根元素。它可以包含App或SplitApp控件。Shell为整个应用程序提供了一些总体功能,并负责在桌面浏览器平台上进行视觉适配,例如应用程......
  • SAP UI5 应用里 FlexBox 控件的设计原理
    sap.m.FlexBox控件为flexibleboxlayout构建容器。VBox控件为垂直的框布局(verticalflexibleboxlayout)构建容器。VBox是一种使用的控件,因为它只是一个定制化的......
  • SAP UI5 应用 FlexBox 控件 growFactor 的使用方法
    使用FlexBoxLayout布局方式,开发人员可以让浏览器处理元素的分布。这确保应用的元素始终填充沿主轴的可用空间。为了达到这个目的,需要为FlexItem设置一个弹性系数(......
  • MAUI新生5.3-Layout布局类控件难点
    一、布局控件目录 Grid,网格布局。子元素按行列布局,类似于在Word里画表格FlexLayout,弹性布局。和前端的Flex弹性布局基本一样StackLayout,堆叠布局。子元素按指定方向逐......
  • Chart控件-常用设置
    visualstudio中原生控件chart控件使用时的一些常用设置    鼠标缩放功能  缩放后恢复曲线 ......
  • QTQuick控件基础(1)
    一、ItemQtQuick所有的可视项目都继承自Item,它定义了可视化项目所有通用特性(x\y\width\height\anchors等)具体包括1、作为容器2、不透明性没有设置opacity属性设置......
  • ocx控件针对网页刷新和关闭分别进行区分处理
    当ocx加载在网页上时,如果对网页执行F5刷新事件,ocx控件会销毁ocx的窗口类,但是ocx的APP类是不会销毁的。只有当网页被关闭时,才销毁app类。 ----------------------------......
  • 用pageOffice控件实现 office word文档 编辑Word加水印的功能
    OA办公中,业务需要多人编辑word文档,需要加文字水印的功能。怎么实现word文档的编辑加文字水印呢?2实现方法通过pageOffice实现简单的在线打开编辑word时,通过设置doc.get......
  • WPF中DataGrid控件绑定数据源
     <DataGridIsEnabled="False" ItemsSource="{BindingOpInqueryLine}"x:Name="OperatorWork"CanUserAddRows="False"HorizontalAlignment="Left"Height="312"Marg......
  • B/S端界面控件DevExtreme中文使用指南——如何自定义图标
    DevExtreme拥有高性能的HTML5/JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NETCore,jQuery,Knockout等)构建交互式的Web应用程序,该套件附带功能......