在我們公司經常用到匯流排,具體的匯流排是什麼讓我理解我也不清楚,但是在這幾個月下來,我已經知道匯流排如何使用,現在加上示例講解匯流排如何使用。
1. 首先我們的新建乙個類,這個類其實是用於匯流排傳遞的模型
using system;
namespace purchasedevices.model.commonmodel
public t data }}
2. 建立乙個類(flowservicebus),裡面來寫匯流排的方法。
public class flowservicebus
}4. 寫乙個方法,裡面掛匯流排
public class flowservicebus
}public void configmsgdispachrule()
///
/// 幀頭
/// 幀開始標記,0xaa
///
public byte packagehead
///
/// 接收者,標識資料要發給誰
/// 1磅碼主機、2定級鍵盤、3交菸刷卡。
///
public byte receiver
///
/// 傳送者,標識資料是誰發出
/// 1磅碼主機、2定級鍵盤、3交菸刷卡。
///
public byte sender
///
/// zigbee通訊位址
/// 1~15
///
public byte zigbeeaddress
///
/// 幀序號
/// 0~255
///
public byte framenumber
///
/// 命令碼
///
public byte command
///
/// 資料區位元組數
///
///
public int datalength
///
/// 資料區,可無(資料區為0)
///
public byte data
///
/// 從receiver到整個data的和校驗
///
public byte crc
///
/// 定長 除開資料區的長度 定長為11
///
public int fixedlength
//我們現在要做的是 根據不同的傳送者sender ,進入不同的方法
private void dissendertodisway(farmercardorratesellmodel farmercardorratesellmodel)
}//當sender為carddev要執行的方法
public class carddev
break;
case devtypeenum.leveldev:
if (onreceiveleveldataeventhadler!=null)
}//我們要寫兩個方法 ,這兩個方法就是sender為leveldev 和carddev,他們拿到資料自己需要怎麼處理的方法了
//當sender為carddev要執行的方法
public class carddev
}//新建物件
private readonly dissendertodisway _dissendertodisway=new dissendertodisway();
private readonly carddev _carddev=new carddev ();
private readonly leveldev _leveldev=new leveldev ();
public void configmsgdispachrule(){
eventbroker eventbroker =new eventbroker();
eventbroker.specialcasesregistrar.addpublication("傳送者為carddev 的方法", _dissendertodisway,
"onreceivecarddataeventhadler", handlerrestriction.none);
eventbroker.specialcasesregistrar.addsubscription>("傳送者為carddev 的方法",
_carddev, _carddev.carddevway, new onpublisher());
//這是一組對應的 可以這樣理解 :當執行到dissendertodisway 類裡面的onreceivecarddataeventhadler事件時,就執行carddev 裡面的carddevway方法
//按照以上的裡面 當我們執行dissendertodisway 類裡面的onreceiveleveldataeventhadler事件時,接下來我們應該執行leveldev類裡面的leveldevway方法南
eventbroker.specialcasesregistrar.addpublication("傳送者為leveldev 的方法", _dissendertodisway,
"onreceiveleveldataeventhadler", handlerrestriction.none);
eventbroker.specialcasesregistrar.addsubscription>("傳送者為leveldev 的方法",
_leveldev, _leveldev.leveldevway, new onpublisher());
匯流排這個要慢慢理解,剛開始我也不知道如何將兩個方法掛接起來的,慢慢的理解就行了。在平常**中我們很少使用匯流排,但是對於有些公司可能還是經常會用到的,對於那些剛剛接觸到匯流排的朋友們,希望對你們初步理解與簡單使用有幫助。
事件匯流排 EventBus
在非父子元件需要進行通訊的時候,除了vuex之外,還有就是事件匯流排了 eventbus 又稱為事件匯流排。在vue中可以使用 eventbus 來作為溝通橋梁的概念,就像是所有元件共用相同的事件中心,可以向該中心註冊傳送事件或接收事件,所以元件都可以上下平行地通知其他元件,但也就是太方便所以若使用...
vue 事件匯流排 eventBus
父元件向子元件傳遞引數用v bind 子元件向父元件傳遞引數用this.emit 兄弟元件傳參eventbus或者是用vuex進行傳遞 下邊說說eventbus 首先在src的assets的目錄下新建乙個vue bus.js檔案 import vue from vue export default ...
Vue事件匯流排(EventBus)
參考 問題背景 vue中除父子元件通訊外,任意兩個元件間的通訊問題。解決方案 1.使用vuex,共享乙個狀態,通過修改和監聽這個狀態實現元件通訊。2.事件匯流排。思路 根據vue.js文件,vm.on vm.off都是其實例方法,因此我們需要乙個vue例項作為事件匯流排物件。使用方式 第一種 將事件...