1 / 14

客制人機 進階版

客制人機 進階版. DLL 客制開發. 透過 Import action 可以做到什麼? 假如想要做的動作,新代的 action 沒有提供,可以自己撰寫(例如: R 值相加 .. 等等) 透過 Plugin 可以做到什麼? 自己決定加什麼物件在人機上(例如: timer.. 多個 OCBrowser…ListView… 等等) 自己決定事件內容(例如: KeyDown…On_Show… ) 自己定義 action. 客制人機. 初階版 可利用 EHMI 修改原本的標準人機畫面(不建議修改) 可利用 EHMI 在標準人機上新增一個頁面

nhu
Download Presentation

客制人機 進階版

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 客制人機進階版

  2. DLL客制開發 • 透過Import action可以做到什麼? • 假如想要做的動作,新代的action沒有提供,可以自己撰寫(例如:R值相加..等等) • 透過Plugin可以做到什麼? • 自己決定加什麼物件在人機上(例如:timer..多個OCBrowser…ListView…等等) • 自己決定事件內容(例如:KeyDown…On_Show…) • 自己定義action

  3. 客制人機 • 初階版 • 可利用EHMI修改原本的標準人機畫面(不建議修改) • 可利用EHMI在標準人機上新增一個頁面 • 可利用新代提供的Action去做一些動作 • Import Action • 可自行定義action,例如R3=R2+R1這類標準action沒有提供的功能 • Plugin • 上述都只是客制XML而已,Plugin是完全客制,不限定一定要用XML layout畫面,可自由加入物件,加timer也是可以的。像form一樣有一些特殊事件,例如On_Load On_Show On_Hide…

  4. Import Action • 自行定義action • 將想要執行的動作寫成一個dll檔 • 如何建立專案檔:請參考客制教學文件第三章 • 專案中的程式應該如何撰寫:請參考客制教學文件2-3-1 • 為這個action命名,例如MyAction_AddRValue • 在XML中適當的位置加入此action • 如何給我的action一個名字,如何呼叫我的action:請參考客客制教學文件2-3-2 • 完成 • 完整範例:請參考客制教學文件2-3-3,或者附件中的Dll Action資料夾

  5. Import Action • 當action dll無效時,如何驗證是自己寫錯,還是環境有問題: • 請套用附件中的W32\OpenCNC Shared資料夾和W32\Program Files資料夾,測試 F3客制功能鍵-F1呼叫客制頁面-F2 Dll Action 是否會讓上面數下來第三個input的值等於第一個減第二個的值,是否有顯示按鈕按下時的時間。 如果有,則環境沒有問題,請檢查是否自己那個環節有寫錯。如果沒有,請參考客制教學文件第四章,檢查使用版本是否不支援此功能。

  6. Import Action • 以下列出使用者常見錯誤,倘若發現自己的action dll無效時,可檢查是否是下列問題: • Project.beproj檔內容寫錯 • 宣告的ID和XML的action寫的不一樣 • FileName檔名寫錯 • ClassName和ProcName和程式中寫的不一樣 • DLL擺錯地方 • Dll擺放位置請參考客制教學文件1-5

  7. Plugin • Plugin主要使用的是新代物件『Screen』,Screen的定位其實有一點像微軟的物件『Form』 • 擁有On_Load(On_Show On_Hide)事件,使用者可決定On_Load(On_Show On_Hide)這些時間點要做哪些事情 • 例如:On_Show時參考參數3201,決定browser中要顯示哪一個XML • 可以自由加入物件 • 例如timer,定時去執行某些動作 • 例如ListView,讓畫面顯示列表元件 • 可以自己定義action,不需要再透過Import dll,直接定義在Plugin的程式裡面即可

  8. Screen Scr_Alarm Scr_Monitor ….. Scr_PosCoord Plugin screen2 標準人機有很多個畫面,還有很多個action, 我們利用Screen來做到模組化的概念, 將關係較密切的放在同一個screen中一起管理 Plugin screen1 ….. Plugin screen N

  9. Plugin • 前面提供的客制方式都只能在OCBrowser和OCFenuabr這二種XML中打轉而已。 Plugin則擺脫這二樣物件的束縛,畫面上想要擺什麼物件完全可由自己決定,但依舊建議您使用至少一個OCBrowser,因為該物件可處理非常多人機與核心溝通的問題,不需要再費心自己去撰寫

  10. Plugin • 自行定義Screen • 撰寫plugin程式 • 如何建立專案檔:請參考客制教學文件第三章 • 專案中的程式應該如何撰寫:請參考客制教學文件2-6-2 • 強烈建議:由於Plugin的程式架構較為複雜,建議可以直接改寫附件中的Plugin程式,會省時很多,並且減少很多錯誤發生 • 定義一個action名稱,用來叫出Plugin • 在XML中適當的位置加入此action • 如何給我的action一個名字,如何呼叫我的action:請參考客制教學文件2-6-3 • 完成 • 完整範例:請參考客制教學文件2-6-4,或者附件中的Plugin資料夾

  11. Plugin • 當Plugin無效時,如何驗證是自己寫錯,還是環境有問題: • 請套用附件中的W32\OpenCNC Shared資料夾和W32\Program Files資料夾,測試 F3客制功能鍵-F5 呼叫Plug in 如果有切換畫面,則環境沒有問題,請檢查是否自己那個環節有寫錯,如果沒有改變,請參考客制教學文件第四章,檢查使用版本是否不支援此功能。

  12. Plugin • 以下列出使用者常見錯誤,倘若發現自己的Plugin無效時,可檢查是否是下列問題: • Plugin.config檔內容寫錯 • 宣告的ID和XML的action寫的不一樣 • FileName檔名寫錯 • ClassName和ProcName和程式中寫的不一樣 • 程式內容有誤 • 沒有將物件add to controls • 沒有給物件大小和位置和顏色 • 附件中的Plugin code在宣告物件時,都有給予物件需要設定的屬性,如果直接拿範例code當範本,可避免不少類似的問題 • DLL擺錯地方 • Dll擺放位置請參考客制教學文件1-6 • Plugin.config擺錯位置 • 此文件擺放位置請參考客制教學文件1-6

  13. HomeWork – Import dll • 前置:準備好A.xml,上頭有三個input對應到R5/R6/R7,並且有一個Panel • F3客制功能鍵 • F3-F1呼叫A.xml • F3-F2利用eHMI執行action去改變A.xmlPanel的顏色 • F3-F3利用Import Dll執行action讓R5=(R6)/2+R7

  14. HomeWork – Plugin • 前置:準備好A.B.C.D.xml,左上角利用一個label分別寫A.B.C.D以便判別 • F3客制功能鍵 • F3-F5呼叫Plugin • Plugin頁面分配有限制 • 左邊一個OCBrowser,右邊一個OCbrowser • Plugin的On_Show有限制 • 當參數3201為0時,右邊的OCBrowser讀取 A.xml • 當參數3201 不為0時,右邊的OCBrowser讀取 B.xml • 左邊的OCBrowser讀 C.xml • F3-F6切換右方的畫面XML • 在Plugin裡面寫action讓將右邊的OCBrowser讀 C.xml,再按一下讀 B.xml,如此循環下去C->B->C->B->…. • 按下PageDown時,左邊的OCbrowser讀取D.xml,再按一下變成A.xml,如此循環下去D->A->B->C->D->…. • 按下PageUp時,左邊的OCbrowser讀取B.xml,再按一下變成A.xml,如此循環下去C->B->A->D->C->….

More Related