一.基本通訊介面:
packet
:提供了對
message_t
抽象資料型別的基本訪問。這個介面的命令有:清空訊息內容,獲得訊息的有效載荷區長度,獲得訊息有效載荷區的指標。
//tos/inte***ces/packet.nc:
#include
inte***ce packet
send
:提供基本的自由位址的訊息傳送介面。這個介面提供的命令有:傳送訊息,取消未成功發出的訊息。介面還提供了事件來指示一條訊息是否成功傳送。它也提供了一些便利的函式,來獲得訊息的最大有效載荷區長度以及訊息有效載荷區的指標。
//tos/inte***ces/send.nc:
#include
#include
inte***ce send
receive
:提供最基本的訊息接收介面。這個介面提供了接收訊息後的事件。它也提供了些命令,可以方便地獲得訊息的有效載荷區長度以及訊息有效載荷區的指標。
//tos/inte***ces/receive.nc:
#include
#include
inte***ce receive
packetacknowledgements
:提供了一種機制來要求對每個資訊包的確認。
//tos/inte***ces/packetacknowledgements.nc:
inte***ce packetacknowledgements
radiotimestamping
:為無線電發射和接受提供時間標記資訊。
//tos/inte***ces/radiotimestamping.nc:
inte***ce radiotimestamping
二.活動訊息介面:活動訊息(active message, am)實現多渠道訪問無線電。
ampacket
:類似packet,提供對message_t抽象資料型別的基本的am訪問。這個介面提供的命令有:獲得節點的am位址,am資訊包的目標位址以及am資訊包的型別。除此之外還有,設定am資訊包目標位址和型別,檢查目標位址是否為本地節點。
//tos/inte***ces/ampacket.nc:
#include
#include
inte***ce ampacket
amsend
:類似send,提供了基本的活動訊息傳送介面。amsend與send之間的關鍵區別是,amsend在其傳送命令裡帶有am目標位址引數。
//tos/inte***ces/amsend.nc:
#include
#include
#include
inte***ce amsend
三.支援
am介面的元件:
amreceiverc:提供支援以下的介面:receive,packet和ampacket。
amsenderc:提供支援以下的介面:amsend,packet,ampacket和acks(即packetackowledgements)
amsnooperc:提供支援以下的介面:receive,packet和ampacket,進行嗅探的元件功能,和元件amreceiverc功能相同,用於接收資料。
amsnoopingreceiverc:提供支援以下的介面:receive,packet和ampacket。與amsnooperc元件比,多了乙個activemessagec.receive[amid]。
activemessageaddressc:本模組提供了一些指令可以用來獲取和設定節點的am位址。這個模組不是為一般使用者提供的,它容易破壞網路棧,所以如果不清楚操作的情況下要避免使用它。
所有的介面和元件使用了乙個共同的訊息緩衝抽象,稱為
message_t。
資處料出:
Erlang程序間通訊和節點間通訊學習筆記
在erlang中進行程序間通訊的唯一方法就是訊息傳遞。乙個訊息通過原語 send 傳送給另乙個程序 pid messagesend是乙個會對其引數進行求值的原語。它的返回值是傳送的訊息。原語receive被用於接收訊息。它的語法如下 receive message1 when guard1 acti...
節點間通訊的通道微調
erlang節點間通訊是可以配置的,預設的是inet tcp 當2個節點要溝通的時候,net kernel模組會負責建立必要的連線。inet tcp會呼叫底層的gen tcp進行資料傳送接受。rpc或者節點間的訊息互動都是通過這個port出去的。在分布節點間,有時候會有大量的訊息流動,那麼所有的訊息...
利用Qt進行介面間通訊
介面的作用,就是提供乙個與其他系統互動的方法。其他系統無需 也無法 了解內部的具體細節,只能通過對外提供的介面來與進行通訊。純虛函式 包括槽 很容易理解,那麼訊號呢?在 qt 中,定義乙個純虛訊號有效嗎?的確,這個話題非常有意思。通常,我們會定義一些純虛的槽函式,但關於純虛訊號這個話題討論的比較少!...