Desktop Execution Trace Toolkit (DETT) 無法追踪執行檔時,也可以檢查一下執檔下的INI

問題描述:使用DETT時,已設定好的執行檔啟後,DETT看不到執行檔有出現在下拉清單中。
可能的決解方式:檢查執行檔的“執行檔名稱.ini”內,是否有圖2的這4行設定。沒有的話就手動輸入,或許問題就可以被解決。

圖一,DETT沒有找到要被debug的程式在清單中。
圖二,這四個設定要有在設定檔中,不然DETT找不到這支程式

JSONtext Toolkit令人無法理解的bug-花了8個小時的經驗

問題描述:在開發環境下使用,功能與預期相同,可以從json中取出所需要的資料,但是搭配actor framework後,一但轉成執行檔後,程式的Actor core.vi的UI則無法顯示。
目前的解決方式,是將JSONtext的Find Item (as LVtype).vim 移除,用其它方式將Json字串取出。就可避開這個問題。

LabVIEW的莫名其妙Build Application的問題

今天上群組的討論,隨身做個記錄,我相信還會有下一次
一開始原始的發問如下:
專案執行起都很正常,但是要轉執行檔時,都會出現下面錯誤,跑過mass compile,沒有看到問題,請問各位有遇過這樣的問題嗎?又該如何處理呢?

2024/03/26 更新
最終解決方法,移動一下這個property的位置後,一切就恢復正常了。對,沒錯,程式都沒改,就只是移動property的位置後,再build執行檔。就正常了。

2024/03/26 更新,就只是移動一下,上面紅框的物件,build執行檔就沒有問題了。


後來有發現到我的兩台開發電腦,只有一台有這樣的狀況。

line群裡的大大給的建議有下面幾個方向
1. 檔名太長
2. CDS toolkit
3. builder有問題,重新建置
4. Actor Children會不會被改壞了

最後的解決方案有兩個方式
方案一
開啟Enable debugging就可以正常轉出執行檔


方案二
1. 取消勾選在build specification中的Additional Exclusions->Remove unused members of project libraries.
2. 修正“C:\Program Files (x86)\National Instruments\LabVIEW 2020\vi.lib\drjdpowell\SQLite Library\Lookup\Open (with Attributes).vi” 這個broken問題;但如果只是單純修好這個VI,不勾選上面這選項,問題依然存在。


雖然我正常的電腦不作上面的動作也能正常build執行檔,但為了兩台電腦都有一致性的環境,也就先這樣吧。

Remove unused members of project libraries後,Build執行檔會出現這個問題,所以要修正Open (with Attributes).vi後,才能正常轉檔

參考資料
line群
How To – LabVIEW建立執行檔時遇到1502&1055錯誤的可能解決方式
LabVIEW Error 1502 When Building an Application
LabVIEW 2023 Q3 crashes while building exe on Windows 11

GitLab CI/CD之“原來gitlab-runner也可以設定登入帳戶”

因為目前都是用一台電腦跑完CI流程後,在CD的部份是希望可以直接上傳到google drive,本來想說不就直接用雲端硬碟電腦版複製過去了就好,但是萬萬沒有想到,在跑gitlab-runner時,一直出現權不足,無法複製的情況,搞了好久才找到原來是gitlab-runner的登入帳號是本機系統帳號,是沒有辦法寫入個人的雲端硬碟的,需要改變gitlab-runner的登入帳號,才能夠正常讀寫個人的雲端硬碟。

開啟電腦管理,到服務這找到gitlab-runner,就可以看到是預設的本機帳戶
進到gitlab-runner,修改登入帳戶。
修改後,就可以看到登入帳戶為個人帳號。

可以為LabVIEW建立自己的Docker image使用容器技術來進行自動化的CI/CD嗎? ->答:目前還不行

目前NI的授權方式關係,以及NIPM與JKI VIPM的安裝方式,在無法完全在command line interface作業的狀況下,很顯然只能期待未來NI授權方式改變及NIPM與JKI VIPM可以完全支援command line interface作業的狀況下再來研究了。

參考資料
Support VIPM installation on a Docker container (Windows)
LabVIEW + Docker + Windows = Match?
20 分鐘入門 Docker,建立屬於你自己的 Docker Image|六角學院|2023 鐵人賽 #23
自建 Docker Image
docker全套工作流的白话教程实用入门指南 快速掌握docker的基本操作 全套工作流的白话教程 堪称喂饭|拉取镜像|创建容器|运行容器|修改容器|容器打包成镜像|推送自己的镜像
Understanding Docker for Windows
Part 4 – Making Windows Containers for Docker to Work
“Contain” your excitement!

不完美的LabVIEW + gitlab-runner CI流程

2024/03/14 更新
原來是自己沒有注意跑了兩個runner,所以資源衝突造成的,移除多餘的runner之後就正常了。

不知道是不是因為架設一台實體電腦跑gitlab-runner,所以在常常開關LabVIEW之後,就出現下面的狀況,在windows管理員中,看到LabVIEW的執行緒就卡住了。即便手動關閉後,讓這一次可以正常執行完CI流程,但再下次執行CI流程後,還是很容的再出現相同的狀況,看來還是需要進到容器,再來觀察這個狀況會不會有所改善。

從GitLab中,看到工作被中斷的狀況
這個是目前維一有看到什麼服務被卡住,很多時候只看到LabVIEW的執行緒沒有被關閉卡在那。
這個就是常態,上面這張圖還是重開電腦第一次執行CI時,就中招了。

單元測試之 JKI VI Tester in LabVIEW

這裡要實作的是JKI VI Tester,我的習慣使用流程如下
1. 開啟專案,在Tools -> VI Tester -> New -> Test Case,建立測試物件
2. 將測試物件放在test -> VI Tester實際的資料夾下,並命名為“測試名+TestCase.lvclass”
3. 將專案中的測試物件移到test的虛擬資料夾下。
4. 在展開測試物件,在”testExample.vit”點下右鍵,點選“New from Template”,建立新的測試案例
5. 撰寫測試案例
6. VI存檔
7. 專案存檔
8. 再從專案下Tools -> VI Tester -> Test VIs…
9. 執行測試

建立測試物件
新增所出現的檔案架構
從模板建立測試VI,減少重覆的工作。
測試模板,減少拉線的時間
撰寫測試VI
開啟VI Tester測試畫面
除了可以有UI看到測試結果,也可以透CLI輸出文件

參考資料來源
LAF Q2 2015 – Unit Testing with the JKI VI Tester (Casey Lamers)
Testing a VI with VI Tester using Pass/Fail Criteria
Creating a Test Case and Test Method in VI Tester
此專案原始碼
JKI VI Tester by JKI – Toolkit for LabVIEW Download

LabVIEW跨平台開發的注意事項 (Windows or Linux)

因為在Windows上用LabVIEW進行開發也超過20個年頭,但是一直忘了當初為什麼沒有想到用Linux下進行LabVIEW開發,直到最近因為要用GitLab CI/CD與在Line群上討論到,所以今天就把他寫下來,之後有更新來這裡回顧。

注意事項
1. LabVIEW專案所使用的硬體是否有支援Windows與Linux.
2. LabVIEW專案所使用的硬體是否有提供對應的dll 與so檔
3. LabVIEW專案是否有用到.net framework元件,如果有用到,則只能在Windows OS下運作
4. LabVIEW專案在那個OS下的編譯出來可執行二進制檔案,也只能回到該作業系統示運作
5. 如果只是要進行code review,因為沒有要編譯成可執行二進制檔,則沒有上述限制

參考資料
LabVIEW and Microsoft Windows Compatibility
LabVIEW 與 Linux 作業系統相容性

LabVIEW 單元測試與執行檔編譯的自動化

感謝國外各路大神提供的各項toolkits,目前整理過後,已經可以自動化的進行單元測試後,再編譯成執行檔。但其步驟和細節太多了,只能慢慢的補上設定過程。

這裡先說,這次的gitlab-runner是用SAS G-CLI Tools Documentation裡的設定,與之前用的powershell不同。

我這個專案的GitLab路徑
LabVIEW-CICD

參考資料
SAS G-CLI Tools Documentation
LabVIEW Project Template
Caraya-CLI-extension
Caraya CLI Extension by G Open Source Project for LabVIEW – Toolkit for LabVIEW Download

LabVIEW + GitLab Server 硬體環境怎麼配置

因為公司政策,程式碼不能放在外網,而我又需要專案可以進行CI/CD的自動化,所以只好來研究一下怎麼配置來滿足我的需求。

我的想法是用一台 Windows筆電 Intel i7/ 16GB RAM 掛上 VirtualBox + Ubuntu Server + gitlab server
VirtualBox 設定 2 cores CPU及4G RAM來滿足GitLab server的需求

會這樣做的原因是已經有看到人在Windows上要架GitLab server的教訓,所以我也就不多想,直接使用VM+Ubuntu+GitLab的組合來做。

那為什麼不是直接在筆電上直接安裝Ubuntu呢?答案很簡單,因為我的程式絕大多數是有GUI的程式,所以gitlab-runner需要跑在Windows上。

以上的思考是用只有一個開發人員的情境下進行的規劃。真的專案多了,有多個專案要跑CI/CD我想應該也是沒有辦法用的,需要再優化。

參考文章
How to Install GitLab on Ubuntu 22.04 Step-by-Step
Windows環境下安裝GitLab的心得(不是安裝教學)