在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

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

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

LabVIEW Actor Framwork:邊學(xué)邊做server和client

yk74110 ? 來源:yk74110 ? 作者:yk74110 ? 2023-06-01 15:49 ? 次閱讀

LabVIEW Actor Framwork (1)________ 邊學(xué)邊做server&client

初始需求:

現(xiàn)在要做一個(gè)類似聊天的demo,一個(gè)server端,若干個(gè)client端;首先是server啟動(dòng),通過server可以打開若干個(gè)client端,然后每個(gè)client可以獨(dú)立給server發(fā)送數(shù)據(jù)。server收到數(shù)據(jù)打印出來帶有client id的信息

必然想到,這里出現(xiàn)了2個(gè)Actor,一個(gè)server,一個(gè)client;

下面,我們來編寫和測(cè)試第一個(gè)actor——server

一、打開LabVIEW2016,新建一個(gè)proj:

pYYBAGQeT9WAWJnhAAcO9MedGJo046.png

并保存到硬盤文件夾。

二、右鍵項(xiàng)目中的My Computer新建Actor:

poYBAGQeUCWAfW6UAALXv0G9eA0869.pngpoYBAGQeUCWABO9zAALZkjB0Clc980.pngpYYBAGQeUCWATzrrAAGnqxHaEGY972.png

最后建立好的文件目錄如上圖,硬盤存儲(chǔ)文件夾的定義如下:

data——存放定義該Actor的私有數(shù)據(jù)類型;

mothods——方法;

overides——重寫的方法;

server test——用于自測(cè)試的vi;

note:當(dāng)然,你也可以不這么存儲(chǔ)和放置,但最好這么做,清晰不會(huì)為后面產(chǎn)生混亂與沖突;

此時(shí)項(xiàng)目的如下:

poYBAGQeUE2AQ4zPAAi4DOSKQJw158.png

三、定義私有數(shù)據(jù):

一般將私有數(shù)據(jù)放到一個(gè)簇里面進(jìn)行管理,這樣做是為了方便以后拓展;

poYBAGQeUGOAbqHVAAppDvmq6pk837.png

如上圖:私有數(shù)據(jù)有分別為:

message:字串類型,用來存儲(chǔ)server收到的信息,注意,這個(gè)信息可以是外部發(fā)來的,也可以是自己發(fā)送給自己的;比如,我們?cè)趯懞昧诉@個(gè)Acotor server后,可以行單元測(cè)試,此時(shí)就是自己給自己的actor發(fā)送一個(gè)消息,看看能否正常收到。

User event top:停止的用戶事件

User event message:發(fā)送信息的用戶事件

四、重寫方法:

一般就重寫的vi就是這三個(gè):

pYYBAGQeUG2ABK6IAAD_9pNGYk0175.png

初始化——core核心(也就是你要實(shí)現(xiàn)的功能在此處重寫)——stop停止機(jī)制

1.Pre Launch Init.vi

pYYBAGQeUHOAdih4AAeaRn6eog0383.png

將對(duì)象進(jìn)行初始化,采用Bundle By Name節(jié)點(diǎn)進(jìn)行捆綁;

pYYBAGQeUIyAep1ZAAHW3nkVlao431.pngpoYBAGQeUL6ANBASAABQXVF23Zg280.png

2. Stop Core.vi

在server out后面采用

poYBAGQeUMqAcYwfAAYEfUNwq40562.png

來解捆綁,得到用戶事件句柄,然后此處產(chǎn)生一個(gè)停止事件,這樣,該類中所有有響應(yīng)這個(gè)用戶事件的都能做出自己的處理。

目前這個(gè)例子中,此處的stop用戶事件是為了到時(shí)候停止Actor Core.vi 中的while循環(huán);

(如果你此處還沒有理解, 不用著急,看到后面再回來就能恍然大悟。)

pYYBAGQeUOCADx4hAAm5y9vCvJw602.png

3. Actor Core.vi

這個(gè)便是咱們的actor要實(shí)現(xiàn)功能所在的地方。我們需求是要接收到一條消息,然后把它顯示記錄下來。那么我需要建立一個(gè)簡單的循環(huán)+事件結(jié)構(gòu),用來響應(yīng)用戶事件,這里有兩個(gè)用戶時(shí)間,一個(gè)是message,一個(gè)是stop;

程序框圖如下:

pYYBAGQeUOCADx4hAAm5y9vCvJw602.pngpoYBAGQeUTWAfXOzAAm5y15CdFo366.pngpYYBAGQeUTWAIEvDAAm5y9GLXNI887.pngpYYBAGQeUTWAXCGuAAm5y_Lm8zI515.pngpoYBAGQeUTWAfBnjAAm5y7X1774657.png

注意的幾點(diǎn):

2 用戶事件在使用之前請(qǐng)先行注冊(cè),最后程序退出時(shí)銷毀事件。

2 所有的Actor對(duì)象的使用請(qǐng)連線在Actor Framework.lvlib:Actor.lvclass:Actor Core.vi

之前,因?yàn)楦割惖倪@個(gè)core也在一直運(yùn)行,數(shù)據(jù)流驅(qū)動(dòng)的LabVIEW編程決定這樣編寫;

2 用戶事件: User Event ,此處直接可以從事件結(jié)構(gòu)元素message端得到內(nèi)容的。

那么message是怎么發(fā)送的呢?接下來說明如何“創(chuàng)建方法的消息隊(duì)列”

五、創(chuàng)建類的消息隊(duì)列:

首先在server 類的method虛擬文件夾下,創(chuàng)建動(dòng)態(tài)方法,操作如下圖:

pYYBAGQeUUKAYOomAAccheBjvdo709.png

保存自動(dòng)生成的vi到硬盤實(shí)際文件夾的mothods目錄:

poYBAGQeUU6ATVvKAANJuKOcswA322.png

接下來編輯此方法vi,如下:

pYYBAGQeUV6AFWWbAAodLz_GvVE483.png

保存,然后在project中對(duì)此方法點(diǎn)擊右鍵創(chuàng)建消息隊(duì)列;

pYYBAGQeUWeAPixkABUK-xIHQN4020.png

創(chuàng)建好了以后,保存到硬盤。一般會(huì)在server類同級(jí)目錄:

pYYBAGQeUXOAMvHcAAq5s5sNRhw210.png

然后在send message to server Msg.lvclass定義私有數(shù)據(jù),此處就一個(gè)message,我們用一個(gè)string輸入控件即可;至此,創(chuàng)建send message的消息隊(duì)列完成。

send message to server Msg.lvclass->Send send message to server.vi便是我們用來給server 這個(gè)Actor發(fā)送消息的方法。

至此,整個(gè)server的actor開發(fā)完成。

接下來我們編寫一個(gè)測(cè)試vi,用來啟動(dòng)server actor,停止,和發(fā)送一個(gè)消息測(cè)試是否正常?

測(cè)試vi取名test launch & send msg to server.vi存放在server類的下面:

poYBAGQeUY2AAU49ABAP3ny2djY689.png

注意,server作為root來啟動(dòng),所以采用:

poYBAGQeUZmAFlCYAAnJzn6IUyg936.png

分別測(cè)試上述3個(gè)功能,這樣便能每個(gè)Actor自行保證OK;

pYYBAGQeUaGADcBQAA0lYjSbM_A960.png

至此,Actor server測(cè)試完成,如果是多人協(xié)同開發(fā)的時(shí)候,此時(shí)就可以將自己編寫的這個(gè)actor發(fā)布給別人使用。

接下來,我們?cè)賮砭帉慶lient,這部分內(nèi)容我們下節(jié)再講。

審核編輯:湯梓紅

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

    關(guān)注

    1971

    文章

    3654

    瀏覽量

    323781
  • 硬盤
    +關(guān)注

    關(guān)注

    3

    文章

    1310

    瀏覽量

    57324
  • Server
    +關(guān)注

    關(guān)注

    0

    文章

    90

    瀏覽量

    24040
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    sushu---Actor Framework基本介紹

    。修改后的Actor Framework,需要替換掉LabVIEW自帶的(可以做個(gè)備份)。只是增加了一個(gè)功能。修改后JKI State Machine,需要替換掉,沒有安裝JKI 的直接放在對(duì)應(yīng)目錄即可
    發(fā)表于 01-03 20:05

    labview的TCP/IP通信server端怎么知道是哪個(gè)client發(fā)過來的信息呢,謝謝!

    普通的網(wǎng)絡(luò)通信助手都能顯示client發(fā)過來的IP,請(qǐng)問在labview下面怎么實(shí)現(xiàn)在server端顯示client IP?這些是用網(wǎng)絡(luò)助手顯示的【Receive from
    發(fā)表于 05-24 19:51

    使用LABVIEW2017打開I/O server,選擇OPC Client時(shí)報(bào)錯(cuò),請(qǐng)問是為什么?如何解決?

    使用LABVIEW2017打開I/O server,選擇OPC Client時(shí),會(huì)出現(xiàn)如下報(bào)錯(cuò):該如何是好啊~!
    發(fā)表于 07-06 16:45

    s7-1200和s7-1500和labview,3者之間互為Client /Server,Modbus-tcp通訊,已經(jīng)過本人實(shí)操驗(yàn)證

    注意:1. 1200和1500可以互為ClientServer用來讀寫數(shù)據(jù)。2. 1200和Labview進(jìn)行通訊,Labview是2018版本,
    發(fā)表于 08-29 11:17

    labview 中OPC server 自動(dòng)變化

    labview OPC server配置中選擇的OPC server是OPCDASVR.CT.1,但是打開OPC quick client 后變成National
    發(fā)表于 02-24 12:53

    學(xué)干系列LabVIEW三合一(儀器控制+報(bào)表生成+界面本地化)

    `此文件為學(xué)干系列LabVIEW合計(jì)(三合一),包含內(nèi)容:儀表控制、報(bào)表生成及界面本地化。掃描二維碼 加管理員微信免費(fèi)領(lǐng)取(備注“
    發(fā)表于 03-07 19:04

    學(xué)C語言

    學(xué)C語言
    發(fā)表于 03-10 11:35 ?272次下載

    Client Server模型數(shù)據(jù)實(shí)現(xiàn)技術(shù)

    本論文主要討論基于Client/Server 數(shù)據(jù)完整性約束及其如何實(shí)施企業(yè)業(yè)務(wù)規(guī)則,并以SQLServer 和PowerBuilder 為例,介紹了數(shù)據(jù)完整性約束的實(shí)現(xiàn)技術(shù)。
    發(fā)表于 09-18 10:42 ?9次下載

    LabVIEW Actor framework 定時(shí)消息Demo

    使用LabVIEW2015編寫,Actor framework框架的Demo。 演示了ActorCore方法在不需要響應(yīng)前面板事件時(shí)的程序?qū)懛ǎú恍枰獁hile循環(huán))。 根操作者啟動(dòng)定時(shí)操作者
    發(fā)表于 12-15 22:57 ?53次下載

    LabView TCP數(shù)據(jù)傳輸?shù)?個(gè)實(shí)例詳細(xì)資料概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是LabView TCP數(shù)據(jù)傳輸?shù)?個(gè)實(shí)例資料概述包括了:TCP Client 單向通信,TCP Client 1 一對(duì)多通訊,TCP Client 全雙工
    發(fā)表于 06-12 08:00 ?513次下載
    <b class='flag-5'>LabView</b> TCP數(shù)據(jù)傳輸?shù)?個(gè)實(shí)例詳細(xì)資料概述

    手把手教你學(xué)LabVIEW視覺設(shè)計(jì)

    手把手教你學(xué)LabVIEW視覺設(shè)計(jì)手把手教你學(xué)LabVIEW視覺設(shè)計(jì)手把手教你學(xué)LabVIEW
    發(fā)表于 03-06 01:41 ?3142次閱讀

    基于LABVIEW的SQL Server數(shù)據(jù)庫操作教程

    基于LABVIEW的SQL Server數(shù)據(jù)庫操作教程
    發(fā)表于 09-13 14:54 ?92次下載

    LabVIEW中創(chuàng)建Actor Framework的抽象消息及接口

    由于面向?qū)ο笮枰档婉詈闲裕敲椿陬惖牟僮髡咭残枰紤]如何降低耦合性。當(dāng)Nest Actor給Root Actor發(fā)送消息時(shí),需要調(diào)用Root Actor的消息類的Send ***.vi,這就導(dǎo)致了Nest
    的頭像 發(fā)表于 09-23 10:51 ?7250次閱讀

    AT32講堂023 | AT32 MCU TCP client與TCP server如何與PC端通信

    概述使用TCP執(zhí)行通訊時(shí),會(huì)有ServerClient的差別。Server是經(jīng)由開啟特定的Port來等待來自Client端的連線需求;而Clien
    的頭像 發(fā)表于 08-19 09:52 ?1230次閱讀
    AT32講堂023 | AT32 MCU TCP <b class='flag-5'>client</b>與TCP <b class='flag-5'>server</b>如何與PC端通信

    Eureka Client的創(chuàng)建案例

    在上篇中已經(jīng)講了 Eureka Server 的配置文件讀取。接下來講講 Eureka Client 的創(chuàng)建。每一個(gè) eureka server 都是一個(gè) eureka client
    的頭像 發(fā)表于 10-09 17:03 ?517次閱讀
    Eureka <b class='flag-5'>Client</b>的創(chuàng)建案例
    主站蜘蛛池模板: 神马午夜影院| 在线播放黄色网址| 在线观看视频一区二区| 3344在线| 黄色hd| 中文字幕一区二区三区有限公司| 欧美xingai| 色综合久久网女同蕾丝边| 男女视频免费观看| 在线观看国产久青草| 性午夜影院| 人人澡人| 婷婷97狠狠的狠狠的爱| 亚洲成色www久久网站| 四虎永久在线免费观看| 欧美综合视频| 久久lu| www.av小视频| 一级免费黄色片| 日日干狠狠操| free性日韩| 国产一级毛片午夜福| 97人洗澡人人澡人人爽| 22sihu国产精品视频影视资讯| 国产精品一区在线播放| 四虎永久免费在线| 免费三级毛片| 1024人成网站色| 美女一级毛片免费观看| 国产黄色网| 伊人久久大香线蕉综合bd高清| 色综合久久综合欧美综合图片| 美女艹逼视频| 夜夜夜夜操| 大杳蕉伊人狼人久久一本线| 特大一级aaaaa毛片| 午夜精品影院| 精品四虎免费观看国产高清午夜| 伊在线视频| 五月婷婷欧美| 亚洲欧美视频在线|