愛招飛幫助手冊 愛招飛幫助手冊
  • FastERP-1
  • Smart
  • PinToo
  • FastWeb
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS
  • MARS
  • TaskRunner
  • Flying
  • FastDesk
  • HiDesk
  • HiNAT
  • FastBPM
  • 設備故障診斷 (opens new window)
  • 設備最佳運轉效益 (opens new window)
  • 企業智能助手SmeGPT (opens new window)
  • 燈號管理 (opens new window)
  • 戰情室 (opens new window)
  • 能源管理 (opens new window)
  • 人車定位 (opens new window)
  • 戰情指揮系統 (opens new window)
  • FastERP-1
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
  • FastERP-1
  • Smart
  • PinToo
  • FastWeb
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS
  • MARS
  • TaskRunner
  • Flying
  • FastDesk
  • HiDesk
  • HiNAT
  • FastBPM
  • 設備故障診斷 (opens new window)
  • 設備最佳運轉效益 (opens new window)
  • 企業智能助手SmeGPT (opens new window)
  • 燈號管理 (opens new window)
  • 戰情室 (opens new window)
  • 能源管理 (opens new window)
  • 人車定位 (opens new window)
  • 戰情指揮系統 (opens new window)
  • FastERP-1
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
  • 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. TUgIdFTP
            • 4.1. 屬性
            • 4.1.1. Account
            • 4.1.2. AUTHCmd
            • 4.1.3. AutoLogin
            • 4.1.4. ClientInfo
            • 4.1.5. DataPort
            • 4.1.6. DataPortMax
            • 4.1.7. DataPortMin
            • 4.1.8. DataPortProtection
            • 4.1.9. ExternalIP
            • 4.1.10. Host
            • 4.1.11. Passive
            • 4.1.12. Password
            • 4.1.13. Port
            • 4.1.14. ProxySettings
            • 4.1.15. ReadTimeout
            • 4.1.16. TransferTimeout
            • 4.1.17. TransferType
            • 4.1.18. TryNATFastTrack
            • 4.1.19. UseCCC
            • 4.1.20. UseExtensionDataPort
            • 4.1.21. UseMLIS
            • 4.1.22. UserName
            • 4.2. 事件
            • 4.3. 方法
            • 4.3.1. Allocate
            • 4.3.2. ChangeDir
            • 4.3.3. ChangeDirUp
            • 4.3.4. Connect
            • 4.3.5. CRC
            • 4.3.6. Delete
            • 4.3.7. FileDate
            • 4.3.8. Get
            • 4.3.9. List
            • 4.3.10. Login
            • 4.3.11. MakeDir
            • 4.3.12. Noop
            • 4.3.13. Put
            • 4.3.14. Quit
            • 4.3.15. RemoveDir
            • 4.3.16. ReName
            • 4.3.17. RetrieveCurrentDir
            • 4.3.18. SetModTime
            • 4.3.19. SetModTimeGMT
            • 4.3.20. Size
          • 5. TUgEmailMsg
            • 5.1. 屬性
            • 5.2. 方法
          • 6. TUgRestApi
            • 6.1. 屬性
            • 6.1.1. Body
            • 6.1.2. ContentType
            • 6.1.3. GUID
            • 6.1.4. Headers
            • 6.1.5. Method
            • 6.1.6. Params
            • 6.1.7. Script
            • 6.1.8. Server
            • 6.1.9. Url
            • 6.2. 事件
            • 6.2.1. ResultData
            • 6.3. 方法
            • 6.3.1. Send
            • 6.3.2. Init
          • 7. TUgModbusTCPClient
            • 7.1. 屬性
            • 7.1.1. Host
            • 7.1.2. Port
            • 7.2. 方法
            • 7.2.1. Connect
            • 7.2.2. ReadCoil
            • 7.2.3. ReadCoils
            • 7.2.4. ReadHoldingRegister
            • 7.2.5. ReadHoldingRegisters
            • 7.2.6. ReadInputBit
            • 7.2.7. ReadInputBits
            • 7.2.8. ReadInputRegister
            • 7.2.9. ReadInputRegisters
            • 7.2.10. WriteCoil
            • 7.2.11. WriteCoils
            • 7.2.12. WriteRegister
            • 7.2.13. WriteRegisters
          • 8. TUgMQTTClient
            • 8.1. 屬性
            • 8.1.1. BrokerHostName
            • 8.1.2. BrokerPort
            • 8.1.3. ClientID
            • 8.2. 事件
            • 8.2.1. OnPublishReceivedA事件
            • 8.3. 方法
            • 8.3.1. Connect
            • 8.3.2. Disconnect
            • 8.3.3. Subscribe
            • 8.3.4. UnSubscribe
            • 8.3.5. Publish
          • 9. TUgMQTTws
            • 9.1. 屬性
            • 9.2. 事件
            • 9.2.1. OnConnect
            • 9.2.2. OnMessage
            • 9.2.3. OnConnectionLost
            • 9.3. 方法
            • 9.3.1. SubScribe
            • 9.3.2. UnSubScribe
            • 9.3.3. Publish
          • 10. TUgWebSerial
            • 10.1. 屬性
            • 10.1.1. SerailOptions
            • 10.1.1.1. BaudRate
            • 10.1.1.2. BufferSize
            • 10.1.1.3. DataBits
            • 10.1.1.4. Filters
            • 10.1.1.5. FlowControl
            • 10.1.1.6. Parity
            • 10.1.1.7. StopBits
            • 10.2. 事件
            • 10.2.1. OnReceived
            • 10.3. 方法
            • 10.3.1. Init
            • 10.3.2. Request
            • 10.3.3. Open
            • 10.3.4. Close
            • 10.3.5. Write
            • 10.3.6. WriteLines
            • 10.3.7. GetPorts
            • 10.3.8. GetPortInfo
        • 伺服器控制元件
        • 多媒體控制元件
        • 3D-AI控制元件
        • IsoBean控制元件
        • 附控控制元件
      • 移動控制元件

    • 系統工具

    • 系統管理

    • 云服務工具

    • 資料庫工具

    • 專用模板

    • 外部功能

    • 開發流程

    • 函式程式

  • 開發手冊

目录

通訊控制元件

# FastWeb通訊控制元件

  • 適用平臺: WEB(桌面)

  該組中的控制元件為通過工業通訊協定的設定,連線物聯網設備採集資料的程式,進行數據的連線採集功能。

# 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. TUgIdFTP

                    此控制元件為FTP發送的基礎控制元件。

                    FTP 是一種促進共享檔案、高效上傳和下載檔案以及隔離遠端主機計算機檔案系統差異的協議。

                    TUgIdFTP 提供了 FTP 協議直譯器的封裝,該直譯器充當 FTP 命令及其特定 FTP 回覆交換的控制通道或通訊路徑。 幾個關鍵屬性和方法用於為 FTP 會話建立控制通道,包括:Host、Port、UserName、Password、ClientInfo、ProxySettings、UseTLS、AutoLogin、Connect、Login、Quit。

                    使用 Connect 或 Login 建立控制通道連線后,可以使用以下屬性檢查 FTP 回覆的內容和在此過程中檢測到的設定:Greeting、LoginMsg、SystemDesc、TZInfo、UsingSFTP、LastCmdResult、LangsSupported。

                  # 4.1. 屬性

                  屬性 說明
                  Account FTP登錄的使用者帳戶資訊
                  AUTHCmd 指示登錄到 FTP 伺服器時執行身份驗證時使用的機制
                  AutoLogin 表示FTP 客戶端在FTP 伺服器連線打開時是否自動登錄
                  ClientInfo 有關 FTP CLNT 命令的 FTP 客戶端軟體、修訂版和平臺的附加資訊
                  DataPort 表示結合用於FTP客戶端會話的數據通道時使用的埠號
                  DataPortMax FTP客戶端繫結活動數據通道時允許的埠號上限
                  DataPortMin FTP客戶端繫結活動數據通道時允許的埠號下限
                  DataPortProtection 指示 FTP 客戶端中數據通道連線所需的安全級別
                  ExternalIP 指定客戶端在基於 NAT 的防火墻後面發送 FTP PORT 或 EPRT 命令時使用的 IP 地址
                  Host 表示遠端 FTP 伺服器的 IP 地址或主機名
                  Passive FTP 數據通道連線方式是否為被動模式
                  Password 登錄 FTP 伺服器時使用的身份驗證憑據
                  Port 控制通道連線到遠端 FTP 伺服器的埠號
                  ProxySettings 指示用於使用 FTP 代理伺服器打開的連線的設定
                  ReadTimeout 等待 FTP 協議響應的毫秒數
                  TransferTimeout FTP 客戶端數據通道上讀取操作的超時值
                  TransferType 檔案傳輸型別
                  TryNATFastTrack 表示使用「快速路徑」連線來穿越防火墻和 NAT
                  UseCCC 指示 FTP 客戶端是否需要使用清除命令通道 (CCC) 命令
                  UseExtensionDataPort 指示是否在 FTP 協議交換中使用埠和被動設定的 IPv6 擴充套件
                  UseMLIS 指示 FTP MLST 和 MLSD 命令是否用於目錄列表
                  UserName 登錄 FTP 伺服器時使用的身份驗證身份

                  # 4.1.1. Account

                  property Account: string;
                  
                  1

                    設定FTP登錄的使用者帳戶資訊。

                  # 4.1.2. AUTHCmd

                  property AUTHCmd: TAuthCmd;
                  
                  1

                    指示登錄到 FTP 伺服器時執行身份驗證時使用的機制。

                  • tAuthSSL:使用SSL認證。
                  • tAuthTLS:使用TLS認證。
                  • tAuthTLSC:使用TLSC認證。
                  • tAuthTLSP:使用TLSP認證。

                  # 4.1.3. AutoLogin

                  property AutoLogin: Boolean;
                  
                  1

                    表示FTP 客戶端在FTP 伺服器連線打開時是否自動登錄。

                  # 4.1.4. ClientInfo

                  property ClientInfo: TIdFTPClientIdentifier;
                  
                  1

                    有關 FTP CLNT 命令的 FTP 客戶端軟體、修訂版和平臺的附加資訊。

                  • ClientName:客戶端的名稱。
                  • ClientVersion:客戶端的版本。
                  • PlatformDescription:平臺的描述資訊。

                  # 4.1.5. DataPort

                  property DataPort: Integer;
                  
                  1

                    表示結合用於FTP客戶端會話的數據通道時使用的埠號。

                  # 4.1.6. DataPortMax

                  property DataPortMax: Integer;
                  
                  1

                    FTP客戶端繫結活動數據通道時允許的埠號上限。

                  # 4.1.7. DataPortMin

                  property DataPortMin: Integer;
                  
                  1

                  # 4.1.8. DataPortProtection

                  property DataPortProtection: TIdFTPDataPortSecurity;
                  
                  1

                    指示 FTP 客戶端中數據通道連線所需的安全級別。

                  • ftpdpsClear:清除個人資訊的安全級別。
                  • ftpdpsPrivate:開啟個人模式的安全級別。

                  # 4.1.9. ExternalIP

                  property ExternalIP: String;
                  
                  1

                    指定客戶端在基於 NAT 的防火墻後面發送 FTP PORT 或 EPRT 命令時使用的 IP 地址。

                  # 4.1.10. Host

                  property Host;
                  
                  1

                    表示遠端 FTP 伺服器的 IP 地址或主機名。

                  # 4.1.11. Passive

                  property Passive: boolean;
                  
                  1

                    FTP 數據通道連線方式是否為被動模式。

                  # 4.1.12. Password

                  property Password;
                  
                  1

                    登錄 FTP 伺服器時使用的身份驗證憑據。

                  # 4.1.13. Port

                  property Port;
                  
                  1

                    控制通道連線到遠端 FTP 伺服器的埠號。

                  # 4.1.14. ProxySettings

                  property ProxySettings: TIdFtpProxySettings;
                  
                  1

                    指示用於使用 FTP 代理伺服器打開的連線的設定。

                  • Host:代理伺服器的地址。
                  • Password:代理伺服器的連線密碼。
                  • Port:代理伺服器的連線埠號。
                  • ProxyType:代理連線的型別。
                  取值 說明
                  fpcmNone 發送在 FTP 客戶端中找到的使用者名稱和可選密碼
                  fpcmUserSite 在 ProxySettings 中發送使用者名稱和可選密碼,緊接著是在 FTP 客戶端中找到的使用者名稱和可選密碼
                  fpcmSite 發送 ProxySettings 中的使用者名稱和可選密碼、SITE 命令和 Host 屬性中的值,以及 FTP 客戶端中的使用者名稱和可選密碼
                  fpcmOpen 發送 ProxySettings 中的使用者名稱和可選密碼,發送帶有 Host 值的 OPEN 命令,以及 FTP 客戶端的使用者名稱和可選密碼
                  fpcmUserPass 使用命令 USER user@proxyuser@host 呼叫 SendCmd,使用命令 PASS pwd@proxypwd 或可選的 PASS pwd 呼叫 SendCmd
                  fpcmTransparent 發送 ProxySettings 使用者名稱和可選密碼,緊接著是 FTP 客戶端使用者名稱和可選密碼
                  fpcmHttpProxyWithFtp 目前未實現
                  fpcmCustomProxy 向 OnCustomFTPProxy 事件處理程式發出訊號以執行 FTP 協議交換
                  • UserName:代理伺服器連線使用的使用者名稱稱。

                  # 4.1.15. ReadTimeout

                  property ReadTimeout: Integer;
                  
                  1

                    等待 FTP 協議響應的毫秒數。

                  # 4.1.16. TransferTimeout

                  property TransferTimeout: Integer;
                  
                  1

                    FTP 客戶端數據通道上讀取操作的超時值。

                  # 4.1.17. TransferType

                  property TransferType: TIdFTPTransferType;
                  
                  1

                     檔案傳輸型別。

                  • ftBinary:二進制傳輸。
                  • ftASCII:ASCII碼傳輸。

                  # 4.1.18. TryNATFastTrack

                  property TryNATFastTrack: Boolean;
                  
                  1

                    表示使用「快速路徑」連線來穿越防火墻和 NAT。

                  # 4.1.19. UseCCC

                  property UseCCC: Boolean;
                  
                  1

                    指示 FTP 客戶端是否需要使用清除命令通道 (CCC) 命令。

                  # 4.1.20. UseExtensionDataPort

                  property UsingExtDataPort: Boolean;
                  
                  1

                    指示是否在 FTP 協議交換中使用埠和被動設定的 IPv6 擴充套件 。

                  # 4.1.21. UseMLIS

                  property UseMLIS: Boolean;
                  
                  1

                    指示 FTP MLST 和 MLSD 命令是否用於目錄列表。

                  # 4.1.22. UserName

                  property Username;
                  
                  1

                    登錄 FTP 伺服器時使用的身份驗證身份。

                  # 4.2. 事件

                  事件名稱 說明
                  OnAfterClientLogin 當客戶端登錄后觸發事件
                  OnAfterGet 當獲取伺服器上的內容后觸發事件
                  OnAfterPut 當向伺服器上傳內容后觸發事件
                  OnBeforeGet 當客戶端獲取內容前觸發事件
                  OnBeforePut 當客戶端上傳內容前觸發事件
                  OnConnected 當客戶端連線后觸發事件
                  OnDisconnected 當客戶端斷開連線時觸發事件
                  OnNeedAccount 當需要帳戶時觸發事件

                  # 4.3. 方法

                  # 4.3.1. Allocate

                  procedure Allocate(AAllocateBytes: Integer);
                  
                  1

                    在上傳檔案之前在 FTP 伺服器上預先分配空間。

                  # 4.3.2. ChangeDir

                  procedure ChangeDir(const ADirName: string);
                  
                  1

                    切換 FTP 伺服器檔案系統上的當前目錄。

                  # 4.3.3. ChangeDirUp

                  procedure ChangeDirUp;
                  
                  1

                    切換為 FTP 伺服器上的父目錄。

                  # 4.3.4. Connect

                  procedure Connect; 
                  
                  1

                    為 FTP 會話打開與伺服器的連線。

                  # 4.3.5. CRC

                  function CRC(const AFIleName: string; const AStartPoint: Int64; const AEndPoint: Int64): Int64
                  
                  1

                    計算 FTP 伺服器上指定檔案的循環冗餘校驗(或 CRC)。

                  # 4.3.6. Delete

                  procedure Delete(const AFilename: string);
                  
                  1

                    刪除 FTP 伺服器檔案系統上的檔案。

                  # 4.3.7. FileDate

                  function FileDate(const AFileName: string; const AsGMT: Boolean): TDateTime
                  
                  1

                    檢索上次在遠端系統上修改檔案的日期和時間。

                  # 4.3.8. Get

                  procedure Get(const ASourceFile: string; ADest: TStream; AResume: Boolean)
                  procedure Get(const ASourceFile: string; const ADestFile: string; const ACanOverwrite: Boolean; AResume: Boolean)
                  
                  1
                  2

                    使用 FTP 協議檢索檔案。

                  # 4.3.9. List

                  procedure List
                  procedure List(const ASpecifier: string; ADetails: Boolean)
                  procedure List(ADest: TStrings; const ASpecifier: string; ADetails: Boolean)
                  
                  1
                  2
                  3

                    獲取列表資訊。

                  # 4.3.10. Login

                  procedure Login;
                  
                  1

                    驗證與 FTP 伺服器的客戶端連線。

                  # 4.3.11. MakeDir

                  procedure MakeDir(const ADirName: string);
                  
                  1

                    在 FTP 伺服器上建立一個目錄。

                  # 4.3.12. Noop

                  procedure Noop;
                  
                  1

                    向 FTP 伺服器發送 Keep-Alive 訊號。

                  # 4.3.13. Put

                  procedure Put(const ASource: TStream; const ADestFile: string; const AAppend: Boolean; const AStartPos: Int64)
                  procedure Put(const ASourceFile: string; const ADestFile: string; const AAppend: Boolean; const AStartPos: Int64)
                  
                  1
                  2

                    將檔案上傳到 FTP 伺服器。

                  # 4.3.14. Quit

                  procedure Quit;
                  
                  1

                    結束連線並退出。

                  # 4.3.15. RemoveDir

                  procedure RemoveDir(const ADirName: string)
                  
                  1

                    刪除 FTP 伺服器上的目錄。

                  # 4.3.16. ReName

                  procedure Rename(const ASourceFile: string; const ADestFile: string);
                  
                  1

                    更改 FTP 伺服器檔案系統上的檔名。

                  # 4.3.17. RetrieveCurrentDir

                  function RetrieveCurrentDir: string;
                  
                  1

                    獲取 FTP 伺服器上的當前目錄名稱。

                  # 4.3.18. SetModTime

                  procedure SetModTime(const AFileName: string; const ALocalTime: TDateTime);
                  
                  1

                    設定指定檔案的最後修改時間。

                  # 4.3.19. SetModTimeGMT

                  procedure SetModTimeGMT(const AFileName: string; const AGMTTime: TDateTime)
                  
                  1

                    設定指定檔案的最後修改時間。

                  # 4.3.20. Size

                  function Size(const AFileName: string): Int64;
                  
                  1

                    從 FTP 伺服器獲取檔案大小資訊。

                  # 5. TUgEmailMsg

                    此控制元件用於設定郵件發送相關的參數,通過控制元件配置的方式可快速完成郵件參數資訊的配置。

                  # 5.1. 屬性

                  屬性 說明
                  Address 郵件發送的目標地址郵箱
                  Attachments 附件的地址列表
                  Body 郵件的正文內容
                  BodyHtml 郵件的正文是否使用HTML格式解析
                  CCAdressList 設定抄送的郵箱的列表
                  Host 郵件伺服器的地址
                  Password 郵件發件郵箱的密碼
                  Port 郵件伺服器的通訊埠號
                  Receipt 設定是否發送郵件的已讀回執
                  ReceiptAddress 設定已讀回執的傳輸地址
                  Subject 設定郵箱的標題
                  Username 設定使用者名稱

                  # 5.2. 方法

                  function SendEmail: Boolean;
                  
                  1

                    設定發送郵件,並反饋發送是否成功的資訊。

                  # 6. TUgRestApi

                    該元件為客戶端向服務端發送請求使用的元件,可通過其接收到的資訊進行解析操作。在界面中雙擊控制元件,可打開RestApi管理器界面。

                    在上述界面中,點選左側的API列表,選擇要使用的API,有條件的API可在右側修改相關資訊,使用右側的[Send]按鈕測試返回的結果。點選[OK]按鈕確認並將參數資訊回傳至RestAPI控制元件中。

                  # 6.1. 屬性

                  屬性 說明
                  Body 請求主體的內容
                  ContentType 請求的內容型別
                  GUID 在RestAPI管理器中記錄的選擇項的值
                  Headers 請求頭的值的型別
                  Method 請求的型別
                  Params 請求的參數內容
                  Script 請求的指令碼內容
                  Server 請求的伺服器的地址資訊
                  Url 請求的除伺服器以外的地址的資訊

                  # 6.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鍵值對。

                  # 6.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型別的文字編碼方式。

                  # 6.1.3. GUID

                  property GUID: string;
                  
                  1

                    此處的GUID用來記錄在管理器界面選擇的RestAPI。

                  # 6.1.4. Headers

                  property Headers: TStringList;
                  
                  1

                    設定發送請求的請求頭的資訊。

                  # 6.1.5. Method

                  property Method: TRequestMethod;
                  
                  1

                    設定請求的發送方式。

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

                  # 6.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地址與第一個參數中間使用?分隔,其餘的參數與參數之間使用&進行分隔。

                  # 6.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

                  # 6.1.8. Server

                  property Server: string;
                  
                  1

                    設定API廠商的服務地址,此服務地址可從API服務管理界面進行設定。

                  # 6.1.9. Url

                  property Url: string;
                  
                  1

                    設定處服務地址外的具體Url路徑資訊。首位不需要帶地址分隔符號。

                  # 6.2. 事件

                  # 6.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

                    # 6.3. 方法

                    # 6.3.1. Send

                    procedure Send;
                    
                    1

                      設定發送請求。

                    # 6.3.2. Init

                    procedure Init(AGUID: string);
                    
                    1

                      設定對連線資訊初始化操作。AGUID表示為其連線使用的GUID欄位的名稱。通過引用后可將對應欄位的RestApi設定引入到界面中來。

                    # 7. TUgModbusTCPClient

                      該元件為ModbusTCP元件,用於與設備建立ModbusTCP連線。連線的發起是以FastWeb服務端為基準,不是以客戶端的方式呈現。

                    # 7.1. 屬性

                    屬性 功能說明
                    AutoConnect 是否進行自動連線
                    ConnectTimeOut 設定連線超時的時間
                    Host 指定一個Modbus設備的IP地址
                    Port 指定一個Modbus設備的埠號
                    ReadTimeOut 設定讀取超時的時間
                    UnitID 設定Modbus從機的ID

                    # 7.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

                      # 7.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

                        # 7.2. 方法

                        # 7.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

                          # 7.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

                            # 7.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

                              # 7.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

                                # 7.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

                                  # 7.2.6. ReadInputBit

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

                                    讀取單個離散輸入暫存器的值。

                                    //JScript
                                    //讀取DO數位訊號輸出
                                    function btnReadInputBitOnClick(Sender)
                                    {
                                      var v;
                                      if (UgModbusTCPClient01.ReadInputBit(1,v))
                                      {
                                        if (v){
                                           UgMemo01.Lines.Add("ReadInputBit Value ->>> 1");
                                        }
                                        else{
                                           UgMemo01.Lines.Add("ReadInputBit Value ->>> 0");
                                        }
                                      }
                                      else{
                                        UgMemo01.Lines.Add("ReadInputBit ->>> error!");
                                      }
                                    }
                                    
                                    1
                                    2
                                    3
                                    4
                                    5
                                    6
                                    7
                                    8
                                    9
                                    10
                                    11
                                    12
                                    13
                                    14
                                    15
                                    16
                                    17
                                    18

                                    # 7.2.7. ReadInputBits

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

                                      讀取離散輸入暫存器中的取值數值。

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

                                      # 7.2.8. 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

                                        # 7.2.9. 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

                                          # 7.2.10. 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

                                            # 7.2.11. 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

                                              # 7.2.12. 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

                                                # 7.2.13. 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

                                                  # 8. TUgMQTTClient

                                                    MQTT是一個基於客戶端-伺服器的訊息發佈/訂閱傳輸協議。MQTT協議是輕量、簡單、開放和易於實現的,這些特點使它適用範圍非常廣泛。在很多情況下,包括受限的環境中,如:機器與機器(M2M)通訊和物聯網(IoT)。其在,通過衛星鏈路通訊感測器、偶爾撥號的醫療設備、智能家居、及一些小型化設備中已廣泛使用。

                                                  # 8.1. 屬性

                                                  屬性 功能說明
                                                  BrokerHostName 是否自動開啟訂閱
                                                  BrokerHostName 指定MQTT代理伺服器地址
                                                  Port 指定MQTT代理伺服器端
                                                  ClientID 指定客戶端標識
                                                  Credentials 指定MQTTBroker的使用者登錄資訊

                                                  # 8.1.1. BrokerHostName

                                                  property BrokerHostName: string;
                                                  
                                                  1

                                                     指定MQTT代理伺服器地址。

                                                  # 8.1.2. BrokerPort

                                                  property BrokerPort: Integer;
                                                  
                                                  1

                                                     指定MQTT代理伺服器端。

                                                  # 8.1.3. ClientID

                                                  property ClientID:string read FClientID write SetClientID;
                                                  
                                                  1

                                                     指定客戶端標識。

                                                  # 8.2. 事件

                                                  事件 何時觸發
                                                  OnPublishRecerivedA 當發佈訊息返回時觸發該事件

                                                  # 8.2.1. OnPublishReceivedA事件

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

                                                  atopic表示為接收到訂閱訊息的主題名稱,apayload表示為接收到訂閱訊息的主題內容。

                                                  # 8.3. 方法

                                                  方法 功能說明
                                                  Connect 連線MQTTBroker
                                                  Disconnect 斷開與MQTTBroker的連線
                                                  Subscribe 主題訂閱
                                                  Unsubscribe 取消主題訂閱
                                                  PublishStr 推送主題訊息(字串)
                                                  PublishByte 推送主題訊息 (位元組)

                                                  # 8.3.1. Connect

                                                  procedure Connect;
                                                  
                                                  1

                                                    啟動與MQTTBroker的連線。

                                                  UgMQTTClient01.Connect;
                                                  
                                                  1

                                                  # 8.3.2. Disconnect

                                                  procedure Disconnect;
                                                  
                                                  1

                                                    斷開與MQTTBroker的連線。

                                                  UgMQTTClient01.Disconnect;
                                                  
                                                  1

                                                  # 8.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

                                                    # 8.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

                                                      # 8.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

                                                        # 9. TUgMQTTws

                                                          該元件為MQTT客戶端的WebSocket實現,與TUgMQTTClient實現的功能相同,區別在於TUgMQTTws是通過瀏覽器端直接與MQTT Broker建立連線,無需經過FastWeb伺服器中轉,可以縮短顯示響應的時間。

                                                        # 9.1. 屬性

                                                        屬性 功能說明
                                                        MQTTOptions 設定MQTT的相關選項
                                                          CleanSession 是否保持乾淨連線
                                                          ClientID 設定客戶端ID,該ID與連線中的客戶端ID不能重複
                                                          HostName MQTT Broker的連線地址
                                                          Password 設定連線到MQTT Broker的密碼
                                                          Port 設定MQTT Broker WebSocket連線的埠號
                                                          SSL 是否啟用SSL加密連線
                                                          Topic 設定預設的訂閱主題
                                                          UserName 設定連線MQTT Broker的使用者名稱稱

                                                        # 9.2. 事件

                                                        事件 何時觸發
                                                        OnConnect 當控制元件連線到MQTT Broker時觸發該事件
                                                        OnMessage 當控制元件接收到訂閱主題的資訊時觸發該事件
                                                        OnConnectionLost 當控制元件失去與MQTT Broker的連線時觸發該事件

                                                        # 9.2.1. OnConnect

                                                        procedure ugMQTTws01OnConnect(const amessage: string);
                                                        
                                                        1

                                                          當控制元件連線到MQTT Broker時觸發該事件,其中的amessage包含連線結果的相關資訊。

                                                        # 9.2.2. OnMessage

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

                                                          當控制元件接收到指定訂閱主題的資訊時觸發該事件,其中的atopic為訂閱的主題名稱,只有在客戶端訂閱了該主題后才能接收到該主題下的訂閱資訊。apayload為訂閱主題的資訊內容。

                                                        # 9.2.3. OnConnectionLost

                                                        procedure ugMQTTws01OnConnectionLost(const amessage: string);
                                                        
                                                        1

                                                          當控制元件與MQTT Broker的連線丟失時觸發該事件,其中的amessage包含連線丟失的相關資訊。

                                                        # 9.3. 方法

                                                        # 9.3.1. SubScribe

                                                        procedure Subscribe(ATopic: string);
                                                        
                                                        1

                                                          呼叫該方法,使控制元件訂閱主題資訊。注意在程式啟動時訂閱的資訊需要在MQTTOptions.Topic屬性中定義,在指令碼中定義的程式啟動時訂閱主題的方法是無效的。ATopic為主題名稱。

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

                                                          # 9.3.2. UnSubScribe

                                                          procedure Unsubscribe(ATopic: string);
                                                          
                                                          1

                                                            呼叫該方法,使控制元件取消訂閱該主題。ATopic為主題名稱。

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

                                                            # 9.3.3. Publish

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

                                                              呼叫該方法,控制元件向指定主題發佈資訊。ATopic為主題名稱,APayload為主題內容。

                                                              //JScript
                                                              ugMQTTws01.Publish("LED","0");
                                                              
                                                              1
                                                              2
                                                              //PasScript
                                                              ugMQTTws01.Publish('LED','0');
                                                              
                                                              1
                                                              2
                                                              // Make sure to add code blocks to your code group

                                                              # 10. TUgWebSerial

                                                                此元件為網頁端的通訊埠元件,可通過瀏覽器的通訊埠通訊能力與客戶端的通訊埠通訊設備進行數據互動。

                                                              # 10.1. 屬性

                                                              # 10.1.1. SerailOptions

                                                              property SerialOptions: TSerialOptions;
                                                              
                                                              1

                                                                設定通訊埠通訊的相關選項。

                                                              # 10.1.1.1. BaudRate
                                                              property BaudRate: Integer;
                                                              
                                                              1

                                                                設定通訊埠通訊的連線速率,單位為赫茲(Hz)。

                                                              # 10.1.1.2. BufferSize
                                                              property BufferSize: Integer;
                                                              
                                                              1

                                                                用於設定通訊埠通訊的快取區域的大小,單位為位元組(Byte)。

                                                              # 10.1.1.3. DataBits
                                                              property DataBits: Integer;
                                                              
                                                              1

                                                                設定一次通訊埠數據發送/接受的數據位數。單位為位(bit)。

                                                              # 10.1.1.4. Filters
                                                              property Filters: string;
                                                              
                                                              1

                                                                設定需要過濾的字元資訊。此處填寫的內容為通訊埠設備的供應商。

                                                              # 10.1.1.5. FlowControl
                                                              property FlowControl: TFlowControl;
                                                              
                                                              1

                                                                設定是否開啟通訊埠的流控制模式,fNone 表示不啟用,fHardware 表示啟用硬體流控制。

                                                              # 10.1.1.6. Parity
                                                              property Parity: TParity;
                                                              
                                                              1

                                                                設定數據校驗的模式,pNone 表示為無校驗,pEven 表示為偶校驗,pOdd 表示為奇校驗。

                                                              # 10.1.1.7. StopBits
                                                              property StopBits: Integer;
                                                              
                                                              1

                                                                設定通訊埠通訊停止位的數量,單位為位(bit)。

                                                              # 10.2. 事件

                                                              # 10.2.1. OnReceived

                                                                //JScript
                                                                function UgWebSerialOnReceived(adata){};
                                                                
                                                                1
                                                                2
                                                                //PasScript
                                                                procedure ugWebSerialOnReceived(const adata: string);
                                                                
                                                                1
                                                                2
                                                                // Make sure to add code blocks to your code group

                                                                  當通訊埠接收到數據時觸發事件,接受到的數據以字串的形式拋轉出來。

                                                                # 10.3. 方法

                                                                # 10.3.1. Init

                                                                property Init;
                                                                
                                                                1

                                                                  設定控制元件的初始化。

                                                                # 10.3.2. Request

                                                                procedure Request;
                                                                
                                                                1

                                                                  設定打開瀏覽器的埠選擇界面,用以選擇埠資訊。

                                                                # 10.3.3. Open

                                                                procedure Open(AProt: Integer);
                                                                
                                                                1

                                                                  呼叫此方法以打開指定序號的通訊埠埠。

                                                                # 10.3.4. Close

                                                                procedure Close;
                                                                
                                                                1

                                                                  呼叫此方法以關閉通訊埠。

                                                                # 10.3.5. Write

                                                                procedure Write(AData: string);
                                                                
                                                                1

                                                                  呼叫此方法可向通訊埠寫入數據。寫入的數據以字串的方式顯示。

                                                                # 10.3.6. WriteLines

                                                                procedure WriteLines(AData: string);
                                                                
                                                                1

                                                                  呼叫此方法可向通訊埠寫入一行數據,寫入的數據會自動包含回車控制符資訊。

                                                                # 10.3.7. GetPorts

                                                                procedure GetPorts;
                                                                
                                                                1

                                                                  獲取可使用的所有埠列表。

                                                                # 10.3.8. GetPortInfo

                                                                procedure GetPortInfo
                                                                
                                                                1

                                                                  獲取埠的資訊。

                                                                // Make sure to add code blocks to your code group
                                                                資料庫控制元件
                                                                伺服器控制元件

                                                                ← 資料庫控制元件 伺服器控制元件→

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