玩转Luat 进阶篇③——远程升级实现过程详解

本博文讲述的远程升级实现过程,是基于SpringBoot Java服务器,合宙4G Cat1 Air724硬件,EMQ-X中间件,实现整套完整的OTA远程升级功能。具体的讲述了EMQX的操作步骤,Java服务器的接口实现,Luat的代码实现。
分类: 其他 发布时间: 03-06 08:24 阅读次数: 0

玩转Luat 进阶篇④——远程升级制作差分包

用来远程升级的升级包,必须是差分包,否则会提示:updata.fota_process fail!! -96。差分包只能通过合宙提供的网页来完成制作。
分类: 其他 发布时间: 03-06 08:24 阅读次数: 0

玩转Luat 基础篇①——底层CORE、脚本、量产文件、升级包、固件

合宙Luat生成固件和下载固件的方式有好几种,同事来问了好几遍,索性写一篇博文,一次性说清楚。包括:底层CORE、脚本、量产文件、升级包、下载固件等等。
分类: 其他 发布时间: 03-06 08:24 阅读次数: 0

玩转Luat 进阶篇⑤——远程控制(透传)功能实现详解

本方案基于EMQX中间件、合宙4G模块Air724硬件、PC端.Net C#,实现整套完整的远程升级(透传)功能。通过PC端工具、EMQX、Y设备的通信模组、Y设备,构成一个通信闭环。主要的目的是为了PC端工具可以直接跟Y设备通信,这其中EMQX和Y设备的通信模组就起到一个桥梁作用,实现消息的透传。
分类: 其他 发布时间: 03-06 08:23 阅读次数: 0

即将30岁的2020年总结,放眼未来的未雨绸缪

2020年总结,2021年展望目录2020年总结,2021年展望一、前言二、工作总结2.1 我跳槽到创业公司了2.2 新的机会,开创新天地2.3 不足和长进一、前言许久没有在博客上面写个人的年度总结和计划,记得上一次还是在2014年大四的寒假。忆往昔峥嵘岁月稠。恰同学少年,风华正茂……年轻真好。今天大年三十,回家三天了。父母家人,亲戚朋友,嘘寒问暖,走街逛巷,买衣贴联,忙忙碌碌,终在年夜饭前夕得一缕空闲。打开电脑,百无聊赖,望着窗外的田野,思绪逐渐发散,我是谁,我从哪里来,我要到哪里去……二、工
分类: 其他 发布时间: 03-06 08:23 阅读次数: 0

Pandownload凉凉后,可能只有这么一个不花钱的百度网盘提速方法

百度网盘开启这个提速后,正常速度能到1~2MB/s,也是够用了。
分类: 其他 发布时间: 03-06 08:23 阅读次数: 0

C++面向对象的继承特性:继承特性和其中的权限管控

C++学习笔记:面向对象的继承特性1.什么是继承2.类的继承案例3.类继承中的权限管控3.1 C++类中的访问权限管控回顾3.2 类继承时的三种权限设置对派生类的影响4.继承体系下子类和父类的关系4.1 子类和父类本质上是2个独立的类4.2 站在子类角度看继承4.3 为什么父类private成员在子类中还有4.4 为什么父类private成员在子类中还有但不能直接访问1.什么是继承继承是C++源生支持的一种语法特性,是C++面向对象的一种支持表现。派生类会“继承”基类的成员变量和成员方法。继承特性可以让
分类: 其他 发布时间: 03-06 08:23 阅读次数: 0

C++面向对象的继承特性:派生类和基类的构造析构关系

C++学习笔记:派生类和基类的构造析构关系1.派生类和基类的构造析构关系2.为什么派生类的构造(析构)必须调用基类的某个构造(析构)3.其他几个细节1.派生类和基类的构造析构关系派生类并不继承基类的构造和析构函数,只继承成员变量和普通成员方法。不继承意思是派生类中确实不包含基类的构造和析构函数,派生类自己有自己的构造和析构,规则和之前讲过的完全一样。研究构造和析构函数时,一定要注意默认规则。派生类的构造函数一定会调用基类的某一个构造函数,析构也一样。派生类的任意构造函数可以显式指定调用基类的任意一个构
分类: 其他 发布时间: 03-06 08:22 阅读次数: 0

C++面向对象的继承特性:派生类和基类的同名成员问题

C++学习笔记:派生类和基类的同名成员问题1.派生类中再实现一个基类中的方法会怎样2.派生类中如何访问被隐藏的基类方法3.注意和总结1.派生类中再实现一个基类中的方法会怎样派生类和基类中各自实现一个内容不同但函数原型完全相同的方法会怎么样?代码实验:#include<iostream>using namespace std;class person{public: string name; int age; void info(void) { cout<&
分类: 其他 发布时间: 03-06 08:22 阅读次数: 0

C++面向对象的继承特性:父类和子类的类型兼容规则

C++学习笔记:子类和父类的类型兼容规则1.何为类型兼容规则2.类型兼容规则的常见情况3.总结1.何为类型兼容规则类型兼容规则是父类和子类在数据类型方面的兼容规则。C和C++都是强类型语言,任何变量和对象、指针、引用等都有它自己的类型,编译器根据类型来确定很多事的。除了类型要匹配,还需要兼容。比如int和short、char就是兼容的,它们对内存里二进制数据的解读方式是一样的,而int和float,尽管它们都是占4个字节,但是它们对于内存中二进制数据的解读方式是完全不一样的,所以它们完全不兼容。派生类
分类: 其他 发布时间: 03-06 08:22 阅读次数: 0

C++面向对象的继承特性:多继承二义性问题、虚继承

C++学习笔记:多继承及其二义性问题1.多继承2.多继承的二义性问题情况13.多继承的二义性问题情况24.多继承的二义性问题情况总结5.虚继承解决菱形继承的二义性问题5.1 虚继承怎么用5.2 虚继承的实现原理1.多继承多继承就是一个子类有多个父类。在继承中,子类会继承父类的成员变量和成员函数:class A {public: int a; void print(void){cout<<"a = "<<this->a<<endl;}};cl
分类: 其他 发布时间: 03-06 08:22 阅读次数: 0

C++面向对象的多态特性:多态和虚函数

C++学习笔记:多态和虚函数1.什么是多态2.虚函数3.多态中的override4.纯虚函数与抽象类4.1 纯虚函数4.2 抽象类(abstract type)4.3 接口(interface)5.虚析构函数5.1 什么是虚析构函数5.2 为什么需要虚析构函数1.什么是多态案例:父类animal,2个子类dog和cat,实现run()方法。class animal{public: void run(void) { cout<<"animal run()."<<e
分类: 其他 发布时间: 03-06 08:21 阅读次数: 0

C++学习笔记:运算符重载

C++学习笔记:运算符重载1.运算符重载引入1.1 从函数重载说起1.2 什么是运算符重载1.3 运算符重载示例2.深度理解运算符重载2.1 运算符重载的本质2.2 运算符重载的意义1.运算符重载引入1.1 从函数重载说起函数重载是在一定作用域内,多个相同名称但不同参数列表的函数重载。编译时由编译器根据实际调用时给的实参情况来判定本次实际用哪个函数,这个过程叫重载决策。重载函数本质上就是多个独立函数,重载机制在编译时发生,运行时不参与。函数重载的意义就是避免我们给函数胡乱起名,方便编写类库覆盖所有可
分类: 其他 发布时间: 03-06 08:21 阅读次数: 0

C++面向对象:静态成员和静态类

C++学习笔记:静态成员和静态类1.类的静态成员1.1 static关键字1.2 什么是静态成员1.3 静态成员的特征和实践验证2.静态成员的深度理解2.1静态数据成员的使用2.2 静态成员和普通成员的互相调用规则2.3 从内存角度来看静态成员3.静态成员的用途3.1 用途举例3.2 静态成员与面向对象4.静态类的概念4.1 什么是静态类4.2 静态类的优势4.3 C++不支持静态类1.类的静态成员1.1 static关键字static关键字在C语言中有2种用法:static修饰局部变量和全局变量,这
分类: 其他 发布时间: 03-06 08:21 阅读次数: 0

C++面向对象:友元函数和友元类

C++学习笔记:友元函数和友元类1.友元函数1.1 外部函数访问类内成员1.2 友元函数的引入1.3 友元函数总结2.友元函数的另一种实现3.友元类3.1 友元类的概念和使用3.2 互为友元类3.3 友元类总结4.为什么会有友元函数4.1 使用友元函数的优缺点4.2 使用友元函数的两种情况4.3 运算符重载中使用友元回顾4.4 两个类如何共享数据4.5 友元函数和类的成员函数的区别4.6 共有友元函数1.友元函数1.1 外部函数访问类内成员class person{public: string
分类: 其他 发布时间: 03-06 08:21 阅读次数: 0

C++学习笔记:数据类型相关typeid、cast、自动类型推导

C++学习笔记:数据类型相关typeid、cast1.typeid2.C++中的4中cast2.1 静态转换static_cast2.2 重新解释转换reintepret_cast2.3 const_cast2.4 动态转换dynamic_cast3.C++的自动类型推导3.1 auto关键字3.2 decltype关键字3.3 auto和decltype的对比C++是强类型语言,里面的每一个变量和表达式都有自己的类型。有了类型编译器就可以帮助进行类型检查,有错误就会报出来。1.typeidtypei
分类: 其他 发布时间: 03-06 08:20 阅读次数: 0

C++内存管理:内存管理基础、new和malloc、智能指针引入

C++内存管理:内存管理基础、new和malloc、智能指针引入1.为什么要研究内存管理1.1 程序就是数据加算法1.2 计算机中如何管理内存1.3 总结2.C++可用内存区域2.1 C语言可用内存区域2.2 C++新增内存区域2.3 总结3.new和malloc的区别3.1 简单区别3.2 深度区别3.3 总结4.智能指针引入4.1 指针的优势和劣势4.2 如何解决4.3 智能指针如何实现4.4 智能指针总结5.Java的垃圾回收机制5.1 Java语言整体框架5.2 Java的垃圾回收机制5.3 垃圾回
分类: 其他 发布时间: 03-06 08:20 阅读次数: 0

二值图像分析:OpenCV中的二值化阈值操作

二值图像分析:OpenCV中的二值化阈值操作1.二值图像的定义2.OpenCV中的基本阈值操作3.OTSU二值寻找算法3.TRIANGLE二值寻找算法4.自适应二值化阈值算法1.二值图像的定义二值图像就是图像中灰度值只有2个的图像,一般就是黑白图像,2个灰度值分别为0(表示黑色)和255(表示白色)。二值图像处理与分析在机器视觉与机器人视觉中非常重要,涉及到非常多的图像处理相关的知识。常见的二值图像分析包括轮廓分析、对象测量、轮廓匹配与识别、形态学处理与分割、各种形状检测与拟合、投影与逻辑操作、轮廓特
分类: 其他 发布时间: 03-06 08:20 阅读次数: 0

二值图像分析:连通组件寻找算法

二值图像分析:连通组件寻找算法1.连通组件标记算法介绍2.OpenCV中的API1.连通组件标记算法介绍连接组件标记算法(connected component labeling algorithm)是图像分析中最常用的算法之一,算法的实质是扫描二值图像的每个像素点,对于像素值相同的而且相互连通分为相同的组(group),最终得到图像中所有的像素连通组件。扫描的方式可以是从上到下,从左到右。对于一幅有N个像素的图像来说,最大连通组件个数为N/2。扫描是基于每个像素单位的,OpenCV中进行连通组件扫描调
分类: 其他 发布时间: 03-06 08:20 阅读次数: 0

C语言中指针的理解1:指针是什么

C语言中指针的理解1:指针是什么1.C语言中的指针是什么1.1 指针变量和普通变量的区别1.2 为什么需要指针1.3 指针使用的标准方式2.指针带来的一些符号的理解2.1 星号*2.2 取地址符&2.3 指针定义并初始化与指针定义然后赋值的语法区别2.4 左值与右值3.野指针问题3.1 什么是野指针3.2 如何避免野指针3.3 NULL是什么1.C语言中的指针是什么1.1 指针变量和普通变量的区别首先必须非常明确:指针完整的名字应该叫指针变量,简称为指针。指针的实质就是个变量,从内存和数据的角
分类: 其他 发布时间: 03-06 08:19 阅读次数: 0