[OpenR8 library] Control(控制流程的函式)

一、Control library 介紹

 

Control 的功能有 For 迴圈、If 條件式、Loop 迴圈、離開、等待……等 20 種,如圖1。

 

圖1. Control Library 函式.png

圖1. Control library 函式。

 

 

二、Control library 介紹 ―― For 迴圈

 

※ 關於 For 解決方案的說明,請參考 [OpenR8 解決方案] ForLoop (for 迴圈)

 

【For】:For 迴圈。

參數欄位:

  • counter (Object):建立一個 For 迴圈物件。
  • from (Int):從什麼數字開始算。
  • to (Int):到什麼數字為止。
  • step (Int):每一次加多少。

範例:

【For】函式對應程式碼的位置。

 

圖2. For 迴圈程式碼對應函式的參數.png

圖2. For 迴圈程式碼對應函式的參數。

 

【For_End】:For 迴圈結束位置。

參數欄位:

  • counter (Object):建立一個 For 迴圈物件。

範例:

如果【For】函式為起始位置的話,那麼【For_End】函式就是結束位置 (相當於程式碼結束的 } ,如圖3)。

 

圖3. For_End 之程式碼對應函式的參數.png

圖3.【For_End】之程式碼對應函式的參數。

 

【For_GetCounter】:取得目前 For 迴圈執行的次數。

參數欄位:

  • counter (Object):選擇要取得的 For 迴圈物件。
  • count (Int):輸出現在 For 迴圈的執行的次數。

範例:

對應程式碼而言,就是取出 i 等於多少 (j 的值),如圖4

 

圖4. 取得目前 For 迴圈的次數.png

圖4. 取得目前 For 迴圈的次數。

 

【For_SetCounter】:設定目前 For 迴圈執行的次數。

參數欄位:

  • counter (Object):選擇要設定的 For 迴圈物件。
  • count (Int):設定目前 For 迴圈的執行的次數數。

範例:

對應程式碼而言,就是重設 i 等於多少,如圖5。

 

圖5. 設定目前 For 迴圈的次數.png

圖5. 設定目前 For 迴圈的次數。

 

 

 

 

 

三、Control library 介紹 ―― If 條件式

 

所謂的條件式,就是達成條件才會運作的式子,通常的條件大多都是比較的結果,由比較函式所輸出的布林值來決定是否執行條件式區間的事情。

※ 關於 If 解決方案的說明,請參考 [OpenR8 解決方案] If (條件式)

 

【If】:if 條件式。

參數欄位:

  • ifObj (Object):建立 if 條件式物件。
  • bool (Bool):bool 值 (True 或 False)。

範例:

對應程式碼而言,就是 if () 裡面 bool True 還是 false,如果是bool 值為 True 會做 {……} 內的事;如果 bool 值為 False 則會跳過 {} 內的事,如6

※ 備註:由於【If】與 【If_End】是相對的,所以在使用【If】時,務必要加【If_End】來表示條件式結束的位置 (類似程式碼的 } 的意思)。

 

圖6. if 條件式.png

圖6. if 條件式。

 

【If_Else】:else 條件式。

函式說明:

【If】和【If_Else】是相對的條件,當【If】條件不成立時,如果有【If_Else】條件式存在的話,會進入【If_Else】條件式做事,所以【If_Else】無法在沒有【If】函式的情況下單獨存在

參數欄位:

  • ifObj (Object):選擇與【If】函式相同的物件。

範例:

程式碼對應函式流程如圖7

 

圖7. if else 對應程式碼的關係.png

圖7. if else 對應程式碼的關係。

 

【If_ElseIf】:else if 條件式。

函式說明:

【If_ElseIf】是介於【If】和【If_Else】之間的條件式,當【If】條件不成立時,如果有【If_ElseIf】條件式存在的話,會根據【If_ElseIf】的條件是否成立才會進入【If_ElseIf】條件式做事,所以【If_ElseIf】無法在沒有【If】函式的情況下單獨存在

參數欄位:

  • ifObj (Object):選擇與【If】函式相同的物件。
  • bool (Bool):與【If】函式不一樣的 bool 值 (是可以填一樣,但是沒甚麼意義)。

範例:

程式碼對應函式流程如圖8圖9

 

圖8. else if對應程式碼的關係.png

圖8. else if 對應程式碼的關係。

 

圖9. else if對應程式碼的關係.png

圖9. else if 對應程式碼的關係。

 

【If_End】:條件式結束。

參數欄位:

  • ifObj (Object):選擇與【If】函式相同的物件,表示條件式範圍結束。

備註:

由於【If】與 【If_End】是相對的,所以在使用【If】時,務必要加【If_End】來表示條件式結束的位置 (類似程式碼的 } 的意思)

 

【If_IsEqualString】:比較兩個字串是否一致,一致時則進入條件做事。

參數欄位:

  • ifObj (Object):建立 if 條件式物件。
  • stringA (String):比較的字串 A。
  • stringB (String):比較的字串 B

範例:

程式碼對應函式流程如下圖10

 

圖10. If_IsEqualString 對應程式碼的關係.png

圖10. If_IsEqualString 對應程式碼的關係。

 

【If_Not】:當條件式不成立時才做事。

函式說明:

【If_Not】是【If】相反作法的函式,如果【If】函式是 bool 值為 True 會做 {……} 內的事,那麼【If_Not】就是 bool 值為 False 才會做 {……} 內的事。

參數欄位:

  • ifObj (Object):建立 if 條件式物件。
  • bool (Bool):bool 值 (True 或 False)。

範例:

對應程式碼而言,就是 if () 裡面 bool 是 True 還是 false,如果是 bool 值為 True 會做 {……} 內的事;如果 bool 值為 False 則會跳過 {} 內的事,如圖11

※ 備註:由於【If_Not】與 【If_End】也是相對的,所以在使用【If_Not】時,務必要加【If_End】來表示條件式結束的位置 (類似程式碼的 } 的意思)。

 

圖11. if not 條件式.png

圖11. if not 條件式。

 

 

四、Control library 介紹 ―― Loop 迴圈

 

※ 關於 Loop 解決方案的說明,請參考 [OpenR8 解決方案] Loop (迴圈)

 

【Loop】:迴圈。

參數欄位:

  • objLoop (Object):建立 loop 迴圈物件。
  • toStop (Int):當值不為 0 時,代表停止迴圈;當值為 0 時,代表持續做【Loop】到【Loop_End】之間的事。

範例:

對應程式碼而言,就是 while() 裡面如果 toStop 欄位的值為 0 時,會一直循環下去,直到 toStop 欄位的值不為 0 時才跳出迴圈,如圖12

※ 備註:由於【Loop】與 【Loop_End】是相對的,所以在使用【Loop】時,務必要加【Loop_End】來表示迴圈結束的位置 (類似程式碼的 } 的意思)。

 

圖12. loop 迴圈.png

圖12. loop 迴圈。

 

【Loop_End】:迴圈結束。

參數欄位:

  • objLoop (Object):選擇要結束的 loop 迴圈物件。

 

※ 備註:由於【Loop】與 【Loop_End】是相對的,所以在使用【Loop】時,務必要加【Loop_End】來表示迴圈結束的位置 (類似程式碼的 } 的意思)。

 

【Loop_Break】:跳出 Loop 迴圈。

參數欄位:

  • objLoop (Object):選擇要跳出的 loop 迴圈物件。

 

※ 【Loop_Break】函式相當於程式碼的 break 用法。

 

【Loop_Continue】:跳過下面的事情,回到 Loop 迴圈開頭繼續往下做。

參數欄位:

  • objLoop (Object):選擇要跳過的 loop 迴圈物件。

 

※ 【Loop_Continue】函式相當於程式碼的 continue 用法。

 

 

五、Control library 介紹 ―― 其他

 

【Exit】:結束程式。

參數欄位:

  • status (Int):結束的時候回傳值。

功能:

如果流程運行到【Exit】函式時,會關閉程式

 

※【Exit】函式相當於程式碼的 exit (status)

 

【Function_Enable】:是否執行指定編號的函式。

參數欄位:

  • enable (Bool):True 為要執行指定編號的函式;False 為不執行指定編號的函式。
  • functionSn (Int):指定函式的 Sn 編號。

範例:

假設有個 function 是被關閉的狀態,如圖13,然而想在特定條件下執行這個函式時,這時使用【Function_Enable】,在 enable 欄位填 True、functionSn 填想執行的函式編號,如圖14,即可執行原先被關閉的函式

※如果在 function 是開啟狀態,想關閉時,enable 欄位填 True、functionSn 填想執行的函式編號。

 

圖13. 函式 Enable 關閉.png

圖13. 函式 Enable 關閉。

 

圖14. Function_Enable .png

圖14.【Function_Enable】

 

【Function_Enable2】:是否執行指定編號區間內的函式。

參數欄位:

  • enable (Bool):True 為要執行指定編號區間內的函式;False 為不執行指定編號區間內的函式。
  • functionSnFrom (Int):從指定函式的 Sn 編號開始。
  • functionSnTo (Int):到指定函式的 Sn 編號為止

範例:

假設有一些 function 是開啟的狀態,然而想在特定條件下不執行這些函式時,這時使用【Function_Enable2】,在 enable 欄位填 False、functionSnFrom 填 “從不想執行的函式編號”,functionSnTo 填 “到不想執行的函式編號” ,即可不執行指定區間的函式。

圖15. 1 Function_Enable2 從 Sn 4 到Sn 6.png

 

圖15. 2 Function_Enable2 從 Sn 4 到Sn 6.png

圖15.【Function_Enable2】從 Sn 4 到Sn 6

 

圖16. Function_Enable2 從 Sn 4 到Sn 3.png

圖16.【Function_Enable2】從 Sn 4 到Sn 3

 

圖17. Function_Enable2 從 Sn 4 到Sn 3.png

圖17.【Function_Enable2】從 Sn 4 到Sn 3

 

【Return】:回傳值,回傳後結束程式。

參數欄位:

  • status (Int):想要回傳的數值。

 

※【return】的 status 欄位相當於程式碼的 return status。

 

【Sleep】:睡眠、暫停執行幾秒鐘。

參數欄位:

  • second (Double):想睡眠、暫停執行幾秒鐘。

 

※【Sleep】的 second 欄位相當於程式碼 sleep (second),second 是秒鐘,不是毫秒鐘。

 

【WaitKey】:影像視窗顯示幾毫秒。

函式說明:

【WaitKey】是 OpenCV 在顯示影像時最常使用的函式,用於 OpenCV 在顯示影像 (imshow) 時,讓顯示影像的視窗停駐多少。

參數欄位:

  • keyCode (Int):輸出按下鍵盤任意鍵的 ascii 碼。
  • milliSeconds (Int):顯示影像幾毫秒。

如果想一直顯示影像直到按下任意鍵再繼續做事,請設 0;

如果想顯示影像 1 秒後再繼續做事,請設 1000;

如果想顯示影像 n 秒後再繼續做事,請設 n * 1000。

標籤:

延伸閱讀

1.
OpenR8 - 人人都會用的 AI 軟體 (下載)

[CP 值最好的 AI 人工智慧電腦熱賣中]
硬體採用最新最快的 Titan RTX, RTX-2080Ti-11G, 及 TESLA V100!
視窗圖控介面,易學易用。
硬體優勢:針對深度學習最佳化設計,且經過客戶端 24H 運作驗證。
軟體優勢:事先安裝人工智慧軟體及優化設定,每週提供最新 AI 演算法下載。
公司優勢:專業人工智慧機器人設計公司,資本額一億。
歡迎企業、學校、及公家機關大量採購。
可租用,歡迎來信或來電洽詢。
詳細資料請參閱以下網址: https://tw.leaderg.com/ai_computer