项目简介
本项目是基于RIOT OS的领导选举系统,可在RIOT OS节点上执行领导选举。借助 shell
和 shell_commands
模块以及各开发板支持的驱动模块,配合Python脚本和一系列辅助脚本,实现网络拓扑生成、节点通信、领导选举等功能,适用于物联网场景下的网络管理和协同工作。
项目的主要特性和功能
- 交互式命令解释器:通过RIOT Shell,用户使用通用shell命令调用函数,还能查看命令的在线帮助。
- 网络信息管理:用
ps
命令查看和分析线程状态及内存情况,用ifconfig
命令配置网络接口。 - 数据传输:
txtsnd
命令可通过单播或多播在链路层直接发送简单字符串,并自动打印接收到的数据包信息。 - 拓扑生成:
mac_topology_gen.py
脚本可生成多种拓扑结构(如环形、线性、二进制树、网格等)的网络配置,可指定网络大小、广播包丢失率、传入包丢失率等参数。 - 领导选举:当协议线程与UDP线程建立通信且发现至少两个邻居节点后,经过固定延迟会自动发起领导选举。
安装使用步骤
1. 编译、烧录和启动应用程序
bash
make all term PORT=your_port
- 对于硬件,PORT
可能为 /dev/ttyUSB0
。
- 对于虚拟的本地Linux节点,需创建taps/tuns,并在 make
语句中设置 PORT=yourTap
。
2. 使用RIOT Shell
在终端中输入 help
命令,查看可用命令及其功能。
3. 生成拓扑结构
bash
python mac_topology_gen.py --s 5 --t ring --d uni --l 20.0 --e /path/to/my/project/binary.elf
根据需要调整参数,生成拓扑结构文件 topology.xml
和清理脚本 cleanup.sh
。
4. 安装拓扑文件
bash
./install_topology topology.xml
5. 定义、启动、管理和停止网络
bash
./riot define topology
./riot start topology
./riot list
./riot stop topology
./riot undefine topology
6. 清理环境
bash
./topology_cleanup.sh
7. 重新设置和启动
若要重新设置和启动RIOT实例,可编辑 setup
文件,设置 PROJ
和 TOPO
变量,然后运行:
bash
./setup
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】