Mô tả mã lập trình mô phỏng

Một phần của tài liệu CÁC ỨNG DỤNG CỦA CÔNG NGHỆ CẢM BIẾN KHÔNG DÂY.doc (Trang 85 - 89)

3.3.1 Thiết lập kênh hiện tượng và kênh dữ liệu

Các node Phenomenon sẽ phát trên một kênh khác với các node cảm biến để tránh sự tranh chấp tại lớp vật lý. Mọi node Phenomenon cần định cấu hình trên cùng một kênh ngay cả khi chúng phát từ các kiểu hiện tượng khác nhau. Lệnh sau thiết lập kênh vô tuyến và kênh của các hiện tượng (Kênh Phenomenon):

set chan 1 [new $val(chan)]

set chan 2 [new $val(chan)]

NS-2.27/

3.3.2 Thiết lập một giao thức MAC cho kênh Phenomenon

Chọn một lớp MAC sử dụng cho việc phát Phenomenom qua kênh Phenomenon. Việc sử dụng 802.11 là không thích hợp vì kênh Phenomena là kênh tự nhiên nên nó phát mà không cần điều khiển tắc nghẽn và tranh chấp.

Các lệnh sau thiết lập các thủ tục điều khiển truy nhập môi trường vô tuyến và môi trường Phenomenon:

set val(mac) Mac/802 11 set val(PHENOMmac) Mac

3.3.3 Thiết lập các node Phenomenon

Sử dụng node-config giống như các node di động nhưng chỉ rõ giao thức định tuyến Phenom, các hiện tượng được phát đi theo các phương thức được định nghĩa trong Phenom/Phenom.cc. Ngoài ra phải định hình kênh và lớp MAC trước khi chỉ ra việc quảng bá Phenomenon. Một ví dụ thiết lập cấu hình node Phenomenon mẫu như sau:

$ns node-config \

-adhocRouting PHENOM \ -Channel $chan 1 \ -llType LL \

-macType $val(PHENOMmac) \

-ifqType Queue/DropTail/PriQueue \ -ifqLen 50 \

-antType Antenna/OmniAntenna \ -phyType Phy/WirelessPhy \ -topoInstance $topo \

-agentTrace ON \ -routerTrace ON \ -macTrace ON \

-movementTrace ON \

-propType Propagation/TwoRayGround

3.3.4 Thiết lập tốc độ và kiểu xung của Phenomenon

Hai tham số sử dụng để thay đổi tuỳ biến Phenomena được chỉ ra a/ Pulserate Float.

- Ploat phải là một số thực

- Mô tả tần số một node Phenomenon quảng bá tín hiệu của nó.

- Mặc định là một lần phát trên 1 giây b/ Phenomenon Pattern

- Pattern: kiểu hiện tượng, phải là một trong các từ khoá sau: CO, HEAVE- GEO, LIGHT-GEO, SOUND, TEST-PHENOMENON tương ứng với oxit carbon CO, động đất nặng, động đất nhẹ, tiếng động và một số kiểu hiện tượng chung khác.

- Tuỳ chọn này được sử dụng chủ yếu cho việc mô phỏng các hiện tượng bội node (nhiều node hiện tượng kết hợp) nên dễ dàng phân biệt việc node cảm biến đang cảm biến hiện tượng nào bằng việc nhìn vào trace file.

- Mặc định TEST-PHENOMENON

Sau đây, minh hoạ việc đặt tham số để phát tín hiệu từ Carbon Oxit 10 lần/s

[$node (0) set ragent ] \ pulserate .1 ;

[$node (0) set ragent ] \ Phenomenon CO ;

3.3.5 Định hình node cảm biến

Nút cảm biến phải được định hình với thuộc tính “Phenom chanell” và thuộc tính “Wireless Channel”. Kênh Phenom Channel phải cùng loại với kênh mà ta ấn định cho Phenomenon. Kênh còn lại được sử dụng để truyền các báo cáo của cảm biến. Cấu hình node cảm biến cần phải chỉ ra một giao thức MAC cho kênh Phenomenon và một giao thức MAC (như MAC/802-11) cho kênh chia sẻ với các node không dây khác.

Điều này được thực hiện với các thuộc tính Phenom mactypemactype.

Phenom mactype phải cùng kiểu với MAC của các node Phenom và Mactype phải cùng kiểu với MAC của các node khác cùng tham gia mạng IP. Các lệnh sau minh họa ví dụ định hình cho một node cảm biến :

$ns node-config \

-adhocRouting $val(rp) \ -Channel $chan 2 \

-macType $val(mac) \ -PHENOMChannel $chan 1 \

-PHENOMmacType $val(PHENOMmac)

3.3.6 Thiết lập các node non-sensor (điểm thu thập dữ liệu, Gateway)

Các node không phải cảm biến hay Phenomenon node không được định hình với một kênh Phenom Channel vì chúng chỉ có giao diện duy nhất đến mạng MANET (Mobile Ad hoc Network - mạng di động sử dụng giao thức định tuyến Ad hoc) được thực hiện với thuộc tính - Phenom Channel "off". Ví dụ:

$ns node-config \

-adhocRouting $val(rp) \ -Channel $chan 2 \

-PHENOMChannel "off"

3.3.7 Gắn kết các tác nhân cảm biến

Lệnh này tạo ra một tác nhân cảm biến cho mỗi node cảm biến và gắn kết tác nhân này với node tương ứng. Ngoài ra, phải chỉ ra rằng tất cả các gói tin đến từ kênh Phenome đều được nhận bởi Sensor Agent.Ví dụ:

set Sensor ($i) [new \ Agent/SensorAgent]

$ns attach-agent $node ($i) \

$Sensor ($i)

[$node ($i) set ll (1)] \ up-target $Sensor ($i)

3.3.8 Gắn kết một tác nhân UDP và ứng dụng cảm biến cho mỗi node

Việc các node cảm biến phản ứng thế nào khi chúng phát hiện ra hiện tượng mục tiêu được định nghĩa trong ứng dụng cảm biến. Ví dụ như chúng sẽ thông báo thông tin về hiện tượng tới điểm thu thập dữ liệu qua UDP.

Thí dụ sau minh hoạ việc thiết lập ứng dụng cảm biến:

set src ($i) [new Agent/UDP]

$ns attach-agent $node ($i) \

$src ($i)

$ns connect $src ($i) $sink

set app ($i) [new \ Application/SensorApp]

$app ($i) attach-agent $src ($i)

3.3.9 Khởi động ứng dụng cảm biến

Nút cảm biến có thể nhận các gói Phenom ngay khi Sensor Agent được gắn tới node. Nhưng node chỉ có phản ứng khi ứng dụng cảm biến được gắn kết và khởi động.

$ns at 5.0 "$app ($i) start \

$Sensor ($i)"

CHƯƠNG 4

ĐÁNH GIÁ CHẤT LƯỢNG DỊCH VỤ QoS CỦA MẠNG CẢM BIẾN KHÔNG DÂY

Một phần của tài liệu CÁC ỨNG DỤNG CỦA CÔNG NGHỆ CẢM BIẾN KHÔNG DÂY.doc (Trang 85 - 89)

Tải bản đầy đủ (DOC)

(100 trang)
w