按下確定以後, 你會看到一個對話框:
這是對話框可以讓你輸入 DSS 的名稱, 日期 (用以跟其他同名的 DSS 區別), 還可以輸入 Partners (一起合作的 DSS Service) , Alternate Contracts (替代協定)
我們可以都用預設的, 因為我們現在只要寫 Hello World 嘛...
不過在開始撰寫 DSS Service 之前, 我想要先講解 DSS Service 的大體架構: (這張圖來自 RDS 官方文件)
首先, 一個 DSS Service 需要有兩個名稱用來以供辨識, 一個是 Service Identifier ,表示它存在的實體 URL 位置. 所 以每一個 DSS 實體 (Instance) 都會有一個唯一的 Service Identifier, 你可以看成是變數名稱 (Variable Name) , 不要跟 Contract Identifier 搞混了, Contract Identifier 的格式會是像這樣 : http://schemas.tempuri.org/[year]/[month]/[name].html (這樣你知道剛剛對話框要你填日期以及 Organization Domain 是要幹啥用了吧),它才是這個 DSS Service 的功能名稱, 你可以看成是類別名稱 (Class Name). 每 個 DSS 都會有一個狀態 (State), 也會有一堆程式碼 (Service Handlers) 負責對外溝通 (Main Port) ,還可以有通知 (Notifications) , 然後可以有協同運作的 Service (Partners) 這幾大塊. 完成以後你會看到 Visual Studio 幫你生了一個專案像是這樣: 其中 DSSService_HelloWorldType.cs 放的是宣告的程式碼, DSSService_HelloWorld.cs 則是主體程式碼 (當然事後你可以亂改..) 為了完成 Hello World, 我們來把這個 DSS 的 State 加上一個字串的資料成員 (Data Member) 吧, 你可以在 DSSService_HelloWorldTypes.cs 當中找到下面這段程式碼: ///
[DataContract]
public class DSSService_HelloWorldState
{
[DataMember]
public string StrData { get; set; }
}
每個 DSS Service 在啟動的時候, 會呼叫 Start() 這個函式, 所以你在 DSSService_HelloWorld.cs 當中可以找到它:
///
protected override void Start()
{
//
// Add service specific initialization here //
base.Start();
}
現在我們加上 _state.StrData = \"Hello World\"; 如下:
/// ///
protected override void Start()
{
//
// Add service specific initialization here //
base.Start();
_state.StrData = \"Hello World\";
}
Ok, 現在我們完成一個 DSS Service, 這個 Service 的狀態有一個 StrData , 而啟動以後會放入 \"Hello World\透過 VS 2008 建置以後, 它自動會放在你的 VPL bin 目錄下面, 像是這樣:
所以你打開 VPL , 就可以看到 Services 多了一個 DSSService_HelloWorld, 把它拖來到 Diagram 當中,
連上 SimpleDialog, 你會從 DSSService_HelloWorld 看到 Get-Success 連線 (這表示你想要取得該 DSS Service 的狀態 (state)), 連接設定如下:
現在你的 VPL 程式如下: 好啦, 一周後我們又回到了 Hello World ... --> 2008/12/25 01:37| 閱讀數 : 1045 | 我要推薦 | 8 Comments | | 訂閱 DotBlogs Tags: Robotics 關連文章 •••••• [Robotics Studio] 改良自走型機器車 [III] -- Day7 [Robotics Studio] 改良自走型機器車 [II] -- Day6 [Robotics Studio] MSRS 概觀 (Overview) -- Day5 [Robotics Studio] 自走型機器車 -- Day4 [Robotics Studio] 介紹 Activity -- Day3 [Robotics Studio] 開始玩機器人啦 -- Day2 回應 •mxymxy 2009/1/22 下午 03:49 回覆 # re: [Robotics Studio] Hello World Again! (DSS Service version) -- Day8我有 Visual Studio 2008 (or Express Edition) , 但我不可以在新增專案當中看到 Microsoft Robotics Express,为什么 • laneser 2009/1/22 下午 06:17 回覆 # re: [Robotics Studio] Hello World Again! (DSS Service version) -- Day8to mxymxy : 我的順序是 : 先安裝 VS 2008 , 再安裝 robotics developer studio . •mxymxy 2009/1/22 下午 08:09 回覆 # re: [Robotics Studio] Hello World Again! (DSS Service version) -- Day8重装了一遍,成了,不过只有C#,不是能用C++吗?谢谢• laneser 2009/1/23 下午 12:00 回覆 # re: [Robotics Studio] Hello World Again! (DSS Service version) -- Day8to mxymxy : Express 只有 C# , Standard 版本才能用 C++,或其他語言 (希望 M$ 下次能發發善心) •Comix 2009/1/30 上午 01:03 回覆 # re: [Robotics Studio] Hello World Again! (DSS Service version) -- Day8Laneser你好!我是一名初學者,不知用C#編寫DSS SERVICE需要多少C#基礎啊?謝謝!祝新春快樂! • laneser 2009/1/31 下午 12:38 回覆 # re: [Robotics Studio] Hello World Again! (DSS Service version) -- Day8to Comix : 我覺得 C# 寫 DSS 還算有點深度,所以, 個人建議有以下基礎後再學比較不會遇到困難 (由淺至深):1. 基本的 C# 觀念2. 泛型 (Generic)3. 多執行緒 (Multi-thread)4. Enumerator (yield), 以及因為 Enumerator 所造成的 deferred execution 概念 不過, 如果很有興趣, 也可以摸索前進, 倒不一定要循規蹈矩, 只要有熱情跟謙遜, 遇到問題就想辦法了解並解決就好囉. DSS 以及 CCR 都有點算是新的工具用來解決以前遇到的問題, 所以對於初學者或是老手, 都算是從頭學起, 頂多是老人比較占一點點優勢(對於舊問題), 新手的優勢就是沒有包袱 (就像張三丰教太極, 你已經忘光了 XD)... •tinghoo 2009/2/25 上午 04:37 回覆 # re: [Robotics Studio] Hello World Again! (DSS Service version) -- Day8请好,请问那个“新增专案”是在哪,我找不到我现在把所有的都卸载掉,那具体应该都安装哪些呢,顺序?麻烦你了 •tinghoo 2009/2/25 上午 05:53 回覆 # re: [Robotics Studio] Hello World Again! (DSS Service version) -- Day8我知道了,原来是因为大陆的台湾的翻译不一样,麻烦了
因篇幅问题不能全部显示,请点此查看更多更全内容