OTA更新系统(详细设计)
OTA包的content.json 键值 类型 备注 package 字符串 包名称 description 字符串 描述 updateInfo 字符串 更新描述 version 字符串 版本号 branch 字符串 分支 local 字符串 本地包位置 remote 字符串 OTA服务器 sha256 字符串 升级包的SHA256校验码 AfterUpdate 字符串 更新后指令 dependencies JSON 依赖 一、生产运行侧重启设备 daemon程序 依赖:flask、requests JSON配置文件由于单个设备的包较少,所以维护一个json文件 daemon整体配置文件(device.json): 键值 类型 备注 id INT 设备唯一id device 字符串 设备名称 registry 字符串 设备注册服务地址 description 字符串 描述 flask JSON flask配置项(见下) package 列表 列表中每一项是一个json,为每个包的co...
GLSL基础语法介绍
GLSL基础语法介绍GLSL(OpenGL着色语言OpenGL Shading Language)语法跟C语言很类似,在可编程管线中我们必须要纯手写顶点和片源着色器,这里就要求必须使用GLSL,自行编译,链接,使用,本片文章介绍了GLSL基础语法。 GLSL中提供了许多内建的函数,来方便我们的使用。可以在官方手册中查找相关的函数http://www.opengl.org/sdk/docs/man/ GLSL指南 http://www.opengl.org/registry/doc/GLSLangSpec.Full.1.20.8.pdf 转载自:GLSL基础语法介绍 - 简书 (jianshu.com) 注释 单行注释:// 多行注释:/* */ 变量GLSL的变量命名方式与C语言类似。变量的名称可以使用字母,数字以及下划线,但变量名不能以数字开头,还有变量名不能以gl_作为前缀,这个是GLSL保留的前缀,用于GLSL的内部变量。当然还有一些GLSL保留的名称是不能够作为变量的名称的。 基本类型除了布尔型,整型,浮点型基本类型外,GLSL还...
面向对象(二)
面向对象(二)在上一篇文章 [面向对象(一) | 四叶草の博客 (wzcwzc.cool)]中,我们介绍了面向对象的基本概念,以及C++中类和对象的基础知识。在这篇文章中,我们将深入探讨C++面向对象编程的其他重要特性,包括继承、多态和运算符重载。 一、继承继承是面向对象编程的一个核心概念,它允许我们创建一个新类,继承并重用现有类的属性和方法。这样,新类可以基于现有类进行扩展,而无需从头开始。 1. 基类 & 派生类 基类:被继承的类称为基类、父类或超类。 派生类:执行继承操作的类称为派生类或子类。 123456789101112131415class BaseClass { public: int baseVar; void baseFunc() { cout << "Function in Base Class" << endl; }};class DerivedClass: public BaseClass ...
苏大校园网の小妙招
苏大校园网の小妙招一、前言众所周知,苏大的SUDA_WIFI需要进行认证。虽然可以开启校园漫游,但是似乎在大部分时间中,当我们断开wifi然后再重新连接的时候,都需要重新认证。 虽然我没有仔细求证过其中的判断标准,不过现在的设备连接wifi一般都会有一个随机MAC地址的选项。 MAC地址,全称为“媒体访问控制地址”(Media Access Control Address),是一个用于确保网络设备唯一性的地址。它是一个通常由六组两位十六进制数字组成的地址,例如:08:00:27:4A:2D:1F。 每个网络接口控制器(NIC)都有一个唯一的MAC地址,这个地址在生产时被烧录到硬件中,通常是不可更改的。无论是有线还是无线的网络设备,如以太网卡、Wi-Fi设备等,都有一个MAC地址。 MAC地址在数据链路层(OSI模型的第二层)被用于标识网络上的设备。当数据包在局域网(LAN)内传输时,它是基于MAC地址进行路由的,而不是IP地址。 MAC地址一般标志着网络中的唯一硬件,wifi认证过程中很有可能就是通过相同的MAC地址来判断登陆的设备是否是同一个,既然使用了“随机MAC地址”,...
双向宽度优先搜索
双向宽度优先搜索BFS(宽度优先搜索)是我们最先接触的几个算法之一,和DFS(深度优先搜索)一起,成为初学者必学的两大搜索算法。使用队列这种先进先出的数据结构,在遍历图、树等方面有着巨大的作用,同时由BFS优化而来的SPFA最短路径算法、Dijkstra最短路算法等,也是非常经典的算法。 今天我要介绍的是一种不一样的BFS,以 P1379 八数码难题 - 洛谷 为例,介绍双向BFS。 对于一种起始状态和终末状态确定的搜索,很容易就能想到我们可以同时从头和尾开始搜索,直到搜索树相交时,我们就可以找到路径,这就是双向BFS。 以下这个图简单的介绍了双向BFS的原理: 题目描述在 $3\times 3$ 的棋盘上,摆有八个棋子,每个棋子上标有 $1$ 至 $8$ 的某一数字。棋盘中留有一个空格,空格用 $0$ 来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为 $123804765$),找到一种最少步骤的移动方法,实现从初始布局到目标布局的转变。 输入格式输入初始状态,一行九个数字,空格用 $0$ 表示。 ...
C++ STL教程
C++ STL教程一直以来在竞赛界一直有着一种传言,自己手搓的数组、栈、队列效率比C++提供的STL高很多,甚至于还有江湖传说,有的人用自己写的就过了,用STL就超时。但其实STL恰恰在C++一众繁复的特性中,是最受人欢迎的之一。使用STL其实并不会让效率降低很多,反而可以让自己的程序更具有可读性,以及获得更低的编程复杂度(笑,现在真的还有人讲究编程复杂度这种玩意么)。 所以特此写下一篇教程。(也是为了让自己以后忘记STL用法的时候能记起来,hhh) 一、概念C++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量、链表、队列、栈。 C++ 标准模板库的核心包括以下三个组件: 组件 描述 容器(Containers) 容器是用来管理某一类对象的集合。C++ 提供了各种不同类型的容器,比如 deque、list、vector、map 等。 算法(Algorithms) 算法作用于容器。它们提供了执行各种操作的方式,包括对容器内容执行初始化、排序、搜索和转换等操作。 迭代...
寄18岁的自己
寄18岁的自己 穷日落月追晨光,执经叩问如初恍。 一手纸墨书人生,一心热血扬劲风。 三载光阴存碑中,纯真年代流如水。 儿郎何敢言轻狂,只愿回首无悔处。 潇洒真少年,窈窕美佳人,多年曾记否? 相会久相去,芳华难再觅,望正如初见少年。 ——题记 我们抬笔,一支笔在白纸上答别人所问,一支笔在梦想中扬帆起航。 当李华笑着请你帮他写下最后一篇文章,留下“诚挚的,李华”;当带电粒子飞速越过加速电场,在磁场中偏转出优美的轨迹;当我们在夕阳的余晖下,洒下最后的墨水。 我们放下了手中的笔,若有所失。 总有一些东西, 要用消失来证明它的珍贵。 过了这个红绿灯路口, 我就要拐弯了。 无论我拐向何方, 这纯真的年代将永存心间。 你好,高考。
面向对象(一)
相信各位学习各种语言的时间都不短了,那么为什么感觉自己总是只能做点小脚本或者小工具呢? 那是因为你没有找到对象啊!(笑) 面向对象是现代软件工程的一个基本工具,几乎所有的现代高级语言都支持面向对象编程。本篇文章分上下篇,以C++为例介绍面向对象这一计算机世界中最基本的元素。 一、什么是面向对象我们先来看看权威的定义: 面向对象程序设计(英语:Object-oriented programming,缩写:OOP)是种具有对象概念的编程典范,同时也是一种程序开发的抽象方针。它可能包含数据、特性、代码与方法。对象则指的是类(class)的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性,对象里的程序可以访问及经常修改对象相关连的数据。在面向对象程序编程里,计算机程序会被设计成彼此相关的对象[1][2]。 ——https://zh.wikipedia.org/ 概念总是很玄乎的,需要注意的是这段概念中的几个名词: 对象、类、程序与数据 与面向对象(Procedure Oriented 简称PO)相对的就是面向过程(Procedure O...
誓言
誓言爬山虎迎着清晨的阳光爬上教学楼, 桂花把她的清香撒满整个校园。 曾经深夜灯火通明的隔壁教学楼,成了自己; 曾经四处随风飘扬的励志口号,成了自己; 曾经向往用自己双手书写未来的日子,成了自己。 光阴之箭越过校园的绿荫大道, 我们成为了最大的学长。 我们又是否意识到, 已经来到的这一年, 将成为学生时代的最后绝唱, 将成为书写未来的最后篇章。 纯真年代已经过去, 我们穿着校服的日子即将成为回忆。 一起欢声笑语的时光, 荡漾于属于我们的教室; 一起克难攻坚的同学, 永存于属于成功的喜悦。 曾经在你心里驻足过的那个男孩和姑娘, 或是正在陪在你身边的那个ta, 会不会被你忘记, 多年以后你能否记得这段快活的日子。 在这年华的最后一段时间里, 我们穷日落月,奋笔疾书,执经叩问, 为的是考场上的一支黑笔, 一支笔在白纸上答别人所问, 一支笔在梦想中扬帆起航。 李华笑着请你帮他写下最后一篇文章, 留下“诚挚的,李华”; 带电粒子飞速越过加速电场, 在磁场中偏转出优美的轨迹。 曾经过去的,我们不会淡忘; 童年的欢乐终将过去, 学生的纯真尘封回忆。 我们不能成为脖子向后拧的人, 但过去将时刻成为...
邂逅星星
邂逅星星 一场烟花的盛会,在星空下上演,华丽的上场,孤寂的落幕。 一、序言群星在暗夜的银河中闪耀。 从第一个人第一次仰望璀璨的星空开始,仅仅经过一颗小小铀235原子半衰期的十分之一,曾经身披兽皮的灵长类动物已经成为一颗中等固态行星的主人。 从古代的星空之神阿斯特赖俄斯,至第一颗笨重的化学火箭深入宇宙空间,人类对于头顶的世界一直都有着无法动摇的追求。 纵使技术水平依旧停留在用着核能烧开水的地步,这颗星球上的每一个人民都有着最朴素的愿望,每一个强盛的国家都有着向着深空进军的梦想。 牛顿说:宇宙就像一个永恒不变的精密钟表。他提出了人类的第一个完美的结论,人们第一次得知了每一颗星星都有他们的归宿。 再后来,爱因斯坦说:物质告诉时空如何弯曲,时空告诉物质如何运动。他打破时间与空间的枷锁,第一次把人们带入了现代物理的大门。 正因为无论在哪里、无论在什么时间,这些基本法则都一样,才能够用它指出宇宙的过去和未来。 宇宙的一生对我们何其广阔。 距离我们1亿5千万千米的那个恒星,在我们来到这个世界前已经燃烧了45.7亿年; 每75年路过我们身边的白色尾迹,在我们了解他之前已经造访过5000万次。 ...











