[D.I.D2014] Hướng dẫn sử dụng thư viện simpliciTI Phần 2 - Tạo mạng đơn giản

gochit

Cố Vấn CLB
Chào các bạn :1cool_byebye:, trong bài viết hướng dẫn trước mình đã chia sẻ cách tạo 1 project đơn giản dùng simpliciTI để vượt qua câu hỏi ban đầu mỗi khi bắt đầu làm việc với module RF: Liệu module có chạy được không? :doc. Còn trong bài viết này, mình sẽ chia sẻ cách cấu hình mạng đơn giản dùng simpliciTI.
Đầu tiên là những thứ cần chuẩn bị trước khi bắt đầu, nói đến mạng thì cũng đồng nghĩa với nói đến nhiều điểm, vậy nên để thực hiện tut này cần nhiều kit TM4C123 và nhiều module RF. Các nhóm lọt vào vòng 2 của cuộc thi DID sẽ được hỗ trợ 4 kit RF, và nhiệm vụ còn lại của mỗi nhóm là tìm đủ 4 kit TM4C123 để ghép đôi với 4 bé ấy :4cool_beauty:. Sau khi có phần cứng thì tới gian đoạn chuẩn bị phần mềm. Trong bài viết này mình sẽ dùng ví dụ mẫu của TI để thực hiện, hay còn gọi nôm na là chép code mẫu :). Code mẫu được tải tại địa chỉ sau: http://www.ti.com/tool/SimpliciTI?keyMatch=simpliciti&tisearch=Search-EN ( SimpliciTI cho CCS version 1.1.1).
Sau khi chuẩn bị xong tinh thần, chúng ta bắt đầu với công việc thực hiện.
Tương tự như phần 1, các bạn phải tạo 1 project, add các file cần thiết và các đường dẫn cần thiết như phần 1 ( bạn nào quên có thể lật lại "tài liệu" :D). Sau đó tạo folder simpliciTI và add thêm các file vào project như hình:

Trong cấu hình mạng sắp thực hiện, có 2 loại thiết bị là Access Point và End Device, 2 loại thiết bị này thực hiện 2 chức năng khác nhau, bởi vậy nó cần 2 code khác nhau :5cool_beat_plaster:. Để giải quyết tình trạng đó, bạn có thể làm 2 project hoàn toàn khác nhau, hoặc sử dụng 1 project với 2 config khác nhau, ở đây mình sẽ chia sẻ cách tạo project với nhiều config khác nhau. Đầu tiên cần tách biệt code của tụi nó ra riêng, mình sẽ tạo 2 folder với các file khác nhau như hình:

Tiếp đó là tạo các config, chuột phải vào tên project, chọn build configurations, chọn manage:

Tạo mới 1 config, đặt tên nó là gì tùy thích, ở đây mình đặt là AP và ED, copy thiết lập từ Debug:

Sau khi tạo xong, chúng ta sẽ bắt đầu config cho từng bé. Vô mục project> build config > set active > AP.
.
Do CCS sẽ tự build tất cả file .c trong project nên cần phải loại bỏ các file không cần thiết để "tránh hậu họa về sau :brick:". Bạn chọn chuột phải vào folder ED, chọn exclude from build:

Sau đó include thêm đường dẫn cho folder AP vào Include Options:

Thực hiện tương tự với config ED.
Sau khi thực hiện xong 2 cái config, bây giờ là bước chép code :6cool_boss:. Code chúng ta sẽ chép là ví dụ "AP as datahub", file code có thể tìm thấy tại: SimpliciTI-CCS-1.1.1\Projects\Examples\Applications\main_AP_Async_Listen_autoack.c và SimpliciTI-CCS-1.1.1\Projects\Examples\Applications\main_manyEDs_autoack.c, file config có thể sử dụng tại:SimpliciTI-CCS-1.1.1\Projects\Examples\eZ430RF\AP_as_Data_Hub\CCS\Configuration. Đây là ví dụ mẫu của TI nên nó sẽ có hướng dẫn cụ thể và rõ ràng trong file: SimpliciTI-CCS-1.1.1\Documents\SimpliciTI Sample Application User's Guide.pdf
Các bạn chép nội dung của file SimpliciTI-CCS-1.1.1\Projects\Examples\Applications\main_AP_Async_Listen_autoack.c vào main_ad.c, SimpliciTI-CCS-1.1.1\Projects\Examples\Applications\main_manyEDs_autoack.c vào main_ed.c như được tạo ở trên.
Tiếp theo các bạn import các file SimpliciTI-CCS-1.1.1\Projects\Examples\eZ430RF\AP_as_Data_Hub\CCS\Configuration\smpl_nwk_config.dat vào thư mục app, SimpliciTI-CCS-1.1.1\Projects\Examples\eZ430RF\AP_as_Data_Hub\CCS\Configuration\Access_Point\smpl_config.dat vào thư mục AP, SimpliciTI-CCS-1.1.1\Projects\Examples\eZ430RF\AP_as_Data_Hub\CCS\Configuration\End_Device vào thư mục ED. Sau đó các bạn sử dụng các file này vào thiết lập của project như hình:

Làm tương tự cho AP, lưu ý cá file này là các file text, các bạn có thể edit dễ dàng.
Sau đó bắt đầu build , nạp xuống cho từng con và tận hưởng thành quả :5cool_still_dreaming:.
 
Last edited by a moderator:

NghiaJenius

Ban Chủ Nhiệm
Bạn vô SimpliciTI-CCS-1.1.1\Projects\Examples\Applications chọn file "app_remap_led.h" import vào 2 folder AP và ED là hết lỗi!
 

gochit

Cố Vấn CLB
File đó không liên quan, bỏ đi cũng chả ảnh hưởng tới ai. :D
 

gochit

Cố Vấn CLB
Bạn click vô lỗi thứ 3 xem nó bị ở file nào, có thể là bạn đang dùng nhầm file, file được xài nó phải ở trong thư mục simpliciTI mình đã up trong tut1 nhé :D
 

gochit

Cố Vấn CLB
Bạn check xem thử bạn đã add nwk_frame.c và các include tại 2 folder nwk và nwk_applications vào chưa nhé. Vẫn còn thì up lên cho mọi người cùng giúp :6cool_boss:
 

Phạm Thành Danh

Thành Viên PIF
tình hình là như thế này ạ, cái fram.c nó đánh dấu warning tại dòng : uint8_t loc;
 
Last edited by a moderator:

quang

Thành Viên PIF
anh chị cho em hoi loi nay loi gi zay ( sao em ko go co dau duoc, moi nguoi thong cam)
#20 identifier "MOD2_CONNECTION" is undefined external location: D:\ContestS\IOT\simpiciti_ek-tm4c123gxl\simpiciti_ek-tm4c123gxl\bsp\boards\stellaris_launchpad\bsp_drivers.c
#35 #error directive: "ERROR: Unknown or missing radio selection." external location: D:\ContestS\IOT\simpiciti_ek-tm4c123gxl\simpiciti_ek-tm4c123gxl\mrfi\mrfi_defs.hC/C++ Problem
 

gochit

Cố Vấn CLB
Lỗi thứ 1 thì thêm #define MOD2_CONNECTION 0 vào file simpliciTI_config.h
Lỗi thứ 2 thì cần define thêm MRFI_CC1101 trong mục predefine
 
Top