♦ Thuật toán
Điểm quan trọng nhất của phần mềm này là viết hàm nhận dữ liệu và viết hàm để hiển thị lên màn hình LCD làm việc ở chếđộ 4bit.
Hình 4.4: Thuật toán cho nút gốc trường hợp truyền single hop
♦ Chương trình
- Để nhận dữ liệu : sppReceive(&RXI);
do { /* khong lam gi ca */ } while (sppStatus() != SPP_IDLE_MODE); - Đoạn kiểm tra tín hiệu tại địa chỉ x : for (n = 0; n <= TBC_MAX_NODE_COUNT; n++) { for(p=0;p<4;p++){ if(nodeIDs[n]==p){ // thực hiện hiển thị số liệu và kiểm tra ngưỡng .... //... } else{
// thông báo không có số liệu }
} }
- Đoạn hiển thị lên LCD dùng một số hàm được viết ở trong file thư
viện: lcd.h điều khiển LCD ở chếđộ 4 bit:
+ Để in một xâu ra LCD cần thực hiện các động tác: lcd_init();
lcd_com(a); // a là đặt địa chỉ trên màn hình ta cần in
lcd_puts("xâu cần in ");// phần trong dấu nháy kép là dòng cần in + Để in nhiệt ra LCD cần chuyển dữ liệu thành dạng chuỗi, ở đây
dữ liệu trong biến fTemp được chuyển thành chuỗi bằng lệnh: Char so[15]; // khai báo chuỗi “so”
sprintf(so,"%2.3f",fTemp); // chuyển giá trị biến ra chuỗi - Ví dụ: Với khai báo:
char so[15] // khai báo xâu tên nút mạng và: sprintf(not,"%2d",p);
đoạn chương trình sau được đặt vào vòng lặp để kiểm tra tính an toàn của hệ thống:
// Phan doan he thong: if (fTemp<70){
lcd_init(); // khởi tạo LCD
lcd_com(15); // đặt con trỏ lên dòng đầu lcd_puts(" Nhiet not ");
lcd_puts(not); // in tên nút mạng cần hiển thị
lcd_com(0xC0); // đặt con trỏđầu dòng 2
lcd_puts(" -- An toan -- "); // thông báo nút an toàn delayy(10000); // quan sát trong 10s
} else{ lcd_init(); lcd_com(15);
lcd_puts(" Nhiet Nut "); // in tên nút mạng cần hiển thị
lcd_puts(not); lcd_com(0xC0); // đặt con trỏđầu dòng 2
delayy(10000); }
4.3.3.2. Phần mềm cho hệ truyền nối tiếp nhiều bước (multi hop )
Trường hợp này ta giả sử có hệ truyền 2 bước nối tiếp. Nút 1 truyền cho nút 2 ( nút trung gian), nút 2 truyền tiếp cho nút gốc, nút gốc nhận dữ liệu của nút 1 từ nút 2 và tiến hành hiển thị phân tích để đưa ra các cảnh báo về độ an toàn. Như vậy có 3 phần mềm cần được viết:
¾ Phần mềm cho nút 1 (software 1 multi hop SW1-MH): Cài đặt cho nút 1 SW1-MH = SW1- SH
Về cơ bản phần mềm này chính là phần mềm SW1- SH ở trên với địa chỉ
nút 1 đặt là 1.
¾ Phần mềm cho nút 2 ( software 2 multi hop SW2-MH): Cài đặt cho nút trung gian.
Nhận tín hiệu, kiểm tra địa chỉ nếu, nếu tín hiệu thu được là của nút 1 thì sẽ tiến hành đem dữ liệu đó truyền tiếp. Về cơ bản nút trung gian có cấu trúc giống hệt nút 1 nhưng được cài đặt bằng phần mềm khác để chỉ đóng vai trò vận chuyển mà không có vai trò cảm nhận. Trong phần mềm sẽ không có
đoạn kết nối LM61 với kênh AD1.
¾ Phần mềm cho nút gốc ( software 3 multi hop SW3-MH) : SW3-MH Phần mềm này đảm bảo cho nút 3 nhận dữ liệu liên tục, kiểm tra nếu
đúng dữ liệu do nút 2 gửi đến thì cho phép hiển thị và tiến hành phân tích để