TinyOS節點間通訊相關介面和元件介紹

2021-09-06 13:16:33 字數 2499 閱讀 3176

一.基本通訊介面:

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:提供支援以下的介面:receivepacketampacket

amsenderc:提供支援以下的介面:amsendpacketampacketacks(即packetackowledgements)

amsnooperc:提供支援以下的介面:receivepacketampacket,進行嗅探的元件功能,和元件amreceiverc功能相同,用於接收資料。

amsnoopingreceiverc:提供支援以下的介面:receivepacketampacket。與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 中,定義乙個純虛訊號有效嗎?的確,這個話題非常有意思。通常,我們會定義一些純虛的槽函式,但關於純虛訊號這個話題討論的比較少!...