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

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

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

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

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

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

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 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
  • FastWeb帮助主页
  • 学习手册

    • 基本入门

    • 功能介绍

    • 控件说明

      • 属性与事件
      • 桌面控件

      • 移动控件

        • 标准控件
        • 附加控件
        • 数据控制控件
        • 图表控件
        • 制图控件
        • 仪表控件
        • 数据库控件
        • 通讯控件
          • 1. TUgNetHttpClient
            • 1.1. 属性
            • 1.1.1. Accept
            • 1.1.2. AcceptCharSet
            • 1.1.3. AcceptEncoding
            • 1.1.4. AcceptLanguage
            • 1.1.5. AllowCookies
            • 1.1.6. Asynchronous
            • 1.1.7. ConnectionTimeOut
            • 1.1.8. ContentType
            • 1.1.9. HandleRedirects
            • 1.1.10. MaxRedirects
            • 1.1.11. RedirectsWithGET
            • 1.1.12. ResponseTimeOut
            • 1.1.13. SecureProtocols
            • 1.1.14. UserAgent
            • 1.2. 事件
          • 2. TUgNetHttpRequest
            • 2.1. 属性
            • 2.1.1. Accept
            • 2.1.2. AcceptCharSet
            • 2.1.3. AcceptEncoding
            • 2.1.4. AcceptLanguage
            • 2.1.5. Asynchronous
            • 2.1.6. Client
            • 2.1.7. ConnectionTimeOut
            • 2.1.8. MethodString
            • 2.1.9. ResponseTimeOut
            • 2.1.10. URL
            • 2.2. 事件
          • 3. TUgIdHttp
            • 3.1. 方法
            • 3.1.1. Get
            • 3.1.2. Post
            • 3.1.3. Post1
            • 3.1.4. Post2
            • 3.1.5. Post3
            • 3.1.6. Post4
            • 3.1.7. Post5
            • 3.1.8. Post6
            • 3.1.9. Post7
            • 3.1.10. Post8
          • 4. TUgRestApi
            • 4.1. 属性
            • 4.1.1. Body
            • 4.1.2. ContentType
            • 4.1.3. GUID
            • 4.1.4. Headers
            • 4.1.5. Method
            • 4.1.6. Params
            • 4.1.7. Script
            • 4.1.8. Server
            • 4.1.9. Url
            • 4.2. 事件
            • 4.2.1. ResultData
            • 4.3. 方法
            • 4.3.1. Send
            • 4.3.2. Init
          • 5. TUgModbusTCPClient
            • 5.1. 属性
            • 5.1.1. Host
            • 5.1.2. Port
            • 5.2. 方法
            • 5.2.1. Connect
            • 5.2.2. ReadCoil
            • 5.2.3. ReadCoils
            • 5.2.4. ReadHoldingRegister
            • 5.2.5. ReadHoldingRegisters
            • 5.2.6. ReadInputRegister
            • 5.2.7. ReadInputRegisters
            • 5.2.8. WriteCoil
            • 5.2.9. WriteCoils
            • 5.2.10. WriteRegister
            • 5.2.11. WriteRegisters
          • 6. TUgMQTTClient
            • 6.1. 属性
            • 6.1.1. BrokerHostName
            • 6.1.2. BrokerPort
            • 6.1.3. ClientID
            • 6.2. 事件
            • 6.2.1. OnPublishReceivedA事件
            • 6.3. 方法
            • 6.3.1. Connect
            • 6.3.2. Disconnect
            • 6.3.3. Subscribe
            • 6.3.4. UnSubscribe
            • 6.3.5. Publish
          • 7. TUgAppMQTTws
            • 7.1. 属性
            • 7.2. 事件
            • 7.2.1. OnConnect
            • 7.2.2. OnMessage
            • 7.2.3. OnConnectionLost
            • 7.3. 方法
            • 7.3.1. SubScribe
            • 7.3.2. UnSubScribe
            • 7.3.3. Publish
        • 服务器控件
        • 多媒体控件
        • 3D-AI控件
        • 附控控件
    • 系统工具

    • 系统管理

    • 云服务工具

    • 数据库工具

    • 专用模板

    • 外部功能

    • 开发流程

    • 函数程序

  • 开发手册

目录

通讯控件

# FastWeb通讯控件

  • 适用平台: APP(移动端)

  该组中的控件为通过工业通讯协定的设定,连接物联网设备采集资料的程序,进行数据的连接采集功能。

# 1. TUgNetHttpClient

  此组件为Http服务请求使用的客户端组件。是作为TUgRestApi的基础组件存在,如需要使用完整的RestAPI请求功能请查阅 TUgRestApi,以下属性仅作简单说明。

# 1.1. 属性

# 1.1.1. Accept

property Accept: string;
1

  用于设置客户端允许接收的内容类型,用于与服务端进行通信连接。

# 1.1.2. AcceptCharSet

property AcceptCharSet: string;
1

  用于设置客户端允许接收的字符集类型。

# 1.1.3. AcceptEncoding

property AcceptEncoding: string;
1

  用于设置客户端允许接收的内容编码压缩类型。

# 1.1.4. AcceptLanguage

property AcceptLanguage: string;
1

  设置客户端优先响应的语言类型。

# 1.1.5. AllowCookies

property AllowCookies: Boolean;
1

  设置客户端是否接受来自服务端的cookie信息。

# 1.1.6. Asynchronous

property Asynchronous: Boolean;
1

  设置请求的方式是异步(True)还是同步(False)。

# 1.1.7. ConnectionTimeOut

property ConnectionTimeout: Integer;
1

  建立 HTTP 客户端连接之前的超时数值,单位为ms(毫秒)。

# 1.1.8. ContentType

property ContentType: string;
1

  设置请求的实体主体的媒体类型。

# 1.1.9. HandleRedirects

property HandleRedirects: Boolean;
1

  如果此项设置为 True,则客户端组件会自动处理重定向。否则不处理重定向信息。

# 1.1.10. MaxRedirects

property MaxRedirects: Integer;
1

  设置客户端允许的最大重定向的次数。

# 1.1.11. RedirectsWithGET

property RedirectsWithGET: THTTPRedirectsWithGET;
1

  设置允许的重定向类型。

# 1.1.12. ResponseTimeOut

property ResponseTimeout: Integer;
1

  表示给定 HTTP 客户端请求中部分 HTTP 响应之间的最大超时,单位为毫秒。

# 1.1.13. SecureProtocols

property SecureProtocols: THTTPSecureProtocols;
1

  设置客户端的连接安全协议类型。

# 1.1.14. UserAgent

property UserAgent: string;
1

  设置用户代理标识,用于标识客户端的类型。

# 1.2. 事件

名称 触发条件
OnAuthEvent 当需要向代理验证用户名时触发事件
OnNeedClientCertificate 需要客户端证书时触发事件
OnReceiveData 在您的 HTTP 客户端接收请求的响应数据时会触发一次或者多次,它可以用于响应下载的进度
OnRequestCompleted 在请求完成时触发事件
OnRequestError 在请求发生错误时触发事件
OnValidateServerCertificate 在检查服务器证书的有效性时触发事件

# 2. TUgNetHttpRequest

  此组件为Http服务请求的模板组件。是作为TUgRestApi的基础组件存在,如需要使用完整的RestAPI请求功能请查阅 TUgRestApi,以下属性仅作简单说明。

# 2.1. 属性

# 2.1.1. Accept

property Accept: string;
1

  用于设置客户端允许接收的内容类型,用于与服务端进行通信连接。

# 2.1.2. AcceptCharSet

property AcceptCharSet: string;
1

  用于设置客户端允许接收的字符集类型。

# 2.1.3. AcceptEncoding

property AcceptEncoding: string;
1

  用于设置客户端允许接收的内容编码压缩类型。

# 2.1.4. AcceptLanguage

property AcceptLanguage: string;
1

  设置客户端优先响应的语言类型。

# 2.1.5. Asynchronous

property Asynchronous: Boolean;
1

  设置请求的方式是异步(True)还是同步(False)。

# 2.1.6. Client

property Client: TUgNetHTTPClient
1

  指定请求绑定的HTTP客户端组件。

# 2.1.7. ConnectionTimeOut

property ConnectionTimeout: Integer;
1

  建立 HTTP 客户端连接之前的超时数值,单位为ms(毫秒)。

# 2.1.8. MethodString

property MethodString: string;
1

  设置从请求中访问方法字符串的属性。

# 2.1.9. ResponseTimeOut

property ResponseTimeout: Integer;
1

  表示给定 HTTP 客户端请求中部分 HTTP 响应之间的最大超时,单位为毫秒。

# 2.1.10. URL

property URL: string;
1

  设置允许的URL链接。

# 2.2. 事件

名称 触发条件
OnNeedClientCertificate 需要客户端证书时触发事件
OnReceiveData 在您的 HTTP 客户端接收请求的响应数据时会触发一次或者多次,它可以用于响应下载的进度
OnRequestCompleted 在请求完成时触发事件
OnRequestError 在请求发生错误时触发事件
OnValidateServerCertificate 在检查服务器证书的有效性时触发事件

# 3. TUgIdHttp

  该组件为Http服务的提供组件,用于设置并接收http请求,可作为HTTP请求的客户端使用。

# 3.1. 方法

# 3.1.1. Get

function Get(AURL: string): string;
1

  设置GET的请求。返回响应的内容。

# 3.1.2. Post

function Post(AURL: string; ASource: TStringList): string;
1

  通过Post方式发送请求。

# 3.1.3. Post1

function Post1(AURL: string; const ASourceFile: String): string;
1

  通过Post方式,将来自文件的数据作为请求体发送到指定的URL。

    //JScript
    var Response;
    try{
        // 发送POST请求,并将来自文件的数据发送到指定的URL
        Response = UgIdHTTP01.Post1("http://example.com/api", "path_to_folder\\path_to_file");
        // 处理响应数据
    }
    except{
        // 处理异常
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //PasScript
    var
      Response: string;
    begin
      try
        // 发送POST请求,并将来自文件的数据发送到指定的URL
        Response := UgIdHTTP01.Post1('http://example.com/api', 'path_to_folder\path_to_file');
        // 处理响应数据
      except
        on E: Exception do
        begin
          // 处理异常
        end;
      end;
    end;
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    // Make sure to add code blocks to your code group

    # 3.1.4. Post2

    function Post2(AURL: string; ASource: TStrings): string;
    
    1

      通过Post方式,将TStrings对象中的数据作为表单数据发送到指定的URL。当使用这种方式发送POST请求时,数据会以application/x-www-form-urlencoded格式发送到服务器,这是HTTP POST请求的一种常见方式。

      //JScript
      var Params,Response;
      
      Params = new TStringList();
      
      try{
          // 添加表单参数到TStrings对象中
          Params.Add("param1=value1");
          Params.Add("param2=value2");
          // 发送POST请求,并将来自文件的数据发送到指定的URL
          Response = UgIdHTTP01.Post2("http://example.com/api", Params);
          // 处理服务器响应
          // ...
      }
      finally{
          Params.Free;
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      //PasScript
      var
        Params: TStringList;
        Response: string;
      begin
        Params := TStringList.Create;
        try
          // 添加表单参数到TStrings对象中
          Params.Add('param1=value1');
          Params.Add('param2=value2');
          
          // 发送POST请求,并将TStrings对象中的数据作为表单数据发送到指定的URL
          Response := UgIdHTTP01.Post2('http://example.com/api', Params);
          
          // 处理服务器响应
          // ...
        finally
          Params.Free;
        end;
      end;
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      // Make sure to add code blocks to your code group

      # 3.1.5. Post3

      function Post3(AURL: string; ASource: TStream): string;
      
      1

        通过Post方式,将TStream中的数据作为请求体发送到指定的URL。这种方法通常用于向服务器上传文件或其他二进制数据。

        //JScript
        var FileStream,Response;
        // 创建要发送的数据流,只读模式
        FileStream = new TFileStream("path_to_folder\\path_to_file", 0);
        
        try{
            // 发送POST请求,并将数据流中的内容作为请求体发送到指定的URL
            Response = UgIdHTTP01.Post("http://example.com/api", FileStream);
            // 处理服务器响应
            // ...
        }
        finally{
            FileStream.Free;
        }
        
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        //PasScript
        var
          FileStream: TFileStream;
          Response: string;
        begin
          // 创建要发送的数据流,只读模式
          FileStream := TFileStream.Create('path_to_folder\path_to_file', 0);
          try
            // 发送POST请求,并将数据流中的内容作为请求体发送到指定的URL
            Response := UgIdHTTP01.Post('http://example.com/api', FileStream);
            // 处理服务器响应
            // ...
          finally
            FileStream.Free;
          end;
        end;
        
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        // Make sure to add code blocks to your code group

        # 3.1.6. Post4

        function Post4(AURL: string; ASource: TIdMultiPartFormDataStream): string;
        
        1

          通过Post方式,将TIdMultiPartFormDataStream对象中的数据作为多部分表单数据发送到指定的URL。这在需要上传文件或发送包含文件和其他表单字段的表单时非常有用。

          //JScript
          var FormData,Response;
          // 创建TIdMultiPartFormDataStream对象
          FormData = new TIdMultiPartFormDataStream();
          
          try{
              // 添加要发送的表单字段
              FormData.AddFormField("param1", "value1","","","");
              FormData.AddFormField("param2", "value2","","","");
              
              // 添加要上传的文件
              FormData.AddFile("file1", "path_to_folder\\path_to_file1","application/octet-stream");
              FormData.AddFile("file2", "path_to_folder\\path_to_file2","application/octet-stream");
              
              // 发送POST请求,并将TIdMultiPartFormDataStream对象中的数据作为多部分表单数据发送到指定的URL
              Response = UgIdHTTP01.Post4("http://example.com/api", FormData);
              
              // 处理服务器响应
              // ...
          }
          finally{
              FormData.Free;
          }
          
          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11
          12
          13
          14
          15
          16
          17
          18
          19
          20
          21
          22
          23
          //PasScript
          var
            FormData: TIdMultiPartFormDataStream;
            Response: string;
          begin
            // 创建TIdMultiPartFormDataStream对象
            FormData := TIdMultiPartFormDataStream.Create;
            try
              // 添加要发送的表单字段
              FormData.AddFormField('param1', 'value1','','','');
              FormData.AddFormField('param2', 'value2','','','');
              
              // 添加要上传的文件
              FormData.AddFile('file1', 'path_to_folder\path_to_file1','application/octet-stream');
              FormData.AddFile('file2', 'path_to_folder\path_to_file2','application/octet-stream');
              
              // 发送POST请求,并将TIdMultiPartFormDataStream对象中的数据作为多部分表单数据发送到指定的URL
              Response := UgIdHTTP01.Post4('http://example.com/api', FormData);
              
              // 处理服务器响应
              // ...
            finally
              FormData.Free;
            end;
          end;
          
          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11
          12
          13
          14
          15
          16
          17
          18
          19
          20
          21
          22
          23
          24
          25
          // Make sure to add code blocks to your code group

          # 3.1.7. Post5

          procedure Post5(AURL: string; const ASourceFile: String; AResponseContent: TStream);
          
          1

            通过Post方式,将来自文件的数据作为请求体发送到指定的URL。这个方法还允许你将服务器的响应内容写入到指定的TStream中。这种方法适用于需要发送文件数据并且需要获取服务器响应内容的情况。

            //JScript
            var ResponseStream;
            ResponseStream = new TMemoryStream();
            
            try{
                // 发送POST请求,并将来自文件的数据发送到指定的URL,同时将服务器的响应内容写入到ResponseStream中
                UgIdHTTP01.Post5("http://example.com/api", "path_to_folder\\path_to_file", ResponseStream);
                // 处理服务器响应内容,可以从ResponseStream中读取
                // ...
            }
            finally{
                ResponseStream.Free;
            }
            
            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            //PasScript
            var
              ResponseStream: TMemoryStream;
            begin
              ResponseStream := TMemoryStream.Create;
              try
                // 发送POST请求,并将来自文件的数据发送到指定的URL,同时将服务器的响应内容写入到ResponseStream中
                UgIdHTTP01.Post5('http://example.com/api', 'path_to_file', ResponseStream);
                // 处理服务器响应内容,可以从ResponseStream中读取
                // ...
              finally
                ResponseStream.Free;
              end;
            end;
            
            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            // Make sure to add code blocks to your code group

            # 3.1.8. Post6

            procedure Post6(AURL: string; ASource: TStrings; AResponseContent: TStream);
            
            1

              通过Post方式,将TStrings对象中的数据作为表单数据发送到指定的URL。这个方法还允许你将服务器的响应内容写入到指定的TStream中。

              //JScript
              var Params,ResponseStream;
              Params = new TStringList();
              ResponseStream = new TMemoryStream();
              
              try{
                  // 添加表单参数到TStrings对象中
                  Params.Add("param1=value1");
                  Params.Add("param2=value2");
                  // 发送POST请求,并将TStrings对象中的数据作为表单数据发送到指定的URL,同时将服务器的响应内容写入到ResponseStream中
                  UgIdHTTP01.Post6("http://example.com/api", Params, ResponseStream);
                  // 处理服务器响应内容,可以从ResponseStream中读取
                  // ...
              }
              finally{
                  Params.Free;
                  ResponseStream.Free;
              }
              
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              17
              18
              //PasScript
              var
                Params: TStringList;
                ResponseStream: TMemoryStream;
              begin
                Params := TStringList.Create;
                ResponseStream := TMemoryStream.Create;
                try
                  // 添加表单参数到TStrings对象中
                  Params.Add('param1=value1');
                  Params.Add('param2=value2');
                  
                  // 发送POST请求,并将TStrings对象中的数据作为表单数据发送到指定的URL,同时将服务器的响应内容写入到ResponseStream中
                  IdHTTP1.Post('http://example.com/api', Params, ResponseStream);
                  
                  // 处理服务器响应内容,可以从ResponseStream中读取
                  // ...
                finally
                  Params.Free;
                  ResponseStream.Free;
                end;
              end;
              
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              17
              18
              19
              20
              21
              22
              // Make sure to add code blocks to your code group

              # 3.1.9. Post7

              procedure Post7(AURL: string; ASource, AResponseContent: TStream);
              
              1

                通过Post方式,将TStream中的数据作为请求体发送到指定的URL。这个方法还允许你将服务器的响应内容写入到另一个TStream中。

                //JScript
                var FileStream, ResponseStream;
                // 创建要发送的数据流,只读模式
                FileStream = new TFileStream("path_to_folder\\path_to_file", 0);
                ResponseStream = new TMemoryStream();
                
                try{
                    
                    // 发送POST请求,并将RequestStream中的数据作为请求体发送到指定的URL,同时将服务器的响应内容写入到ResponseStream中
                    UgIdHTTP01.Post7("http://example.com/api", FileStream, ResponseStream);
                    
                    // 处理服务器响应内容,可以从ResponseStream中读取
                    // ...
                }
                finally{
                    FileStream.Free;
                    ResponseStream.Free;
                }
                
                1
                2
                3
                4
                5
                6
                7
                8
                9
                10
                11
                12
                13
                14
                15
                16
                17
                18
                //PasScript
                var
                  FileStream: TFileStream
                  ResponseStream: TMemoryStream;
                begin
                  // 创建要发送的数据流,只读模式
                  FileStream := TFileStream.Create('path_to_folder\path_to_file', 0);
                  ResponseStream := TMemoryStream.Create;
                  try
                    
                    // 发送POST请求,并将FileStream中的数据作为请求体发送到指定的URL,同时将服务器的响应内容写入到ResponseStream中
                    UgIdHTTP01.Post7('http://example.com/api', FileStream, ResponseStream);
                    
                    // 处理服务器响应内容,可以从ResponseStream中读取
                    // ...
                  finally
                    FileStream.Free;
                    ResponseStream.Free;
                  end;
                end;
                
                1
                2
                3
                4
                5
                6
                7
                8
                9
                10
                11
                12
                13
                14
                15
                16
                17
                18
                19
                20
                // Make sure to add code blocks to your code group

                # 3.1.10. Post8

                procedure Post8(AURL: string; ASource: TIdMultiPartFormDataStream; AResponseContent: TStream);
                
                1

                  通过Post方式,将TIdMultiPartFormDataStream对象中的数据作为多部分表单数据发送到指定的URL。这个方法还允许你将服务器的响应内容写入到另一个TStream中。这种方法适用于需要发送包含文件和其他表单字段的表单,并且需要获取服务器响应内容的情况。

                  //JScript
                  var FormData,ResponseStream;
                  // 创建TIdMultiPartFormDataStream对象
                  FormData = new TIdMultiPartFormDataStream();
                  ResponseStream = new TMemoryStream();
                  
                  try{
                      // 添加要发送的表单字段
                      FormData.AddFormField("param1", "value1","","","");
                      FormData.AddFormField("param2", "value2","","","");
                      
                      // 添加要上传的文件
                      FormData.AddFile("file1", "path_to_folder\\path_to_file1","application/octet-stream");
                      FormData.AddFile("file2", "path_to_folder\\path_to_file2","application/octet-stream");
                      
                      // 发送POST请求,并将TIdMultiPartFormDataStream对象中的数据作为多部分表单数据发送到指定的URL,同时将服务器的响应内容写入到ResponseStream中
                      UgIdHTTP01.Post8("http://example.com/api", FormData,ResponseStream);
                      
                      // 处理服务器响应
                      // ...
                  }
                  finally{
                      FormData.Free;
                      ResponseStream.Free;
                  }
                  
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12
                  13
                  14
                  15
                  16
                  17
                  18
                  19
                  20
                  21
                  22
                  23
                  24
                  25
                  //PasScript
                  var
                    FormData: TIdMultiPartFormDataStream;
                    ResponseStream: TMemoryStream;
                  begin
                    // 创建TIdMultiPartFormDataStream对象
                    FormData := TIdMultiPartFormDataStream.Create;
                    ResponseStream := TMemoryStream.Create;
                    try
                      // 添加要发送的表单字段
                      FormData.AddFormField('param1', 'value1','','','');
                      FormData.AddFormField('param2', 'value2','','','');
                      
                      // 添加要上传的文件
                      FormData.AddFile('file1', 'path_to_folder\path_to_file1','application/octet-stream');
                      FormData.AddFile('file2', 'path_to_folder\path_to_file2','application/octet-stream');
                      
                      // 发送POST请求,并将TIdMultiPartFormDataStream对象中的数据作为多部分表单数据发送到指定的URL,同时将服务器的响应内容写入到ResponseStream中
                      UgIdHTTP01.Post8('http://example.com/api', FormData,ResponseStream);
                      
                      // 处理服务器响应
                      // ...
                    finally
                      FormData.Free;
                      ResponseStream.Free;
                    end;
                  end;
                  
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12
                  13
                  14
                  15
                  16
                  17
                  18
                  19
                  20
                  21
                  22
                  23
                  24
                  25
                  26
                  27
                  // Make sure to add code blocks to your code group

                  # 4. TUgRestApi

                    该组件为客户端向服务端发送请求使用的组件,可通过其接收到的信息进行解析操作。在界面中双击控件,可打开RestApi管理器界面。

                    在上述界面中,点击左侧的API列表,选择要使用的API,有条件的API可在右侧修改相关信息,使用右侧的[Send]按钮测试返回的结果。点击[OK]按钮确认并将参数信息回传至RestAPI控件中。

                  # 4.1. 属性

                  属性 说明
                  Body 请求主体的内容
                  ContentType 请求的内容类型
                  GUID 在RestAPI管理器中记录的选择项的值
                  Headers 请求头的值的类型
                  Method 请求的类型
                  Params 请求的参数内容
                  Script 请求的脚本内容
                  Server 请求的服务器的地址信息
                  Url 请求的除服务器以外的地址的信息

                  # 4.1.1. Body

                  property Body: TStringList;
                  
                  1

                    设置请求体中的内容,点击属性右侧的按钮以打开文本编辑框,向其中输入信息,通常可在其中输入格式化的JSON文本或者key=value类型的文本或者纯文本信息,根据API的需求进行填写。

                    当ContentType设置为application/json时,Body处填写的是格式化的JSON文本;当ContentType设置为application/x-www-form-urlencoded时,Body处填写的是key=value键值对。

                  # 4.1.2. ContentType

                  property ContentType: string;
                  
                  1

                    设置请求内容的类型。通常有以下几种类型:

                  • text/html:带有html标记的文本类型。
                  • application/json:格式化的json文本类型。
                  • application/xml:格式化的xml文本类型。
                  • application/octet-stream:未知类型,默认表示为二进制的数据流类型。
                  • application/x-www-form-urlencoded:key=value类型的文本编码方式。

                  # 4.1.3. GUID

                  property GUID: string;
                  
                  1

                    此处的GUID用来记录在管理器界面选择的RestAPI。

                  # 4.1.4. Headers

                  property Headers: TStringList;
                  
                  1

                    设置发送请求的请求头的信息。

                  # 4.1.5. Method

                  property Method: TRequestMethod;
                  
                  1

                    设置请求的发送方式。

                  • rmGET:以GET的方式发送请求。
                  • rmPOST:以POST的方式发送请求。
                  • rmDELETE:以DELETE的方式发送请求。
                  • rmPUT:以PUT的方式发送请求。

                  # 4.1.6. Params

                  property Params: TStringList;
                  
                  1

                    设置发送的请求中带有的参数信息。以key=value的方式设置,每行设置一个。此部分的参数在发送中会使用URL编码的方式附加在URL后进行发送。

                    比如在Params中设置的参数为:

                  key1=value1
                  key2= value2
                  
                  1
                  2

                    请求的地址为http://192.168.1.1/,则在经过URL编码后请求的地址形式如下:

                  http://192.168.1.1/?key1=value1&key2=value2
                  
                  1

                    在请求的Rest地址与第一个参数中间使用?分隔,其余的参数与参数之间使用&进行分隔。

                  # 4.1.7. Script

                  property Script: TStringList;
                  
                  1

                    用于设置API返回的JSON信息中将会使用的提取特定数值的脚本信息。可使用的有以下几项内容。

                  • GetJSONString:获取JSON中特定值的文本。
                  • GetJSONNumber:获取JSON中特定值的数值。
                  • GETJSONInteger:获取JSON中特定值的整数值信息。
                  • GETJSONObject:获取JSON中特定的对象
                  • GETJSONBool:获取JSON中特定值的布尔值信息。
                  • GETJSONObject:获取JSON中指定名称的对象信息。
                  • GETJSONArray:获取JSON中指定名称的对象数组信息。
                  • GETJSONPair:获取JSON中指定名称的键值对的信息。

                    具体的使用方式如下:

                  {
                      "$user":{
                          "auth_token": "ABDEDEEDEDEED",
                          "number": 1,
                          "float": 3.2,
                          "bool": true
                      },
                      "status":[
                          {"ok": true},
                          {"ok": false}
                      ]
                  }
                  
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12

                    如果我们要从中取出auth_token的值,在脚本信息中可以使用下述方式获取:

                  方式一:写路径获取

                  GETJSONString=$user.auth_token
                  
                  1

                  方式二:分层单步获取

                  GETJSONString=$user
                  GETJSONString=auth_token
                  
                  1
                  2

                    如果是取特定数组中的对象,使用以下方式来获取:

                  数组有名称

                  GETJSONBool=status[0].ok
                  
                  1

                  数组无名称:数组无名称通常使用在起始的位置。表示方式如下:

                  [
                      {"bad": "AA"},
                      {"bad": "BB"}
                  ]
                  
                  1
                  2
                  3
                  4

                    上述写法如下:

                  GETJSONString=[0].bad
                  
                  1

                    如果要取JSON中表示的各种数据类型的数值或者对象,使用下述方式:

                  文本类型

                  GETJSONString=$user.auth_token
                  
                  1

                  数值类型(返回类型为文本)

                  GETJSONNumber=$user.number
                  
                  1

                  整数

                  GETJSONInteger=$user.number
                  
                  1

                  浮点数

                  GETJSONFloat=$user.float
                  
                  1

                  布尔值

                  GETJSONBool=$user.bool
                  
                  1

                  对象

                  GETJSONObject=$user
                  
                  1

                  数组

                  GETJSONArray=status
                  
                  1

                  值对

                  GETJSONPair=$user
                  
                  1

                  # 4.1.8. Server

                  property Server: string;
                  
                  1

                    设定API厂商的服务地址,此服务地址可从API服务管理界面进行设置。

                  # 4.1.9. Url

                  property Url: string;
                  
                  1

                    设定处服务地址外的具体Url路径信息。首位不需要带地址分隔符号。

                  # 4.2. 事件

                  # 4.2.1. ResultData

                  procedure UgRestApiResultData(sender: tobject;aresult: string);
                  
                  1

                    设置当接收到RestAPI返回的消息时触发事件,在aresult中显示返回的文本。

                  示例:假设从返回的结果中获取auth_token,可使用下述的方式来获取。

                    //JScript
                    function UgRestApi01ResultData(sender,aresult)
                    var
                      vJSON: TJSONObject;
                      vValue: TJSONValue;
                    {
                      var vJSON,vValue;
                      UgMemo01.Lines.Add(aresult);
                      vJSON = new TJSONObject();
                      Try{
                        vValue = vJSON.ParseJSONValue(aresult,False,False);
                        vValue = TJSONObject(vValue).GetValue("$user");
                        vToken = TJSONObject(vValue).GetValue("auth_token").Value;
                      }
                      Finally{
                        vJSON.Free;
                      }
                    }
                    
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    17
                    18
                    //PasScript
                    procedure UgRestApi01ResultData(sender: tobject;aresult: string);
                    Var
                      vJSON: TJSONObject;
                      vValue: TJSONValue;
                    begin
                      UgMemo01.Lines.Add(aresult);
                      vJSON := TJSONObject.Create();
                      Try
                        vValue := vJSON.ParseJSONValue(aresult,False,False);
                        vValue := TJSONObject(vValue).GetValue('$user');
                        vToken := TJSONObject(vValue).GetValue('auth_token').Value;
                      Finally
                        vJSON.Free;
                      End;
                    end;
                    
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // Make sure to add code blocks to your code group

                    # 4.3. 方法

                    # 4.3.1. Send

                    procedure Send;
                    
                    1

                      设置发送请求。

                    # 4.3.2. Init

                    procedure Init(AGUID: string);
                    
                    1

                      设置对连接信息初始化操作。AGUID表示为其连接使用的GUID字段的名称。通过引用后可将对应字段的RestApi设置引入到界面中来。

                    # 5. TUgModbusTCPClient

                      该组件为ModbusTCP组件,用于与设备建立ModbusTCP连接。连接的发起是以FastWeb服务端为基准,不是以客户端的方式呈现。

                    # 5.1. 属性

                    属性 功能说明
                    AutoConnect 是否进行自动连接
                    ConnectTimeOut 设置连接超时的时间
                    Host 指定一个Modbus设备的IP地址
                    Port 指定一个Modbus设备的端口号
                    ReadTimeOut 设置读取超时的时间

                    # 5.1.1. Host

                    property Host: string;
                    
                    1

                      Host是指ModbusTCP设备的IP地址。如:192.168.1.100。

                      //JScript
                      UgModbusTCPClient01.Host = "192.168.1.100";
                      
                      1
                      2
                      //PasScript
                      UgModbusTCPClient01.Host := '192.168.1.100';
                      
                      1
                      2
                      // Make sure to add code blocks to your code group

                      # 5.1.2. Port

                      property Port: Word;
                      
                      1

                        Port是指ModbusTCP设备的端口号。默认502。

                        //JScript
                        UgModbusTCPClient01.Port = 502;
                        
                        1
                        2
                        //PasScript
                        UgModbusTCPClient01.Port := 502;
                        
                        1
                        2
                        // Make sure to add code blocks to your code group

                        # 5.2. 方法

                        # 5.2.1. Connect

                        procedure Connect;
                        
                        1

                          连接设备。

                          //JScript
                          UgModbusTCPClient01.Connect;
                          
                          1
                          2
                          //PasScript
                          UgModbusTCPClient01.Connect;
                          
                          1
                          2
                          // Make sure to add code blocks to your code group

                          # 5.2.2. ReadCoil

                          function ReadCoil(const RegNo: Word; out Value: Boolean): Boolean;
                          
                          1

                            读取单个线圈寄存器的数值。

                            //JScript
                            //读取DO数位信号输出
                            function btnReadCoilOnClick(Sender)
                            {
                              var v;
                              if (UgModbusTCPClient01.ReadCoil(1,v))
                              {
                                if (v){
                                   UgMemo01.Lines.Add("ReadCoil Value->>> 1");
                                }
                                else{
                                   UgMemo01.Lines.Add("ReadCoil Value->>> 0");
                                }
                              }
                              else{
                                UgMemo01.Lines.Add("ReadCoil->>> error!");
                              }
                            }
                            
                            1
                            2
                            3
                            4
                            5
                            6
                            7
                            8
                            9
                            10
                            11
                            12
                            13
                            14
                            15
                            16
                            17
                            18
                            //PasScript
                            //读取DO数位信号输出
                            Procedure btnReadCoilOnClick(Sender: TObject);
                            var
                             v:boolean;
                            Begin
                              if UgModbusTCPClient01.ReadCoil(1,v) then
                              begin
                                if v Then
                                   UgMemo01.Lines.Add('ReadCoil Value->>> 1')
                                else
                                   UgMemo01.Lines.Add('ReadCoil Value->>> 0');
                              End
                              else
                                UgMemo01.Lines.Add('ReadCoil->>> error!');
                            End;
                            
                            1
                            2
                            3
                            4
                            5
                            6
                            7
                            8
                            9
                            10
                            11
                            12
                            13
                            14
                            15
                            16
                            // Make sure to add code blocks to your code group

                            # 5.2.3. ReadCoils

                            function ReadCoils(const RegNo: Word; const Blocks: Word; out RegisterData: string): Boolean;
                            
                            1

                              读取多个线圈寄存器的数值。

                              //JScript
                                var v;
                                UgModbusTCPClient01.ReadCoils(1,2,v);
                              
                              1
                              2
                              3
                              //PasScript
                              var
                                v:string;
                              begin
                                UgModbusTCPClient01.ReadCoils(1,2,v);
                              end;
                              
                              1
                              2
                              3
                              4
                              5
                              6
                              // Make sure to add code blocks to your code group

                              # 5.2.4. ReadHoldingRegister

                              function ReadHoldingRegister(const RegNo: Word; out Value: Word): Boolean;
                              
                              1

                                读取单个保持寄存器的数值。

                                //JScript
                                //读取AO类比信号输出
                                function btnReadHoldingRegisterOnClick(Sender)
                                {
                                  var v;
                                  if (UgModbusTCPClient01.ReadHoldingRegister(1,v))
                                  {
                                    if (v){
                                       UgMemo01.Lines.Add("ReadHoldingRegister Value->>> "+floattostr(v));
                                    }
                                    else{
                                       UgMemo01.Lines.Add("ReadHoldingRegister Value->>> "+floattostr(v));
                                    }
                                  }
                                  else{
                                    UgMemo01.Lines.Add("ReadHoldingRegister->>> error!");
                                  }
                                }
                                
                                1
                                2
                                3
                                4
                                5
                                6
                                7
                                8
                                9
                                10
                                11
                                12
                                13
                                14
                                15
                                16
                                17
                                18
                                //PasScript
                                //读取AO类比信号输出
                                Procedure btnReadHoldingRegisterOnClick(Sender: TObject);
                                var
                                 v:word;
                                Begin
                                  if UgModbusTCPClient01.ReadHoldingRegister(1,v) then
                                  begin
                                    if v Then
                                       UgMemo01.Lines.Add('ReadHoldingRegister Value->>> '+floattostr(v))
                                    else
                                       UgMemo01.Lines.Add('ReadHoldingRegister Value->>> '+floattostr(v));
                                  End
                                  else
                                    UgMemo01.Lines.Add('ReadHoldingRegister->>> error!');
                                End;
                                
                                1
                                2
                                3
                                4
                                5
                                6
                                7
                                8
                                9
                                10
                                11
                                12
                                13
                                14
                                15
                                16
                                // Make sure to add code blocks to your code group

                                # 5.2.5. ReadHoldingRegisters

                                function ReadHoldingRegisters(const RegNo: Word; const Blocks: Word; out RegisterData: string): Boolean;
                                
                                1

                                  读取多个保持寄存器的数值。

                                说明: 读取多个AO数位讯号输出。

                                **返回值:**Boolean字符型。

                                • ReadHoldingRegisters函数语法中各部分说明
                                部分 说明
                                RegNo 开始位址
                                Blocks 资料长度
                                • 示例
                                  //JScript
                                    var v;
                                    UgModbusTCPClient01.ReadHoldingRegisters(1,4,v);
                                  
                                  1
                                  2
                                  3
                                  //PasScript
                                  var
                                    v:String;
                                  Begin
                                    UgModbusTCPClient01.ReadHoldingRegisters(1,4,v);
                                  End;
                                  
                                  1
                                  2
                                  3
                                  4
                                  5
                                  6
                                  // Make sure to add code blocks to your code group

                                  # 5.2.6. ReadInputRegister

                                  function ReadInputRegister(const RegNo: Word; out Value: Word): Boolean;
                                  
                                  1

                                    读取单个输入寄存器的数值。

                                    //JScript
                                    //读取AI数位信号输入
                                    function btnReadInputRegisterOnClick(Sender)
                                    {
                                      var v;
                                      if (UgModbusTCPClient01.ReadInputRegister(1,v))
                                      {
                                        if (v){
                                          UgMemo01.Lines.Add("ReadInputRegister Value->>> "+floattostr(v));
                                        }
                                        else{
                                           UgMemo01.Lines.Add("ReadInputRegister Value->>> "+floattostr(v));
                                        }
                                      }
                                      else{
                                        UgMemo01.Lines.Add("ReadInputRegister->>> error!");
                                      }
                                    }
                                    
                                    1
                                    2
                                    3
                                    4
                                    5
                                    6
                                    7
                                    8
                                    9
                                    10
                                    11
                                    12
                                    13
                                    14
                                    15
                                    16
                                    17
                                    18
                                    //PasScript
                                    //读取AI数位信号输入
                                    Procedure btnReadInputRegisterOnClick(Sender: TObject);
                                    var
                                     v:word;
                                    Begin
                                      if UgModbusTCPClient01.ReadInputRegister(1,v) then
                                      begin
                                        if v Then
                                           UgMemo01.Lines.Add('ReadInputRegister Value->>> '+floattostr(v))
                                        else
                                           UgMemo01.Lines.Add('ReadInputRegister Value->>> '+floattostr(v));
                                      End
                                      else
                                        UgMemo01.Lines.Add('ReadInputRegister->>> error!');
                                    End;
                                    
                                    1
                                    2
                                    3
                                    4
                                    5
                                    6
                                    7
                                    8
                                    9
                                    10
                                    11
                                    12
                                    13
                                    14
                                    15
                                    16
                                    // Make sure to add code blocks to your code group

                                    # 5.2.7. ReadInputRegisters

                                    function ReadInputRegisters(const RegNo: Word; const Blocks: Word; var RegisterData: string): Boolean;
                                    
                                    1

                                      读取多个输入寄存器的数值。

                                      //JScript
                                        var v;
                                        UgModbusTCPClient01.ReadInputRegisters(1,2,v);
                                      
                                      1
                                      2
                                      3
                                      //PasScript
                                      var
                                        v:word;
                                      begin
                                        UgModbusTCPClient01.ReadInputRegisters(1,2,v);
                                      end;
                                      
                                      1
                                      2
                                      3
                                      4
                                      5
                                      6
                                      // Make sure to add code blocks to your code group

                                      # 5.2.8. WriteCoil

                                      function WriteCoil(const RegNo: Word; const Value: Boolean): Boolean;
                                      
                                      1

                                        写入单个线圈寄存器的数值。

                                        //JScript
                                        //控制DO数位信号输出
                                        function btnWriteCoilOnClick(Sender)
                                        {
                                          var v;
                                          v = false;
                                          if (UgModbusTCPClient01.WriteCoil(1,v))
                                          {
                                            if (v){
                                              UgMemo01.Lines.Add("WriteCoil Value->>> 1");
                                            }
                                            else{
                                              UgMemo01.Lines.Add("WriteCoil Value->>> 0");
                                            }
                                          }
                                          else{
                                            UgMemo01.Lines.Add("WriteCoil->>> error!");
                                          }
                                        }
                                        
                                        1
                                        2
                                        3
                                        4
                                        5
                                        6
                                        7
                                        8
                                        9
                                        10
                                        11
                                        12
                                        13
                                        14
                                        15
                                        16
                                        17
                                        18
                                        19
                                        //PasScript
                                        //控制DO数位信号输出
                                        Procedure btnWriteCoilOnClick(Sender: TObject);
                                        var
                                         v:boolean;
                                        Begin
                                          v := false;
                                          if UgModbusTCPClient01.WriteCoil(1,v) then
                                          begin
                                            if v Then
                                               UgMemo01.Lines.Add('WriteCoil Value->>> 1')
                                            else
                                               UgMemo01.Lines.Add('WriteCoil Value->>> 0');
                                          End
                                          else
                                            UgMemo01.Lines.Add('WriteCoil->>> error!');
                                        End;
                                        
                                        1
                                        2
                                        3
                                        4
                                        5
                                        6
                                        7
                                        8
                                        9
                                        10
                                        11
                                        12
                                        13
                                        14
                                        15
                                        16
                                        17
                                        // Make sure to add code blocks to your code group

                                        # 5.2.9. WriteCoils

                                        function WriteCoils(const RegNo: Word; const Blocks: Word; const RegisterData: string): Boolean;
                                        
                                        1

                                          写入多个线圈寄存器的数值。

                                          //JScript
                                            var v,RegisterData;
                                            RegisterData := "1,0";//1代表True,0代表False
                                            v = UgModbusTCPClient01.WriteCoils(1,2,"1,0");
                                          
                                          1
                                          2
                                          3
                                          4
                                          //PasScript
                                          var
                                            v:boolean;
                                            RegisterData:string;
                                          begin
                                              RegisterData := '1,0';//1代表True,0代表False
                                              v := UgModbusTCPClient01.WriteCoils(1,2,'1,0');
                                          end;
                                          
                                          1
                                          2
                                          3
                                          4
                                          5
                                          6
                                          7
                                          8
                                          // Make sure to add code blocks to your code group

                                          # 5.2.10. WriteRegister

                                          function WriteRegister(const RegNo: Word; const Value: Word): Boolean;
                                          
                                          1

                                            写入单个保持寄存器的数值。

                                            //JScript
                                              var v;
                                              v = 123;
                                              if (UgModbusTCPClient01.WriteRegister(1,v))
                                              {
                                                if (v){
                                                  UgMemo01.Lines.Add("WriteRegister Value->>> "+floattostr(v));
                                                }
                                                else{
                                                  UgMemo01.Lines.Add("WriteRegister Value->>> "+floattostr(v));
                                                }
                                              }
                                              else{
                                                UgMemo01.Lines.Add("WriteRegister->>> error!");
                                              }
                                            
                                            1
                                            2
                                            3
                                            4
                                            5
                                            6
                                            7
                                            8
                                            9
                                            10
                                            11
                                            12
                                            13
                                            14
                                            15
                                            //PasScript
                                            var
                                             v:word;
                                            Begin
                                              v := 123;
                                              if UgModbusTCPClient01.WriteRegister(1,v) then
                                              begin
                                                if v Then
                                                   UgMemo01.Lines.Add('WriteRegister Value->>> '+floattostr(v))
                                                else
                                                   UgMemo01.Lines.Add('WriteRegister Value->>> '+floattostr(v));
                                              End
                                              else
                                                UgMemo01.Lines.Add('WriteRegister->>> error!');
                                            end;
                                            
                                            1
                                            2
                                            3
                                            4
                                            5
                                            6
                                            7
                                            8
                                            9
                                            10
                                            11
                                            12
                                            13
                                            14
                                            15
                                            // Make sure to add code blocks to your code group

                                            # 5.2.11. WriteRegisters

                                            function WriteRegisters(const RegNo: Word; const RegisterData: string; Modbus: TUgModbusTCPClient): Boolean;
                                            
                                            1

                                              写入多个保持寄存器的数值。

                                              //JScript
                                                var v,RegisterData;
                                                RegisterData := "1,0";//指定1,0
                                                v = UgModbusTCPClient01.WriteRegisters(1,2,"1,0");
                                              
                                              1
                                              2
                                              3
                                              4
                                              //PasScript
                                              var
                                                v:boolean;
                                                RegisterData:string;
                                              begin
                                                  RegisterData := '1,0';//指定1,0
                                                  v := UgModbusTCPClient01.WriteRegisters(1,2,'1,0');
                                              end;
                                              
                                              1
                                              2
                                              3
                                              4
                                              5
                                              6
                                              7
                                              8
                                              // Make sure to add code blocks to your code group

                                              # 6. TUgMQTTClient

                                                MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。

                                              # 6.1. 属性

                                              属性 功能说明
                                              BrokerHostName 是否自动开启订阅
                                              BrokerHostName 指定MQTT代理服务器地址
                                              Port 指定MQTT代理服务器端
                                              ClientID 指定客户端标识
                                              Credentials 指定MQTTBroker的用户登录信息

                                              # 6.1.1. BrokerHostName

                                              property BrokerHostName: string;
                                              
                                              1

                                                 指定MQTT代理服务器地址。

                                              # 6.1.2. BrokerPort

                                              property BrokerPort: Integer;
                                              
                                              1

                                                 指定MQTT代理服务器端。

                                              # 6.1.3. ClientID

                                              property ClientID:string read FClientID write SetClientID;
                                              
                                              1

                                                 指定客户端标识。

                                              # 6.2. 事件

                                              事件 何时触发
                                              OnPublishRecerivedA 当发布消息返回时触发该事件

                                              # 6.2.1. OnPublishReceivedA事件

                                              procedure UgMQTTClient01OnPublishReceivedA(asender: tobject;apacketid: word;atopic: string;apayload: string);
                                              
                                              1

                                              atopic表示为接收到订阅消息的主题名称,apayload表示为接收到订阅消息的主题内容。

                                              # 6.3. 方法

                                              方法 功能说明
                                              Connect 连接MQTTBroker
                                              Disconnect 断开与MQTTBroker的连接
                                              Subscribe 主题订阅
                                              Unsubscribe 取消主题订阅
                                              PublishStr 推送主题消息(字符串)
                                              PublishByte 推送主题消息 (字节)

                                              # 6.3.1. Connect

                                              procedure Connect;
                                              
                                              1

                                                启动与MQTTBroker的连接。

                                              UgMQTTClient01.Connect;
                                              
                                              1

                                              # 6.3.2. Disconnect

                                              procedure Disconnect;
                                              
                                              1

                                                断开与MQTTBroker的连接。

                                              UgMQTTClient01.Disconnect;
                                              
                                              1

                                              # 6.3.3. Subscribe

                                              function Subscribe(ATopic: string): Word;
                                              
                                              1

                                              说明: MQTT 订阅主题 返回值: Word类型

                                              • Subscribe函数语法中各部分说明
                                              部分 说明
                                              ATopic 主题内容
                                              • 示例
                                                //JScript
                                                 //订阅LED主题
                                                 UgMQTTClient01.Subscribe("LED");
                                                
                                                1
                                                2
                                                3
                                                //PasScript
                                                 //订阅LED主题
                                                 UgMQTTClient01.Subscribe('LED');
                                                
                                                1
                                                2
                                                3
                                                // Make sure to add code blocks to your code group

                                                # 6.3.4. UnSubscribe

                                                function Unsubscribe(ATopic: string): Word;
                                                
                                                1

                                                说明: 注销MQTT主题 返回值: Word类型

                                                • MQTTUnSubscribe函数语法中各部分说明
                                                部分 说明
                                                ATopic 主题内容
                                                • 示例
                                                  //JScript
                                                  //注销LED主题
                                                  UgMQTTClient01.UnSubscribe("LED");
                                                  
                                                  1
                                                  2
                                                  3
                                                  //PasScript
                                                  //注销LED主题
                                                  UgMQTTClient01.UnSubscribe('LED');
                                                  
                                                  1
                                                  2
                                                  3
                                                  // Make sure to add code blocks to your code group

                                                  # 6.3.5. Publish

                                                  function Publish(ATopic: string; APayload: string): Word;
                                                  
                                                  1

                                                  说明: MQTT推送消息 返回值: Word类型

                                                  • MQTTPublish函数语法中各部分说明
                                                  部分 说明
                                                  ATopic 主题内容
                                                  APayload 推送的内容
                                                  • 示例
                                                    //JScript
                                                    //熄灭LED
                                                    UgMQTTClient01.Publish("LED","0");
                                                    
                                                    1
                                                    2
                                                    3
                                                    //PasScript
                                                    //熄灭LED
                                                    UgMQTTClient01.Publish('LED','0');
                                                    
                                                    1
                                                    2
                                                    3
                                                    // Make sure to add code blocks to your code group

                                                    # 7. TUgAppMQTTws

                                                      该组件为MQTT客户端的WebSocket实现,与TUgAppMQTTClient实现的功能相同,区别在于TUgAppMQTTws是通过浏览器端直接与MQTT Broker建立连接,无需经过FastWeb服务器中转,可以缩短显示响应的时间。

                                                    # 7.1. 属性

                                                    属性 功能说明
                                                    MQTTOptions 设置MQTT的相关选项
                                                      CleanSession 是否保持干净连接
                                                      ClientID 设置客户端ID,该ID与连接中的客户端ID不能重复
                                                      HostName MQTT Broker的连接地址
                                                      Password 设置连接到MQTT Broker的密码
                                                      Port 设置MQTT Broker WebSocket连接的端口号
                                                      SSL 是否启用SSL加密连接
                                                      Topic 设置默认的订阅主题
                                                      UserName 设置连接MQTT Broker的用户名称

                                                    # 7.2. 事件

                                                    事件 何时触发
                                                    OnConnect 当控件连接到MQTT Broker时触发该事件
                                                    OnMessage 当控件接收到订阅主题的信息时触发该事件
                                                    OnConnectionLost 当控件失去与MQTT Broker的连接时触发该事件

                                                    # 7.2.1. OnConnect

                                                    procedure ugAppMQTTws01OnConnect(const amessage: string);
                                                    
                                                    1

                                                      当控件连接到MQTT Broker时触发该事件,其中的amessage包含连接结果的相关信息。

                                                    # 7.2.2. OnMessage

                                                    procedure ugAppMQTTws01OnMessage(const atopic: string;apayload: string);
                                                    
                                                    1

                                                      当控件接收到指定订阅主题的信息时触发该事件,其中的atopic为订阅的主题名称,只有在客户端订阅了该主题后才能接收到该主题下的订阅信息。apayload为订阅主题的信息内容。

                                                    # 7.2.3. OnConnectionLost

                                                    procedure ugAppMQTTws01OnConnectionLost(const amessage: string);
                                                    
                                                    1

                                                      当控件与MQTT Broker的连接丢失时触发该事件,其中的amessage包含连接丢失的相关信息。

                                                    # 7.3. 方法

                                                    # 7.3.1. SubScribe

                                                    procedure Subscribe(ATopic: string);
                                                    
                                                    1

                                                      调用该方法,使控件订阅主题信息。注意在程序启动时订阅的信息需要在MQTTOptions.Topic属性中定义,在脚本中定义的程序启动时订阅主题的方法是无效的。ATopic为主题名称。

                                                      //JScript
                                                      ugAppMQTTws01.SubScribe("LED");
                                                      
                                                      1
                                                      2
                                                      //PasScript
                                                      ugAppMQTTws01.SubScribe('LED');
                                                      
                                                      1
                                                      2
                                                      // Make sure to add code blocks to your code group

                                                      # 7.3.2. UnSubScribe

                                                      procedure Unsubscribe(ATopic: string);
                                                      
                                                      1

                                                        调用该方法,使控件取消订阅该主题。ATopic为主题名称。

                                                        //JScript
                                                        ugAppMQTTws01.UnSubScribe("LED");
                                                        
                                                        1
                                                        2
                                                        //PasScript
                                                        ugAppMQTTws01.UnSubScribe('LED');
                                                        
                                                        1
                                                        2
                                                        // Make sure to add code blocks to your code group

                                                        # 7.3.3. Publish

                                                        procedure Publish(ATopic: string; APayload: string);
                                                        
                                                        1

                                                          调用该方法,控件向指定主题发布信息。ATopic为主题名称,APayload为主题内容。

                                                          //JScript
                                                          ugAppMQTTws01.Publish("LED","0");
                                                          
                                                          1
                                                          2
                                                          //PasScript
                                                          ugAppMQTTws01.Publish('LED','0');
                                                          
                                                          1
                                                          2
                                                          // Make sure to add code blocks to your code group
                                                          数据库控件
                                                          服务器控件

                                                          ← 数据库控件 服务器控件→

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