色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

labview中事件回調(diào)的使用

lvxisi ? 來源:lvxisi ? 作者:lvxisi ? 2023-08-24 16:38 ? 次閱讀

最近測試了labview調(diào)用dll中的回調(diào)函數(shù)相關(guān)功能,遇到了一些問題,現(xiàn)在做一下整理和總結(jié),相關(guān)的內(nèi)容比較多,分多篇來寫。

在LabVIEW中,新手經(jīng)常將所有的程序放在事件結(jié)構(gòu)中來執(zhí)行,有時還不取消前面板鎖定,一個事件觸發(fā)沒有執(zhí)行完成時,又去執(zhí)行另外一個事件,導(dǎo)致界面鎖死,必須從任務(wù)管理器里面關(guān)閉程序才行。

wKgZomTnFqOAMqVvAAKtoIyqNeY810.jpg

進一步優(yōu)化,會采用生產(chǎn)者-消費者結(jié)構(gòu),在事件結(jié)構(gòu)中觸發(fā),在消費者循環(huán)中,處理相關(guān)的程序。但如果要處理的程序時間較長,還是會導(dǎo)致隊列阻塞,不能及時處理相應(yīng)的程序。此時,便可以采用事件回調(diào)的方式來來解決。

wKgZomTnFqOALZiXAALB0o0_JfI308.jpg

先簡單介紹一下回調(diào)函數(shù),是一種在編程中常見的概念,它通常用于在特定事件發(fā)生時執(zhí)行預(yù)定義的操作。回調(diào)函數(shù)可以作為參數(shù)傳遞給其他函數(shù),以便在需要時被調(diào)用,從而實現(xiàn)定制的事件處理和邏輯分離。詳細的概念網(wǎng)上很多,可以感興趣可以查一下。

在labview中,無法實現(xiàn)將函數(shù)的地址指針傳遞給dll的,實際測試過VI引用是不可以的。可通過包裝器的方式來實現(xiàn),網(wǎng)上這方面的信息很少,個人理解,就是額外做一個中間層,將labview和dll進行連接。更進一步,就用其他語言如c++,編寫好相關(guān)的函數(shù)指針,完全實現(xiàn)既定的功能,之后再打包成中間的dll,在labview中進行調(diào)用。

labview本身,是支持回調(diào)函數(shù)的,只不過,這種機制是在內(nèi)部進行實現(xiàn)(也許還支持其他的交互方式,本人沒有測試出來)。可以利用此功能,編寫一些異步的程序,解決一些程序執(zhí)行時間較長的問題。

1)搜索找到“事件回調(diào)注冊”,這兩個是同樣的東西,在不同的文件路徑下面,選擇一個即可。

wKgaomTnFqOAMiF2AABhurO2fqQ366.jpg

2)拖放到程序框圖內(nèi),這個函數(shù)包含了事件、VI引用還有用戶參數(shù)。

wKgZomTnFqOAfYF8AAEGbSpmYyI094.jpg

3)這里寫一個簡單的測試函數(shù),a+b=sum。其中a傳入值,b和sum傳入引用。

void Add(int a, int& b, int& sum) {

sum = a + b;

}

這幾個參數(shù),作為函數(shù)的輸入,連接到用戶參數(shù)中上面。

wKgaomTnFqOAEJNrAACAEelHcmM625.jpg

4)選擇這個回調(diào)函數(shù)的觸發(fā)方式,這里使用A的值改變。將A的引用連接到“事件”接線端,選擇相應(yīng)的事件。

wKgaomTnFqOAUrFcAAGpI-YcXmg316.jpg

5)在VI引用上,右鍵選擇“創(chuàng)建回調(diào)VI”,可以自動生成一個用于執(zhí)行的VI函數(shù)。

wKgZomTnFqSATtAMAAEgo5mnho8496.jpgwKgaomTnFqSAQXvMAAGGlQfWglo837.jpg

這個生成的VI與自己編寫的VI靜態(tài)調(diào)用有所區(qū)別,界面顯示多了個*,右鍵查看是選擇了“嚴格類型VI的引用”。

wKgaomTnFqOAQUmBAAH37j7997k875.jpg

6)編程完成相關(guān)函數(shù)功能,保存VI。

wKgZomTnFqSAMjnRAAFT_7Srmcs758.jpg

7)編寫簡單的循環(huán)和延時,保證程序一直是執(zhí)行狀態(tài)。

wKgZomTnFqSAESfKAAFAftMgRv4541.jpg

8)程序測試。輸入A=1,B=1,運行軟件。軟件運行時,程序沒有執(zhí)行。當(dāng)用于觸發(fā)的A達到“值改變”的條件時,程序運行,sum得到數(shù)據(jù)為2。

wKgaomTnFqSAe_LiAAD_i-z5EHM316.jpg

9) 后續(xù)改變A的數(shù)值,發(fā)現(xiàn)整個sum沒有發(fā)生變化,A的數(shù)據(jù)是以值的類型傳入的,后面再改變數(shù)據(jù),也無法改變最初傳入的數(shù)據(jù)值。

wKgaomTnFqeAFcBpAAB4W6jkJHU658.jpg

10)修改B的數(shù)據(jù),再修改A觸發(fā)程序,可以以看到程序運行。說明只需要注冊一次,程序可以觸發(fā)多次。

wKgZomTmHWuAIWsAAAFPqHy_OUg638.png

11)在常規(guī)用事件結(jié)構(gòu)處理的事件,在“事件檢測窗口”中,都是有記錄的。但是利用事件回調(diào)是沒有記錄的,說明這個事件回調(diào)和事件結(jié)構(gòu)沒有直接關(guān)系。

wKgZomTnFqSAJj0-AAJGzp9lQ2w136.jpg
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • LabVIEW
    +關(guān)注

    關(guān)注

    1995

    文章

    3670

    瀏覽量

    333177
  • 調(diào)試
    +關(guān)注

    關(guān)注

    7

    文章

    607

    瀏覽量

    34518
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3824

    瀏覽量

    82418
  • 回調(diào)函數(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    88

    瀏覽量

    11825
收藏 1人收藏

    評論

    相關(guān)推薦
    熱點推薦

    GUI調(diào)函數(shù)

    GUI調(diào)函數(shù)在哪里編寫?
    發(fā)表于 03-21 12:37

    調(diào)函數(shù)

    C++內(nèi)編寫的DLL中有很多事件都是通過調(diào)函數(shù)來反饋,LABVIEW如何可以調(diào)用呢?
    發(fā)表于 11-06 15:36

    labview怎么處理dll調(diào)函數(shù)輸出值

    ); PrintLastFlashError(false);} }請問調(diào)函數(shù)一的參數(shù)值progressInPercent, remainingTimeInS,
    發(fā)表于 02-19 10:21

    關(guān)于labview調(diào)用dll的事件并回調(diào)問題

    我用c#寫了一個dll,其中方法add中有一個事件MyEvent(圖1),我在labview調(diào)用了這個方法并使用了事件調(diào)(圖2),
    發(fā)表于 11-22 10:55

    詳解java 調(diào)機制

    代碼示例 接下來看一下調(diào)的代碼示例,代碼模擬的是這樣一種場景:老師問學(xué)生問題,學(xué)生思考完畢回答老師。 首先定義一個調(diào)接口,只有一個方法tellAnswer(int answer),
    發(fā)表于 09-28 13:14 ?0次下載

    LabWindows/CVI 程序 調(diào)函數(shù)設(shè)計

    調(diào)函數(shù)是系統(tǒng)框架設(shè)計中非常重要的一種手段,所謂調(diào)函數(shù)(callback )是指一個通過函數(shù)指針調(diào)用的函數(shù)。
    發(fā)表于 05-03 16:54 ?1.1w次閱讀
    LabWindows/CVI 程序 <b class='flag-5'>回</b><b class='flag-5'>調(diào)</b>函數(shù)設(shè)計

    調(diào)函數(shù)的詳細資料說明

    異步事件的處理,首先將異步事件發(fā)生時需要執(zhí)行的代碼編寫成一個函數(shù),并將該函數(shù)注冊成為調(diào)函數(shù),這樣當(dāng)該異步事件發(fā)生時,系統(tǒng)會自動調(diào)用事先注冊好的調(diào)函數(shù)。
    發(fā)表于 02-28 08:00 ?6次下載
    <b class='flag-5'>回</b><b class='flag-5'>調(diào)</b>函數(shù)的詳細資料說明

    5個使用帶有中斷的調(diào)的技巧

    調(diào)是對更高級別軟件傳遞到函數(shù)的可執(zhí)行代碼的引用。這些調(diào)能夠極大地提高嵌入式軟件的可移植性和重用性,但是根據(jù)它們的定義,它們需要使用函數(shù)指針,如果不仔細使用,可能會非常危險。以下是在
    的頭像 發(fā)表于 08-09 09:18 ?5412次閱讀
    5個使用帶有中斷的<b class='flag-5'>回</b><b class='flag-5'>調(diào)</b>的技巧

    C語言函數(shù)的調(diào)函數(shù)

    來源:嵌入式客棧 1 什么是調(diào)函數(shù)?首先什么是調(diào)呢? 我的理解是:把一段可執(zhí)行的代碼像參數(shù)傳遞那樣傳給其他代碼,而這段代碼會在某個時刻被調(diào)用執(zhí)行,這就叫做回
    的頭像 發(fā)表于 09-11 09:57 ?4358次閱讀

    嵌入式開發(fā)軟件調(diào)函數(shù)的使用

    在嵌入式開發(fā)軟件調(diào)函數(shù)是經(jīng)常接觸的一種軟件設(shè)計方法,像我們的事件處理機制基本上都會使用到調(diào)函數(shù)。
    的頭像 發(fā)表于 04-29 08:57 ?2530次閱讀

    根據(jù)調(diào)機制注冊事件并處理調(diào)VI

    通過事件調(diào)注冊函數(shù)(Register Event Callback)注冊一個調(diào)VI,在事件發(fā)生時會運行該回調(diào)VI,通常用于注冊和處理.N
    的頭像 發(fā)表于 11-24 09:15 ?2828次閱讀

    函數(shù)指針和調(diào)函數(shù)的使用方法

    了解開發(fā)語言的朋友應(yīng)該都會對調(diào)函數(shù)有所了解,在很多的程序開發(fā)語言中都能看到調(diào)的身影。很多場景下,當(dāng)某個條件成立以后我們希望代碼執(zhí)行某些指定的部分,這個時候可以考慮使用回
    的頭像 發(fā)表于 04-10 15:08 ?1378次閱讀

    C語言|調(diào)函數(shù)的不同用法

    調(diào)函數(shù)是個高級操作技巧,也是日常項目中常常使用到的技能。之所以說調(diào)函數(shù)是個高級操作技巧,是因為它讓異步操作更加方便,眾所周知程序執(zhí)行分為同步操作和異步操作,同步操作故名思意就是按代
    發(fā)表于 07-10 10:34 ?1484次閱讀

    ??嵌入式調(diào)函數(shù)的實現(xiàn)方法

    調(diào)函數(shù)的命名規(guī)范沒有固定的標準,但是根據(jù)通用慣例和編碼規(guī)范,調(diào)函數(shù)的命名應(yīng)該能夠反映函數(shù)的作用和功能,讓其他開發(fā)者能夠快速理解并使用。
    發(fā)表于 03-04 14:49 ?1061次閱讀

    調(diào)函數(shù)(callback)是什么?調(diào)函數(shù)的實現(xiàn)方法

    調(diào)函數(shù)是一種特殊的函數(shù),它作為參數(shù)傳遞給另一個函數(shù),并在被調(diào)用函數(shù)執(zhí)行完畢后被調(diào)用。調(diào)函數(shù)通常用于事件處理、異步編程和處理各種操作系統(tǒng)和框架的API。
    發(fā)表于 03-12 11:46 ?3798次閱讀
    主站蜘蛛池模板: 欧美日韩高清一区 | 亚洲精品视频在线免费 | 久久这里只有精品国产99 | 精品久久久爽爽久久久AV | 耽美肉文 高h失禁 | 鲁一鲁亚洲无线码 | 亚洲haose在线观看 | 99热精品在线视频观看 | 亚洲VA欧美VA天堂V国产综合 | 岛国大片在线观看完整版 | 洗濯屋H纯肉动漫在线观看 羲义嫁密着中出交尾gvg794 | 秋葵app秋葵官网18在线观看 | 做暧暧免费30秒体验 | MD传媒在线观看佳片 | 亚洲人成网站在线播放 | 果冻传媒2021精品影视 | free性中国hd护士高清 | 99热这里只有 精品 99热这里只就有精品22 | 午夜A级理论片左线播放 | 亚洲AV永久无码精品老司机蜜桃 | 草b是什么感觉 | 午夜福利不卡片在线播放免费 | 亚洲 自拍 欧洲 视频二区 | 国产亚洲精品久久孕妇呦呦你懂 | 久久久96人妻无码精品蜜桃 | 国产成人精品综合在线 | 亚洲国产免费观看视频 | 久久精品无码人妻无码AV蜜臀 | 亚洲欧美日本中文子不卡 | 国产精品人成在线播放新网站 | 少妇的肉体AA片免费 | 驯服有夫之妇HD中字日本 | 国产私拍福利精品视频 | 97在线精品视频免费 | 亚洲三级在线中文字幕 | 1313久久国产午夜精品理论片 | 日韩欧美高清一区 | 樱桃视频高清免费观看在线播放 | 97视频免费观看 | 深爱激情站 | 精品一区二区三区免费观看 |

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品