爱招飞帮助手册 爱招飞帮助手册
首页
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 系统工具
    • 系统管理
    • 数据库工具
    • 专用模板
    • 外部功能
    • 开发流程
    • 函数代码
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 报表设计
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • RestAPI
    • WebSocket
  • 学习手册

    • 安装配置
    • 快速上手
    • 程序架构
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
    • MQTT说明
    • Python说明
    • 自定程序
    • 运行卫士
    • 自动化作业
    • 函数程序
    • 控件使用
  • 开发手册
  • FastERP
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
    • HiDesk
    • HiNAT
    • FastBPM
    • ReportBuilder
首页
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 系统工具
    • 系统管理
    • 数据库工具
    • 专用模板
    • 外部功能
    • 开发流程
    • 函数代码
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 报表设计
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • RestAPI
    • WebSocket
  • 学习手册

    • 安装配置
    • 快速上手
    • 程序架构
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
    • MQTT说明
    • Python说明
    • 自定程序
    • 运行卫士
    • 自动化作业
    • 函数程序
    • 控件使用
  • 开发手册
  • FastERP
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
    • HiDesk
    • HiNAT
    • FastBPM
    • ReportBuilder
  • PinToo帮助主页
  • 学习手册

  • 开发手册

    • 通讯协议

      • 串口

      • 蓝牙Bluetooth

        • 蓝牙打印机
        • 蓝牙电子秤
          • 1. 说明
          • 2. 设计明细
          • 3. 程序设计
            • 3.1. 程序初始设置
            • 3.2. 事件设置
          • 4. 运行结果
        • 蓝牙控制LED灯
        • 蓝牙读取温湿度
      • 无线网WiFi

      • ModbusRTU

      • ModbusTCP

      • MQTT

      • RestAPI

      • HTTP

    • 交互输出

    • 媒体存取

    • 人工智慧

    • 实例运用

目录

蓝牙电子秤

# PinToo之蓝牙电子秤

# 1. 说明

  范例采用蓝牙通讯协议,读取电子秤并控制电子秤的去皮清零操作。手机端发送读取指令,电子秤返回称重重量的信息;手机端发送去皮与置零的指令,电子秤端执行相应的操作。在使用该功能前需要将设备与电子秤进行蓝牙配对连接。对应的PIN以及蓝牙的MAC地址可以在电子秤的产品说明中查看。

  范例使用到的电子秤为耀华XK3190-A12+E,其秤头的外观如下图所示。该型号的电子秤可提供蓝牙连接的支持。在使用范例前,请先确认是否已与电子秤进行过蓝牙配对,否则会导致范例运行失败。

  通过范例学习,可以掌握fxBlueTooth相关控件的使用,并读取写入蓝牙电子秤的数据。

# 2. 设计明细

  开启PinToo设计器,分别加入下插图之控件。或者点击左上角的[打开模板Lib文件]选择模板文件来打开对应模板。

蓝牙电子秤 UI设计

  ①:TfxImage组件,控件名称为fxImageSearch。

  ②:TfxText组件,控件名称为fxTextPilled。

  ③:TfxText组件,控件名称为fxTextStatus。

  ④:TfxText组件,控件名称为fxTextWeight。

  ⑤:TfxSwitchButton组件,控件名称为fxSwitchButtonWeight。

  ⑥:TfxImage组件,控件名称为fxImageConnect。

  ⑦:TfxBluetooth组件,控件名称为fxBluetooth1。

  ⑧:TfxText组件,控件名称为fxTextZero。

  • fxRunFrame属性设置

    • Height:设置页面高度=800。
    • Width:设置页面宽度=400。
  • fxComboBox属性设置

    • Visible:设置控件是否可见=True。
    • Name:设置控件名称=fxComboBox。
  • fxComboBoxService属性设置

    • Visible:设置控件是否可见=True。
    • Name:设置控件名称=fxComboBoxService。
  • fxTimer属性设置

    • Enabled:是否启用计数功能,此处设置为False。
  • ①fxImageSearch属性设置

    • Height:设置控件高度=40。
    • Width:设置控件宽度=40。
    • Name:设置控件名称=fxImageSearch。
    • WarpMode:设置图像在控件中显示的模式,设置为Fit,即图像适应于控件大小。
    • Bitmap:设置显示的图片,双击该属性或者点击属性右侧的[...]打开图像编辑器。点击[Load...]打开资源管理器,选择所需的图片后点击[打开],选择的图像会显示在预览框中。可在该页面下进行裁切或者缩放像素以使图像与控件的宽度高度相适应,修改完成后点击[OK]按钮完成图像修改。
  • ②fxTextPilled属性设置

    • Text:设置显示文字=去皮。
    • Height:设置控件高度=80。
    • Width:设置控件宽度=80。
    • Name:设置控件名称=fxTextPilled。
    • TextSettings:设置文字字体的相关信息。设置Font.Size=24。FontColor=White。
    • HorzAlign:设置文字在控件中的水平位置=Center。
    • VertAlign:设置文字在控件中的垂直位置=Center。
  • ③fxTextStatus属性设置

    • Text:设置显示文字=等待连接。
    • Height:设置控件高度=40。
    • Width:设置控件宽度=280。
    • Name:设置控件名称=fxTextStatus。
    • TextSettings:设置文字字体的相关信息。设置Font.Size=18。FontColor=White。
    • HorzAlign:设置文字在控件中的水平位置=Center。
    • VertAlign:设置文字在控件中的垂直位置=Center。
  • ④fxTextWeight属性设置

    • Text:设置显示文字=35.200。
    • Height:设置控件高度=70。
    • Width:设置控件宽度=220。
    • Name:设置控件名称=fxTextWeight。
    • TextSettings:设置文字字体的相关信息。设置Font.Size=64。FontColor=White。
    • HorzAlign:设置文字在控件中的水平位置=Center。
    • VertAlign:设置文字在控件中的垂直位置=Center。
  • ⑤fxSwitchButtonWeight属性设置

    • Height:设置控件高度=200。
    • Width:设置控件宽度=200。
    • Name:设置控件名称=fxSwitchButtonWeight。
    • SwitchOffBmp:设置开关状态为关时显示的图像,双击该属性或者点击属性右侧的[...]打开图像编辑器。点击[Load...]打开资源管理器,选择所需的图片后点击[打开],选择的图像会显示在预览框中。可在该页面下进行裁切或者缩放像素以使图像与控件的宽度高度相适应,修改完成后点击[OK]按钮完成图像修改。
    • SwitchOnBmp:设置开关状态为开时显示的图像,双击该属性或者点击属性右侧的[...]打开图像编辑器。点击[Load...]打开资源管理器,选择所需的图片后点击[打开],选择的图像会显示在预览框中。可在该页面下进行裁切或者缩放像素以使图像与控件的宽度高度相适应,修改完成后点击[OK]按钮完成图像修改。
  • ⑥fxImageConnect属性设置

    • Height:设置控件高度=40。
    • Width:设置控件宽度=40。
    • Name:设置控件名称=fxImageConnect。
    • WarpMode:设置图像在控件中显示的模式,设置为Fit,即图像适应于控件大小。
    • Bitmap:设置显示的图片,双击该属性或者点击属性右侧的[...]打开图像编辑器。点击[Load...]打开资源管理器,选择所需的图片后点击[打开],选择的图像会显示在预览框中。可在该页面下进行裁切或者缩放像素以使图像与控件的宽度高度相适应,修改完成后点击[OK]按钮完成图像修改。
  • ⑧fxTextZero属性设置

    • Text:设置显示文字=置零。
    • Height:设置控件高度=80。
    • Width:设置控件宽度=80。
    • Name:设置控件名称=fxTextZero。
    • TextSettings:设置文字字体的相关信息。设置Font.Size=24。FontColor=White。
    • HorzAlign:设置文字在控件中的水平位置=Center。
    • VertAlign:设置文字在控件中的垂直位置=Center。

# 3. 程序设计

  点击程序设计界面右下角的按钮,切换至单元选择界面,勾选需要使用的单元。该程序需要引用 BlueTooth,BlueToothComponents,ufxBlueTooth单元。

# 3.1. 程序初始设置

  窗体关闭前关闭蓝牙连接。

Procedure fxRunFrameBeforeClose(Sender: TObject);
//关闭窗体前关闭蓝牙以及电子秤的连接
Begin
  fxBluetooth.CloseServerSocket;
  fxBluetooth.FreeClientSocket;
End;
1
2
3
4
5
6

# 3.2. 事件设置

  • ①fxImageSearch-OnClick事件

  点击以加载蓝牙设备列表。

Procedure fxImageSearchOnClick(Sender: TObject);
//点击搜索按钮寻找蓝牙设备
Begin
  fxBluetooth.PairedDevices;
  if fxBlueTooth.BTPaireds.Text = '' Then
  begin
      fxTextStatus.Text := '请检查蓝牙是否已配对';
      Exit;
  End;
  fxComboBox.Items := fxBlueTooth.BTPaireds;
  fxComboBox.DropDown;
End;
1
2
3
4
5
6
7
8
9
10
11
12
  • fxComboBox-OnChange事件

  点击切换蓝牙设备。

Procedure fxComboBoxOnChange(Sender: TObject);
Begin
  fxBlueTooth.PairedDevice := fxComboBox.Items[fxComboBox.ItemIndex];
  fxTextStatus.Text := '已选择电子秤 ' + fxComboBox.Items[fxComboBox.ItemIndex];
End;
1
2
3
4
5
  • ⑥fxImageConnect-OnClick事件

  点击打开对应设备的蓝牙服务列表。

Procedure fxImageConnectOnClick(Sender: TObject);
//选择服务连接
Begin
  fxBluetooth.Services;
  fxComboBoxService.Items := fxBluetooth.BTServices;
  fxComboBoxService.DropDown;
End;
1
2
3
4
5
6
7
  • fxComboBoxService-OnChange事件

  点击切换蓝牙设备服务。

Procedure fxComboBoxServiceOnChange(Sender: TObject);
//更改服务
Begin
  fxBluetooth.ServiceUUID := fxComboBoxService.Items[fxComboBoxService.ItemIndex];
  fxBluetooth.CreateServerSocket;
  fxTextStatus.Text := '电子秤连接,已连接蓝牙服务';
End;
1
2
3
4
5
6
7
  • ⑤fxSwitchButtonWeight-OnSwitch事件

  点击切换计时器开关。

Procedure fxSwitchButtonWeightOnSwitch(Sender: TObject);
//切换读取与非读取状态
Begin
  fxTimer1.Enabled := fxSwitchButtonWeight.IsChecked;
End;
1
2
3
4
5
  • fxTimer1-OnTimer事件

  计时器定时发送读取命令并读取。

Procedure fxTimer1OnTimer(Sender: TObject);
//连续读取
Begin
  fxBluetooth.SendData('R');
  fxBluetooth.ReadData;
End;
1
2
3
4
5
6
  • ②fxTextPilled-OnClick事件

  点击发送去皮指令操作。

Procedure fxTextPilledOnClick(Sender: TObject);
//去皮
Begin
  fxBluetooth.SendData('T');
End;
1
2
3
4
5
  • ⑧fxTextZero-OnClick事件

  点击发送置零操作。

Procedure fxTextZeroOnClick(Sender: TObject);
//置零
Begin
  fxBluetooth.SendData('Z');
End;
1
2
3
4
5
  • ⑦fxBluetooth-OnReceiveData

  当蓝牙获取到数据时,解析数据并显示。

Procedure fxBluetoothOnReceiveData(Sender: TObject; ServiceName: string; ServiceUUID: string; ReceiveData: string);
//获取接收信息,并进行处理以显示为正确的结果
var
 ASymbol,AValue,AStr,FData:string;
Begin
  if ReceiveData <> '' Then
  begin
   FData :=Trim(ReceiveData);
   if Copy(FData,1,2) = 'AD' Then
   begin
    ASymbol:=Copy(FData,3,1);
    AStr:=Copy(FData,4,6);
    if ASymbol='+' Then
      AValue:=StrToFloat(AStr)*0.001
    else
      AValue:=StrToFloat(AStr)*0.001*-1;   
      fxTextWeight.Text := FloatToStr(AValue);
    end; 
  end
  else
      fxTextWeight.Text := '000.0';        
End;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 4. 运行结果

  使用鼠标在 PinToo 菜单,点击[保存至数据库]按钮,将其保存至数据库,点击[调试运行]确认能够正常打开。

蓝牙电子秤 运行界面

  通过同步中心,将程序上传至手机PinToo运行;同步时,请确保手机已经运行PinToo,并且已经登陆。

  点击蓝牙设备按钮,在弹出的列表中选择电子秤的蓝牙名称(此处为YaoHuaC66),点击服务按钮,等待一段时间后显示可用的连接服务列表,选择其中一个发起蓝牙连接,待连接建立后点击下方的电子秤图标按钮开启读取。可点击[去皮]、[置零]按钮进行去皮和置零的操作。

蓝牙打印机
蓝牙控制LED灯

← 蓝牙打印机 蓝牙控制LED灯→

Copyright © 2021-2025 爱招飞IsoFace | ALL Rights Reserved
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式