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!

Dockerhub – LabVIEW Image無法使用

之前有看到國外大神分享LabVIEW docker file時,我以為我架好docker環境後,可以直接拿他的image來用,沒有想到,事情沒有這麼簡單。不出意外,意外就發生了,這一篇是一個記錄錯誤狀況的文,因為不知道要花多少時間才能解決這個問題。

國外大神分享的dockerhub image

在下載21GB大小的image檔案後,以為可以正常執行的我,結果看到這個錯誤訊。
(HTTP code 500) server error – container 4eedfcb98ee095fc4365a37f11eb29cedad324d7abc4bea754893c75448136f2 encountered an error during hcs::System::Start: failure in a Windows system call: The virtual machine or container exited unexpectedly. (0xc0370106)

丟給chatGPT的回答如下:
這個錯誤是 Docker 在嘗試啟動容器時遇到了 Windows 系統呼叫的失敗,指出虛擬機或容器意外退出。這可能是因為各種原因所引起的,包括系統資源不足、配置問題或其他Docker相關問題。 要解決這個問題,你可以嘗試以下幾種方法:
1. **重新啟動Docker服務**:有時候重新啟動Docker服務可以解決臨時的問題。
2. **檢查系統資源**:確認你的機器有足夠的記憶體和CPU來運行Docker容器。資源不足可能會導致無法啟動容器。
3. **更新Docker Desktop**:確保你使用的是最新版本的Docker Desktop,因為新版本可能含有重要的錯誤修正。
4. **查看Docker日誌**:檢查Docker容器的日誌文件,它可能包含有助於診斷問題的詳細資訊。
5. **移除並重新創建容器**:有時候刪除故障的容器,然後重新創建一個新容器可以解決問題。
6. **檢查Windows事件查看器**:查看Windows事件查看器以搜索可能相關的錯誤訊息。
7. **更新Windows**:確保Windows系統是最新的,並安裝了所有必要的更新。
### 注意事項: – 在進行任何修改之前,確保備份你的容器和相關數據。 – 如果問題依然存在,建議參照Docker和Windows的官方文檔,尋求更具體的解決方案。 – 實施以上解決方案後仍無法修復問題時,你可以考慮刪除並重新安裝Docker Desktop。 – 如果你在處理過程中不確定某些步驟,可以尋求社群的幫助,例如Docker 社群論壇、Stack Overflow等。

GitLab-CI的檔案編寫的血涙

1.在寫.gitlab-ci.yml檔案時,一定注意的事項
– 要養成的習慣,就是將檔案中的變數一律大寫。
– 變數中,不能有”-“符號
目前不小心中了上面兩個招,花了我大把時間找問題。

不斷的試錯過程

极狐GitLab CI/CD 入门
极狐GitLab CI/CD 变量

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

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

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

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

建立Windows容器

為什麼需要建立Windows容器,因為想要在同一台機器上,跑gitlab-runner來編譯不同版本的LabVIEW程式使用,做到開發電腦與gitlab-runner可以各司其職的環境。這樣帶來的好處是從GitLab上,不但可以做到版本控制,也可以看到程式碼做過那一些Unit Test。提高使用者對程式的信心度。

借微軟的圖來說一下,我要借用容器化的方式,架構不同環境來跑gitlab-runner,進而達成不同版本的LabVIEW版本的編譯環境在同一台電腦上,但又不會互相影響所需要套件。

出處:https://learn.microsoft.com/zh-tw/virtualization/windowscontainers/about/

建立的Windows容器流程
1. 在Windows上開啟Hyper-V功能 (Windows專業版以上才有的功能)
2. 安裝Docker
3. Docker切換到Windows container
4. 建構Dockerfile

常用指令
# 以管理員權限打開PowerShell窗口
# 檢查Hyper-V特性狀態
DISM /Online /Get-FeatureInfo /FeatureName:Microsoft-Hyper-V

# 檢查所有可選功能狀態
Get-WindowsOptionalFeature -Online

# 啟用Hyper-V功能 ,在開啟Docker的Windows Container之前要記得先開。
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

建立最基本的docker image所看到資

參考資料
Windows 容器需求
Windows 和容器
在 Windows 10 上安裝 Hyper-V
Windows 上的 Dockerfile

Docker踩雷紀錄

Docker for Windows的預設Containers是在Linux,所以之前一直沒有辦法抓取Winsows的Image,所以後續的動作都卡住了。
Docker for Windows如果要改為使用Windows Containers,需要是專業版,且Hyper-V相關工具要先開啟及安裝設定後,才能使用。

Windows家用版的選項如下

Windows專業版的畫面

參考來源
“Contain” your excitement!