无线通信0号节点接收其他节点的ID号,并printf打印出来(含核心代码)_物联网挑战赛第四届(2020)第二题

简介: 无线通信0号节点接收其他节点的ID号,并printf打印出来(含核心代码)_物联网挑战赛第四届(2020)第二题

目录


题目

赛题

格式说明

计分规则

评分步骤

题目解析

核心代码


正文


题目


赛题


443.png

    如图所示,平台节点不安装天线,已知0号节点位于左上角,其他11个节点ID号随机(0<ID<255),参赛队需编写所有12个节点的代码,完成节点间的信息传递,并通过0号节点打印输出ID号未知的11个节点的ID号,以表明完成了节点间的数据通信。

       1) 12个节点只允许编写一份代码;

       2)本题开销指的是12个节点无线通信发送数据包的总和;

       3)代码中可通过宏TOS_NODE_ID 获取节点自身ID号;

       4)参赛队编写的和结果无关的printf 调试语句,必须在最终代码中注释掉,

以免造成最终结果输出错误;


格式说明


   1) Printf输出的格式为:标志位(ID)+11个ID号(十进制,空格隔开顺序不限,结尾应加上换行符“\n”以表明语句的完结)输出结果示例:ID135678 10 20 12 33 44

若0号节点输出的ID号个数低于11个,则只核对这几位的ID号的正确性;

若0号节点输出的ID号个数超过11个,则只会取前11个作为依据,并去掉重复和错误的ID号来计算得分。

       2)0号节点可重复输出结果,多次输出结果时评冗在予只云以u了m日人l山口

有ID标志位的行作为判分依据;


计分规则


本赛题满分为30分,其中正确性得分22分,开销得分8分;


       1)正确性得分:共22分,正确性得分不小于14分才可以获得开销分;正确性得分=2 ×mm为正确的ID号数量

       2)开销得分:共8分,开销超过200得分0分,小于200按如下公式计算:开销得分=8×30-"(200-nrn20nm >7)n为12个节点的开销总和


评分步骤


1)烧录Null程序,清空所有节点状态;

2)编译烧录参赛队代码(所有节点);

3)对12个节点进行Printf 监听并开始计时;

4)检测到0号节点输出ID标志位或10秒时间到停止评分,核对结果和开销,计算出得分;


题目解析


    12个节点编写一套代码,但据题意很明显0号节点与其他节点的代码不一样,0号节点只负责无线接收,而其他11个节点负责无线发包。


核心代码


主要是利用数据汇聚的知识点

这一部分是设置根节点与非根节点的

 event void Timer1.fired() {
        if (rootid == 0) {
            call RootControl.setRoot();         //设置位根节点
            rootid = TOS_NODE_ID;               //用宏定义将自己ID号存储在变量rootid中
            rms->rootid = rootid;
            rms->stop = stop;
            call Update.change(rms);            //?
        }
        if (TOS_NODE_ID != rootid && rootid != 0) {     //节点ID不等于0,并且rootid也不为0(rootid初始化位0)
            call RootControl.unsetRoot();               //设置为非根节点
            call Leds.led0On();
        }
        call Timer0.startPeriodic(2000);
    }

这一部分是只有根节点会相应的Receive.receive函数

event message_t* Receive.receive(message_t* msg, void* payload, uint8_t len) {      //Receive.receive只有根节点相应
        uint16_t flag = 0, i = 0;
        call Leds.led1Toggle();
        if (len == sizeof(EasyCollectionMsg))       //接收到的包的长度是否和节点结构体的长度一样
        {
            EasyCollectionMsg* btrpkt= (EasyCollectionMsg*)payload;
            for (i=0; i<count; i++) {               //判断是否是已接受的ID号,如果是,则flag==1;
                if (btrpkt->nodeid == nodes[i]) {
                    flag = 1;
                    break;
                }
            }
            if (flag == 0 && btrpkt->nodeid != 0) {                    //接收到的是新节点的id号
                nodes[count] = btrpkt->nodeid;  //加到nodes数组里面去
                count++;
            }
            if (count > 10) {                  //如果已经收集到11个ID号了
                stop = TRUE;
                for (i=0; i<11; i++) {
                    rms->data[i] = nodes[i];
                }
                rms->stop = stop;
                call Leds.led2On();
                call Update.change(rms);
            }
            flag = 0;
        }
        return msg;
    }
相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
1月前
|
人工智能 物联网
【2022年无线通信和与物联网专场】中国工程院张平院士-AI使能6G演进与应用
中国工程院张平院士关于"AI使能6G演进与应用"的演讲摘要。
75 8
|
1月前
|
物联网 5G
【2022年无线通信和与物联网专场】东南大学尤肖虎教授-超高可靠、超低时延5G/6G移动通信基础理论研究与发展
东南大学尤肖虎教授在2022年无线通信和物联网专场中就超高可靠、超低时延的5G/6G移动通信基础理论研究与发展的讲座内容。
48 3
|
1月前
|
物联网 5G
【2022年无线通信和与物联网专场】北京大学焦秉立教授--同频同时全双工技术现状和展望
北京大学焦秉立教授在2022年无线通信和物联网专场中对同频同时全双工技术现状和未来展望的介绍,涵盖了全双工技术在5G移动通信中的应用及其对提高频谱效率和传输效率的重要性。
39 2
|
2月前
|
边缘计算 运维 安全
云上物联网边缘节点:重塑连接智能世界的桥梁
结语 云上物联网边缘节点作为物联网技术的重要组成部分,正以其独特的优势和潜力推动着物联网的快速发展。面对未来的机遇和挑战,我们需要不断创新和完善边缘节点的技术架构和应用模式,推动物联网技术的深度融合和广泛应用,为构建智慧社会贡献力量。
53 0
|
4月前
|
传感器 存储 监控
编写Arduino代码:构建物联网设备,实现上网行为管理软件对网络的实时监控
使用Arduino和ESP8266/ESP32等Wi-Fi模块,结合传感器监控网络活动,本文展示了如何编写代码实现实时监控并自动将数据提交至网站。示例代码展示如何连接Wi-Fi并检测网络状态,当连接成功时,通过HTTP POST请求将“Network activity detected.”发送到服务器。通过调整POST请求的目标URL和数据,可将监控数据上传至所需网站进行处理和存储。
166 0
|
4月前
|
物联网 定位技术
【技术探讨】一种多节点5Km(1.2M bps速率)实时Sub-G无线通信的物联网通讯解决方案
针对在高速公路上货车行驶过程中收集5公里范围内的GPS定位数据,上报云服务器端,最终实时显示每一辆货车的运行轨迹,用户的项目需求如下:200辆货车(无线从站节点),要求很高的实时性,每秒发5包,每个GPS定位数据报文30个字节,这样200辆车同时上报每秒需要发送30K的字节(200 x 5 x 3 0 =30K字节),30K字节 x 8bit=240 k bps速率。
|
4月前
|
SQL Oracle 关系型数据库
助力工业物联网,工业大数据之ODS层构建:申明分区代码及测试【十】
助力工业物联网,工业大数据之ODS层构建:申明分区代码及测试【十】
80 0
|
3天前
|
传感器 存储 人工智能
智能农业的未来:物联网技术如何革新传统农业
本文探讨了物联网(IoT)技术在农业中的应用及其对传统农业的革新。通过详细分析当前农业面临的挑战,如资源浪费和效率低下,文章阐述了物联网技术如何通过实时数据监控和自动化系统提高农业生产的效率和可持续性。此外,文章还讨论了实施物联网技术时需要考虑的技术、经济和社会因素,以及未来发展趋势。
|
7天前
|
传感器 边缘计算 监控
探索未来网络:物联网技术的革新与挑战
在21世纪的科技浪潮中,物联网(IoT)正迅速成为连接实体世界与数字世界的关键桥梁。本文旨在深入探讨物联网技术的最新进展、面临的主要挑战以及未来的发展趋势。通过分析当前物联网的核心技术,如传感器技术、低功耗广域网(LPWAN)、边缘计算等,本文揭示了这些技术创新如何推动智能城市、智能家居、工业4.0等领域的快速发展。同时,针对数据安全、隐私保护、标准化等关键问题,提出了相应的解决策略和建议。本文最后展望了物联网技术在未来可能带来的社会变革和商业模式创新,强调了跨学科合作的重要性,以实现物联网技术的可持续发展。
|
3天前
|
传感器 物联网 区块链
智能革命的引擎:区块链、物联网与虚拟现实技术的融合与创新##
在21世纪的信息时代,新兴技术正以前所未有的速度改变着我们的生活和工作方式。本文深入探讨了区块链技术、物联网(IoT)和虚拟现实(VR)这三大前沿技术的发展趋势及其在不同领域的创新应用。通过分析这些技术如何相互促进、融合,共同塑造一个更加智能、互联的世界,揭示了它们对未来社会可能产生的深远影响。不同于传统的技术性摘要,本文旨在以一种通俗易懂且条理清晰的方式,引导读者思考新技术背后的哲理性内涵及其对人生意义的启示。 ##
18 0

相关产品

  • 物联网平台