< 上一個課程 | 下一個課程 >

第 7 課:為發佈者實體新增網域參與者

在這一課,您將為 MyPublisher 發佈者實體新增網域參與者。
  1. 用滑鼠右鍵按一下 PublisherPkg 套件,然後選取新增 > DDS > domainParticipant
  2. 開啟網域參與者元素的「特性」視窗,然後輸入下列資訊:
    1. 一般標籤上,將元素命名為 MyPublishingApplication 注意,依預設目錄欄位中也輸入了相同的名稱,並在類型區域中選取了執行檔
    2. 範圍標籤上,選取 PublisherPkg 如果選取了其他勾選框,請將其清除。按一下確定
  3. 指定 MyPublishingApplication 網域參與者的配置:
    1. MyPublishingApplication 下開啟 DefaultConfig 配置的「特性」視窗
    2. 起始設定標籤上,展開 PublisherPkg 並選取 MyPublisher
    3. 設定標籤上,選取 MSVC9Linux 環境,然後按一下確定
  4. 從 MyPublishingApplication 網域參與者新增相依關係至 MyTopicStructLib 網域參與者。
    1. 用滑鼠右鍵按一下 MyPublishingApplication,並選取新增 > 關係 > 相依關係
    2. 在「新增相依關係」視窗上,選取 MyTopicStructLib in TopicsPkg
  5. 從瀏覽器開啟相依關係的「特性」視窗,並輸入下列資訊:
    1. 一般標籤的造型欄位中,選取預先定義類型中的用法
    2. 確保用法欄位設定為規格,然後按一下確定 此相依關係容許在登錄 MyTopicStruct 並建立 MyTopic 時使用 MyTopicStructLib 的功能。 此相依關係還提供 MyTopicStructLib 的功能,以建立 MyDataWriter。
  6. 產生程式碼:選取程式碼 > 產生 > DefaultConfig
    註: 因為您在這一課中建立了 PublisherPkg 套件,則 DefaultConfig 配置已設定為作用中的配置。
  7. 在 MyPublishingApplication 網域參與者下,用滑鼠右鍵按一下 DefaultConfig 配置,並選取編輯配置主要檔 注意,產生程式碼會建立一個單態類別 MyPublishingApplicationDP。 該類別封套在 DDS::DomainParticipant 實體內。 它提供下列 API:
    • DDS::DomainParticipant* getDomainParticipant():取得該類別的 DDS::DomainParticipant 成員
    • DDS::TopicDescription* lookupTopicDescription(char* topicName):DDS 標準 API 的封套,呼叫 DDS::DomainParticipant::lookup_topicdescription
    • static MyPublishingApplicationDP* instance():單態作業,容許接收此類別的單態實例
在實作主要檔中,可以看到 MyPublishingApplicationDP 建構子中的下列動作:

後面兩個元素是網域參與者元件的範圍中的 MyDataWriter 更新 MyTopic 的表示法結果。

如發佈者實體的圖表形狀所暗示的,為發佈者實體產生的程式碼為類別。此類別包含 DDS::Publisher 指標的屬性,該屬性在建構新的類別實例期間已起始設定。它還包含 MyTopicStructDataWriter 指標 MyDataWriter,以代表您建立的 dataWriter 元素。MyTopicStructDataWriter 指標是在為名為 MyTopicStructLib 的網域參與者元件中的 DDSMyTopicStructLib.idl 檔案產生的文件中定義的。

如果編輯 MyPublisher 的程式碼,您將看到在其建構期間呼叫 MyPublishingApplicationDP,以擷取其 DDS::DomainParticipant 成員,從而建立 DDS::Publisher 元素。 您還會發現此作業:DDS::ReturnCode_t publishMyDataWriter(const MyTopicStruct& data);

此作業是 MyTopicStructDataWriter::write 的封套。此函式是從產生的 DDSMyTopicStructLib.idl 檔案產生的。

課程回顧

在這一課,您學到如何為 MyPublisher 發佈者實體新增網域參與者。
在下一課,您將新增程式碼以向 MyTopic 主題元素發佈資料。
< 上一個課程 | 下一個課程 >

回饋