当前位置: 首页 > news >正文

物联网后端个人第十二周总结

学习工作进度

    物联网方面 

        1.模拟设备通过规则引擎将数据通过mqtt进行转发

        在物联网平台上实现模拟设备通过规则引擎将数据通过mqtt进行转发已经全部完成了,所使用的物联网平台在这方面有不少的问题和bug,也可能是没有按照开发者的想法对平台进行使用才导致出现了问题,也能给我们进行一个提醒,在日后开发我们自己的平台时一定要把使用文档写明白

        2.网关二次开发
        网关二次开发的工作终于圆满结束了上周因为向网关上传的程序有问题,导致网关宕机,与客服交流过之后解决了网关无法工作的问题,并且也解决了c程序编译的问题

        本周首先通过网关技术客服给的调试程序获取到了网关每次对传感器轮询得到的原始数据。得到原始数据之后还要对原始数据进行处理

调试软件界面
调试软件界面
网关从四个传感器获取到的原始数据
网关轮询的得到的原始数据

以下是对数据的处理过程

在这里插入图片描述
数据处理全过程

经过一系列的进制转换,拼接之后将数据封装成JSON格式的,通过网关配置软件中指定的ip地址和端口将数据发送到mqtt-broker上,mqtt-broker再根据配置的topic将消息进行转发

以下为网关二次开发的程序

#include "user_code.h"static void get_mb_cmd_info(unsigned char item,int length,char** res)
{struct zq_mbpoll_info info;	int i;char** arr=malloc(length*sizeof(char*));char *token;char a[50];int num;double result;memset(a,0X00,50*sizeof(char));memset(&info,0x00,sizeof(info));zq_get_mbpoll_item_cmd_info(item,&info);strcpy(a,info.val);dbg_user_printf("%s",info.val);for(i=0; i<length; i++){if (i==0){token=strtok(a, ",");}else{token=strtok(NULL, ",");}num=atoi(token);arr[i]=malloc(5*sizeof(char));sprintf(arr[i],"%x",num);}for(i=0; i<length; i=i+2){res[i/2]=malloc(7*sizeof(char));strcpy(res[i/2],arr[i]);strcat(res[i/2],arr[i+1]);free(arr[i]);free(arr[i+1]);num=strtol(res[i/2],NULL,16);result=num/10.0;sprintf(res[i/2],"%.1f",result);dbg_user_printf("%s",res[i/2]);}
}int mymb_poll_loop_query_end(void){char* res[5];int i;get_mb_cmd_info(0,10,res);char* result;cJSON *root;root=cJSON_CreateObject();cJSON_AddItemToObject(root,"temperature",cJSON_CreateString(res[0]));cJSON_AddItemToObject(root,"humidity",cJSON_CreateString(res[1]));cJSON_AddItemToObject(root,"pressure",cJSON_CreateString(res[2]));cJSON_AddItemToObject(root,"illumination",cJSON_CreateString(res[3]));cJSON_AddItemToObject(root,"CO2",cJSON_CreateString(res[4]));dbg_user_printf("%s",cJSON_Print(root));result=cJSON_Print(root);zq_tcp_send(2,result,strlen(result)*sizeof(char),0,0);dbg_user_printf("end");free(result);cJSON_Delete(root);for(i=0;i<5;i++){free(res[i]);}return 0;
}int app_main(void * pParameter){zq_set_version(24);struct zq_recv_cb cb;memset(&cb,0x00,sizeof(cb));cb.mb_poll_loop_query_end =  mymb_poll_loop_query_end;	 zq_set_recv_cb(cb); 
}
APP_INIT app_init = app_main;

工作学习中遇到的问题

物联网方面 

        1.模拟设备通过规则引擎将数据通过mqtt进行转发

                按照正常流程开发,遇到了很多奇奇怪怪的问题

规则的日志显示发送成功,但实际上并没有接收到

        这时候是发送到本地奇特物联平台带的emqx上,可能平台对消息的发送者进行了鉴权,但是这里无法进行鉴权(可能是平台的bug,也可能是我使用的方法不对),后边换成了其他服务器上独立运行的emqx才顺利接收到消息

        2.网关二次开发

        技术支持客服本身也接这个业务,所以有的时候问的一些问题不给讲全,只是大致讲一下,学长也没有这方面的经验,很多时候都是靠自己摸索

        一方面要回顾以前学习过的c语言基础部分,一方面还要学习没有接触过的高级部分,对内存和指针的管理,还好去年学习c语言的时候认真学了,有点基础,要不然这个项目算是夭折了

总结

总的来说,这两项任务都算是完成了,网关的二次开发有一个月了,规则引擎实现数据流转有半个月了,终于完成了。接下来就是做我们自己的物联网平台,后端的很多技术我都忘了,这段时间也都没有怎么学,要重新拾起来了。

相关文章:

物联网后端个人第十二周总结

学习工作进度 物联网方面 1.模拟设备通过规则引擎将数据通过mqtt进行转发 在物联网平台上实现模拟设备通过规则引擎将数据通过mqtt进行转发已经全部完成了&#xff0c;所使用的物联网平台在这方面有不少的问题和bug&#xff0c;也可能是没有按照开发者的想法对平台进行使用才导…...

Linux C语言 26-可变参数

Linux C语言 26-可变参数 本节关键字&#xff1a;可变参数、va_list、va_arg、va_end 相关C库函数&#xff1a;va_list、va_arg、va_end 什么是可变参数&#xff1f; C语言中的可变参数是指函数能够接受不定数量的参数。在不确定函数参数时&#xff0c;使用“char *format, …...

Gin 学习笔记02-参数获取

Gin 参数获取 1、获取url 参数2、获取动态 url 参数3、获取 form 表单数据 1、获取url 参数 Query()GetQuery()QueryMap()DefaultQuery() package mainimport ("fmt""github.com/gin-gonic/gin""net/http" )func _query(c *gin.Context) {// 1…...

Uniapp Vue3 基础知识点附带实例

包括数据绑定和计算属性、条件渲染和列表渲染、事件处理、表单输入处理、生命周期钩子、自定义指令和过滤器、路由和导航以及状态管理&#xff08;如Vuex&#xff09;&#xff1a; <template><div><!-- 条件渲染 --><div v-if"showMessage">…...

【迅搜03】全文检索、文档、倒排索引与分词

全文检索、文档、倒排索引与分词 今天还是概念性的内容&#xff0c;但是这些概念却是整个搜索引擎中最重要的概念。可以说&#xff0c;所有的搜索引擎就是实现了类似的概念才能称之为搜索引擎。而且今天的内容其实都是相关联的&#xff0c;所以不要以为标题上有四个名词就感觉好…...

MySql之索引,视图,事务以及存储过程举例详解

一.数据准备 数据准备可参考下面的链接中的数据准备步骤 MySql之内连接&#xff0c;外连接&#xff0c;左连接&#xff0c;右连接以及子查询举例详解-CSDN博客 &#xff08;如有问题可在评论区留言&#xff09; 二.存储过程 1.定义 存储过程 PROCEDURE &#xff0c;也翻译…...

AR眼镜双目光波导/主板硬件方案

AR(增强现实)技术的发展离不开光学元件&#xff0c;而在其中&#xff0c;光波导和Micro OLED被视为AR眼镜光学方案的黄金搭档。光学元件在AR行业中扮演着核心角色&#xff0c;其成本高昂且直接影响用户体验的亮度、清晰度和大小等因素。AR眼镜的硬件成本中&#xff0c;光机部分…...

单片机调试技巧--修改bin文件实现断点

fromelf --text -a -c --outputall.dis F103_Moduel\F103_Moduel.axffromelf --bin --outputtest.bin F103_Moduel\F103_Moduel.axf 在启动文件中&#xff0c;修改UsageFault_Handler UsageFault_Handler\PROC; get current contextTST lr, #0x04 ; if(!EXC_RETURN[2])ITE…...

微信小程序:This Mini Program cannot be opened as your Weixin version is out-of-date.

项目场景&#xff1a; 问题描述 升级基础库3.2.0&#xff0c;然后PC端整个小程序都打不开了&#xff0c;点击小程序提示”This Mini Program cannot be opened as your Weixin version is out-of-date. Update Weixin to the latest version.“&#xff0c;并且点击Update Wei…...

04 C++中的四种强制类型转换

系列文章目录 04 C中的四种强制类型转换 目录 系列文章目录 文章目录 前言 一、静态转换&#xff08;Static Cast&#xff09; 二、动态转换&#xff08;Dynamic Cast&#xff09; 三、常量转换&#xff08;Const Cast&#xff09; 四、重新解释转换&#xff08;Reinte…...

电力感知边缘计算网关产品设计方案-边缘计算自控算法模型

边缘计算网关与其他数据采集的IoT网关设备不同之处在于可以根据应用场景和产品解决方案,单独设置一些边缘计算算法模型,实现离线系统和边缘计算自控逻辑判别+执行系统方案,自控算法逻辑单元也是边缘计算网关自控系统方案的核心单元。 自控算法逻辑单元根据产品应用不同,有…...

C语言进阶之笔试题详解(1)

引言&#xff1a; 对指针知识进行简单的回顾&#xff0c;然后再完成笔试题。 ✨ 猪巴戒&#xff1a;个人主页✨ 所属专栏&#xff1a;《C语言进阶》 &#x1f388;跟着猪巴戒&#xff0c;一起学习C语言&#x1f388; 目录 引言&#xff1a; 知识简单回顾 指针是什么 指针变…...

报道|2023 INFORMS 最佳论文(部分)华人获奖者名单

编者按 本文收集了部分2023年INFORMS年会最佳论文评选的华人获奖者名单&#xff0c;祝贺获奖者们&#xff01;如果读者身边有本文遗漏的获奖者请在文章下方评论区告诉小编。 ● George Nicholson学生论文竞赛一等奖&#xff1a; Bayesian Design Principles for Frequentist …...

【Docker】从零开始:12.容器数据卷

【Docker】从零开始&#xff1a;12.容器数据卷 1.什么是容器数据库卷2.数据的覆盖问题3.为什么要用数据卷4.Docker提供了两种卷&#xff1a;5.两种卷的区别6.bind mount7.Docker managed volumevolume 语法volume 操作参数 1.什么是容器数据库卷 卷 就是目录或文件&#xff0c…...

Spring Boot 整合MyBatis-Plus 详解

MyBatis-Plus (opens new window)&#xff08;简称 MP&#xff09;是一个 MyBatis (opens new window)的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 全新的 MyBatis-Plus 3.0 版本基于 JDK8&#xff0c;提供了 lambda 形…...

【前端】让列表像Excel单元格一样编辑

前言 领导说了一堆的话,最后总结一句就是客户很懒,客户的员工更加懒。 本着让别人节省时间的原则,提倡出了让列表和Excal的单元格一样,不仅看数据还可以随时更改数据。 查资料 根据 Jeecg-Vue3 源码介绍,从而知道是基于 Vben Admin 开源项目进行改造的。 因此在 Vben…...

数字图像处理-Matlab实验

实验一 图像增强 实验内容: 对于给定的低对比度测试图像,利用灰度图像直方图均衡化算法进行图像视觉效果增强。 对于给定的低照度彩色测试图像,结合颜色空间转换和灰度图像直方图均衡化算法进行图像视觉效果增强。 实验数据: Test1_1.jpg: Test1_2.jpg: 实验步骤: %% …...

Nginx:配置文件详解

一、Nginx配置文件 main配置段&#xff1a;全局配置 events段&#xff1a;定义event工作模式 http {}&#xff1a;定义http协议配置 支持使用变量&#xff1a; 内置变量&#xff1a;模块会提供内建变脸定义 自定义变量&#xff1a;set var_name value 二、 主…...

卷积,是什么?

其实就是对事物的作用&#xff0c;或者说作用力&#xff0c;比如说&#xff0c;石板上没有字&#xff0c;我们刻上字&#xff0c;便于识别&#xff0c;从机器视觉角度来说&#xff0c;就是对图像的作用力&#xff0c;这种作用使得能看清想要的东西&#xff0c;感觉还是很主观&a…...

Javascript的闭包有哪些应用?

JavaScript 中的闭包是一种强大的特性&#xff0c;它可以用于多种应用。以下是一些闭包在 JavaScript 中的常见应用&#xff1a; 1、封装私有变量&#xff1a; 通过闭包&#xff0c;可以创建私有变量和方法。外部作用域无法直接访问闭包内的变量&#xff0c;从而实现了信息隐藏…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式&#xff08;Singleton Pattern&#…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾&#xff1a; 在上一篇中&#xff0c;我们成功地为应用集成了数据库&#xff0c;并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了&#xff01;但是&#xff0c;如果你仔细审视那些 API&#xff0c;会发现它们还很“粗糙”&#xff1a;有…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...