2015年11月20日 星期五

[WPF] 利用介面檔,在不同專案間傳值. Passing Values Between Multiple Projects by Interface

Step 1. (建立介面檔) 新增專案 -> 選擇類別庫 -> 確定.

Step 2. 建立後會是一個類別(Class), 將類別改為介面(Interface),並新增一成員(passValue),如下圖所示.

Step 3. 完成後執行(快捷鍵 F5),會出現下圖訊息,不用太在意,按OK.

Step 4. 到該專案的Debug目錄下,即可看到產生一個.dll,之後會用到. 

 Step 5. 建立第一個專案,記得選WPF應用程式.

 Step 6. 接著,加入剛建立.dll檔.

 Step 7. 將剛建立.dll (Interface.dll) 打勾->確定.

Step 8. 加入程式碼,如下圖.

Step 9. 執行(F5).

 Step 10. 執行後,會在該專案的Debug目錄下產生.exe檔 (getValue.exe),在另一個專案會用到.

Step 11. 建立第二個專案.

 Step 12. 加入getValue.exe和Interface.dll 到該專案的參考.

  Step 13. 將getValue.exe和Interface.dll 打勾加入到該專案的參考.

Step 14. 加入程式碼,如下圖. (完成).

Step 15. 執行結果.

P.S.,有原始碼附件 Source Code

2015年10月23日 星期五

2013年1月6日 星期日

To Solve Invalid PSDU/MPDU

[wpan/p802_15_4phy.cc::PD_DATA_request][13.009094](node 3) Invalid PSDU/MPDU length: type = message, src = 3, dst = -1, uid = 104, mac_uid = 103, size = 255

造成上述錯誤發生的可能因素有:
1.封包大小過大,須設定packetSize_ ( EX.: packet max length is 127 in DSR routing protocol )
2.封包無法傳送到基地台. 如果基地台附近的節點沒啟動,導致封包無法被轉送到基地台,則會造成以上錯誤,所以必須讓基地台附近的節點START UP.

2012年12月8日 星期六

Every node was set initial different energy


$ns node-config -initialEnergy 100
set first_node_(0) [$ns node]

# set initial energy for second node
$ns node-config -initialEnergy 200

set second_node_(1) [$ns node]


# set initial energy for third node
$ns node-config -initialEnergy 150
set third_node_(2) [$ns node]

2012年5月7日 星期一

解決:無法stat ’ns’:沒有此一檔案或目錄

是因為缺少了左邊ns那這個檔案

2012年4月21日 星期六

Sensor node 位置隨機散佈

for {set i 0} {$i < $val(nn) } { incr i } {
        set n($i) [$ns node]
}

for {set i 1} {$i < $val(nn) } { incr i } {
    $n($i) set X_ [ expr {$val(x) * rand()} ]
    $n($i) set Y_ [ expr {$val(y) * rand()} ]
    $n($i) set Z_ 0
}

#Lable the sink node
$n(0) set X_ [expr {$val(x)/2} ]
$n(0) set Y_ [expr {$val(y)/2} ]
$n(0) set Z_ 0
$ns at 0.0 "$n(0) NodeLabel Sink"

# defines the node size in nam
for {set i 0} {$i < $val(nn)} {incr i} {
   $ns initial_node_pos $n($i) 10
}

2012年4月3日 星期二

NS-2 The first part: pre-definition

1.建立一個模擬器物件 (Must)
   set ns [new Simulator]

2.開啟一個nam trace 檔案 (Option)
   set nf [open out.nam w]
   ns namtrace-all $nf

3.宣告一個finish程序(Must)
   proc finish{}
   {
        global ns nf    #設nf為全域變數
        $ns flush-trace
        #close the trace file
        close $nf
        #execute nam on the trace file
        exec nam out.nam &
        exit 0
   }

data source: http://www.scribd.com/doc/76224756/Network-Simulator-NS-2