涂鸦WIFI模组方案(MCU SDK)

2023-10-29

摘自涂鸦官方视频教程:https://www.bilibili.com/video/BV1pb41117LD?spm_id_from=333.999.0.0等

摘自:涂鸦IoT开发平台MCU开发接入(Wi-Fi)-App面板
地址:https://www.bilibili.com/video/BV1cK4y1x7Up?spm_id_from=333.999.0.0
摘自:关于初始化与串口数据处理函数
地址:https://www.bilibili.com/video/BV1Hb41117YW?spm_id_from=333.999.0.0

目录

名词解释(DeviceID、UUID、PID == KEY)

什么是设备ID?
英文名DeviceID:设备每次激活配网的时候,云端配网激活分配给到的id,关联配网后与账号、App等相关的实际用户设备数据。

什么是 UUID? (AES 的MESHID?)
涂鸦主联网模块的固件内写入的唯一性设备标示,用于接入涂鸦云时校验合法身份的依据之一,出厂携带,不随反复激活配网而更改。

详细介绍:UUID介绍与生成方法

UUID 和设备ID 的区别是什么? 设备ID 和 UUID 是平级的概念,描述的是设备的唯一性。

  • UUID着重表示设备硬件的唯一性,IoT设备在生产流程上,涂鸦的厂测工具会为每个涂鸦方案的设备颁发一个在涂鸦全球唯一的UUID和authkey,用于初次的认证授权;

  • 设备ID着重表示设备在云端的实例化对象,设备向涂鸦云发起激活请求并激活成功后,涂鸦会为该设备颁发一个device_ID。

什么是产品 ID/PID?

在这里插入图片描述

Product ID,在涂鸦 IoT 开发平台创建的每一个产品都会产生一个唯一的产品编号,关联了产品具体的功能点、App 控制面板等、所有跟这个产品相关的信息。

Product ID,缩写:PID,涂鸦开发平台为每一个独立的产品分配的唯一性标示,当前关联了涂鸦开发体系内几乎所有的产品数字化信息,包括:
产品软硬件模型信息,如产品品类、通讯能力、功能、面板、模块型号、固件key、开发状态、开发方式、配网限制、固件JSON文件、支持第三方服务、支持第三方云等一系列产品属性;
产品生产资料信息,如模块型号、固件key、固件版本、产品热点名称、是否运营商标记、发货标签字段等;
产品在前后台的权限,包含前台客户OTA权限、是否可更改模块、是否可更改固件等;
产品与其他系统的关联信息。

PRODUCT_KEY

开发平台创建产品后生成的16位字符产品唯一标识,就是上面PID的值。在代码protocol.h文件里可以看到,如下图所示:

在这里插入图片描述 在这里插入图片描述

产品创建(DP功能点)

在这里插入图片描述

支持多故障类型上报(一个字节就支持8种故障,置1代表故障),比如0X09就是故障1和故障4同时发生;
字符串型显示一些地址之类的;
透传型不建议使用,取暖器周定时会使用(有空去涂鸦平台标准功能生成一下看看)。。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

视频中DP点创建实例:
在这里插入图片描述

在这里插入图片描述

协议解析

产品Id
产品功能(DP点)

  • 通讯协议格式

    • 串口通讯约定(波特率等)
    • 帧格式
      在这里插入图片描述
    • 基础协议(模组必须的协议,与功能无关)
    • 功能协议(和创立的DP点功能有关,平台自动创建的收发数据的值)

协议格式

在这里插入图片描述

现在协议最新的版本是03,多了一些功能而已,不过兼容以前的00、01版本,以前的版本可以继续使用。为了以后的升级拓展

模组工作流程图

在这里插入图片描述

  • 0x08状态查询:模块首次上电、重启
  • 0x07状态上报:MCU上报所有DP点数据,作为APP开机面板显示初值

基础协议(模组工作必须指令,与产品功能无关)

基础协议-心跳检测(命令字0x00)

在这里插入图片描述

  • MCU上电第一次回复00,模组知道MCU是刚刚上电,接下来发送01、02命令字
  • MCU后面回复01,表示模组知道第一次的信息已经同步完了,接下来就是正常的心跳,心跳间隔15s
  • 心跳包间隔15s作用:假如一直没收到心跳回复,接下来APP会显示设备离线

基础协议-查询产品信息(命令字0x01)

模组心跳包收到正确回复后,模组发送01命令字。
在这里插入图片描述

基础协议-查询设定模块工作模式- -配合、自处理(命令字0x02)

在这里插入图片描述

一般使用MCU和模块配合的方式
注意:触发方式不一定是按键方式,是由MCU自己决定的,闪烁也不一定是LED灯,可能是WIFI的图标。
在这里插入图片描述
b.模块自处理:MCU不用去进行配网的操作以及指示灯的指示
WIFI模块的工作状态通过WIFI的GPIO引脚驱动LED状态显示;
WIFI重置通过检测GPIO输入需求处理。
模块自处理WIFI重置方法为:WIFI检测GPIO入口低电平持续5s以上触发WIFI重置。指示灯与按钮所使用的GPIO管脚由命令配置。
在这里插入图片描述
这里是引用

基础协议-报告设备联网状态-(命令字0x03,模块自处理模式没有此命令字)

在这里插入图片描述

LED亮灯的模式是MCU去引导的,MCU根据03命令字获得的联网状态进行控制LED闪灯
一旦WIFI状态发生变化,模组主动发送WIFI状态值

基础协议-状态查询与上报–模块首次上电/MCU重启(命令字0x08、0x07)

在这里插入图片描述

以上,初始化部分就完成了。


基础协议-配网操作方便和APP连接(命令字0x04、0x05,模块自处理模式没有此命令字)

在这里插入图片描述

  • smart模式:选择家里WIFI,输入密码即可。配网简单
  • AP模式:输入家庭WIFI密码后,需要连接WIFI模组本身产生的AP热点,再跳回APP连接。配网稳定可靠

在这里插入图片描述

  • 0x04命令字多次调用,两个模式来回切换;
  • 0x05命令字进入指定的模式;
  • 工作状态下,调用0x04会先切换到Smart模式,继续调用两个模式来回切换

在这里插入图片描述

基础协议-产测功能

在这里插入图片描述

把产测路由改成tuya_mdea_test这个热点名称,模组收到产测命令去扫描这个热点,从而测试模组的射频性能。

功能协议(数据下发0x06和上报0x07DP点数据)

在这里插入图片描述

功能长度就是后面功能指令的长度,比如第二个温度: 功能长度0x04,功能指令值为50,数据位长度不够前面补零,就是0000 0050

模组下发开关指令,状态改变了要上报给APP,因此第一行开关属于可下发可上报,下同。

串口助手使用方法

在这里插入图片描述

涂鸦云串口调试助手

这个调试助手只能调试MCU与模组的通信,检验SDK的移植以及串口通信是否调通,不能和手机APP端进行调试

在这里插入图片描述

在这里插入图片描述

命令字0X08要求MCU上报所有DP功能点初值作为面板显示初值(APP),这个应该是涂鸦自己的SDK
在这里插入图片描述
在这里插入图片描述

MCU仿真调试助手

安装包在官网下载

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

移植SDK

在这里插入图片描述

有一些51内核的对函数嵌套层级有要求,资源不足的用户可自行对接协议,但是SDK里面的内容和一些运算函数是可以借鉴的。

移植步骤六步走

在这里插入图片描述

步骤一:编写MCU基础程序,移植SDK文件

在这里插入图片描述

把SDK文件都添加到工程里面,方法参照STM32方法,STM32 的话记得还要添加头文件路径。
在这里插入图片描述

步骤二:确认protocol.h宏定义

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

RAM不够用,数据接收队列大小可适当缩小,只要能及时取出即可

在这里插入图片描述
在这里插入图片描述

后面的一些功能选择看自己的需求,也就是对宏定义的操作

步骤三:移植protocol.c文件及函数在main中调用

在这里插入图片描述

1
在这里插入图片描述
2
在这里插入图片描述
3、串口单字节发送函数,发送的参数为value

在这里插入图片描述
由于这个.c文件引用了串口发送这个函数,所以这个.c文件要引用一下main.h

4、串口接收函数
在这里插入图片描述

在这里插入图片描述

5、main函数while循环调用串口处理函数
在这里插入图片描述
在这里插入图片描述

main函数循环调用这个串口处理函数(所有的数据处理都是在接收中断接收完以后,放到接收缓存区进行帧头帧尾的各种判断)

步骤四:DP点数据上报和下发函数处理

1、
在这里插入图片描述
在这里插入图片描述

初值建议全部设为0;
不建议用户随意调用all_data_update()函数,数据量比较庞大,一直占MCU资源,而且一直对服务器有一定的压力;
如果某一个DP状态变了,比如开关状态变了,上报开关变量的方法就是调用单独的DP点函数。

在这里插入图片描述

RAW透传型后面有两个变量

2、

在这里插入图片描述

3、
在这里插入图片描述
在这里插入图片描述
可下发可上传
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

其他DP功能类比实现。

到这个步骤完成,就可以使用串口调试助手去模拟跑一遍,看对接协议是否正确,保证调试好。

步骤五:配网功能及闪灯函数完善

模组自处理模式不需要这个步骤,因为按键和灯都接在模组端了。
在这里插入图片描述

1、
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
进入配网模式以后,模组会重启,发送WIFI状态、同步状态命令字等。

2、

在这里插入图片描述
在这里插入图片描述
注:新版函数名称有改动
在这里插入图片描述

步骤六:产测功能完善

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这六个步骤完成,程序就可以跑起来了!

MCU在线升级

这部分作者没讲。
在这里插入图片描述
在这里插入图片描述

SDK程序结构解析(初始化与串口数据处理)

在这里插入图片描述

wifi_protocol_init初始化函数

在这里插入图片描述
在这里插入图片描述

在system.h里定义了一段指定大小的队列buf,即bt_queue_buf

在这里插入图片描述 在这里插入图片描述

queue_in和queue_out分别为队列的入和出,指向bt_queue_buf的首地址,队列的入和出是在串口中断接收函数uart_receive_input内使用的
在这里插入图片描述
进入uart_receive_input函数
在这里插入图片描述
614行queue_in - queue_out大于开辟的队列缓冲区大小,说明队列满了
618行代表出现一些异常错误
625行queue_in到达队列最底部,此时要让queue_in重新指向起始地址

在这里插入图片描述

队列先进先出

wifi_uart_service串口数据处理函数

在这里插入图片描述
while内尽量不要有大延时函数,否则接收队列容易满,进而需要加大接收队列缓冲区大小。

在这里插入图片描述

647行:
在这里插入图片描述

649行:取出数据
在这里插入图片描述
652行:判断接收数据的长度
在这里插入图片描述

判断帧头是否是55 AA 00 …
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

data_handle

在这里插入图片描述

在这里插入图片描述

ifdefine …#else… #endif代表条件编译

上图宏定义:在这里插入图片描述

在这里插入图片描述
心跳包回复
在这里插入图片描述

209行上报回复的函数(进行拼接):在这里插入图片描述
上图中186行:
在这里插入图片描述
上图中141行:
在这里插入图片描述

产品信息上传回复
在这里插入图片描述

转成字符串发送出去,记得前面讲的是通过ASCII发送?

命令下发:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

升级:

在这里插入图片描述

获取本地时间、WIFI功能测试:
在这里插入图片描述

状态查询,所有数据上报(08命令字):
在这里插入图片描述

在这里插入图片描述

uart_receive_input串口接收函数

在这里插入图片描述

MCU开发接入(Wi-Fi)-APP面板

参考:https://www.bilibili.com/video/BV1cK4y1x7Up?spm_id_from=333.999.0.0

MCU开发接入(Wi-Fi)-OTA功能

摘自:涂鸦IoT开发平台MCU开发接入(Wi-Fi)-OTA功能
地址:https://www.bilibili.com/video/BV1TV411U7fs?spm_id_from=333.999.0.0
说明:视频里讲的是WIFI模组串口协议,就两个命令字0x0a和0x0b,具体参见涂鸦文档,和蓝牙的方式有区别。

蓝牙通用串口协议支持 MCU OTA 功能,通过涂鸦 IoT 平台,先将需要更新的固件文件上传至涂鸦,然后通过蓝牙网关或手机 App(如涂鸦智能)等载体下载固件并透传给蓝牙模组。蓝牙模组再通过涂鸦协议对文件进行分包传输,最后 MCU 接收升级包并写入本地闪存,最终实现固件的升级。

在这里插入图片描述

升级过程流程图

在这里插入图片描述

升级请求(命令字0xEA)

升级开始的时候由模组向 MCU 发送请求,告知有OTA来了,获取 MCU 串口能传输的最大单包长度。

模组发送:
在这里插入图片描述
MCU 回复:

在这里插入图片描述

升级文件信息-MCU对比决定是否升级(命令字0xEB)

描述了 MCU-OTA 升级文件信息,MCU 可比较升级信息决定是否升级。

模组发布:

在这里插入图片描述

MCU回复:
在这里插入图片描述

断点续传:

  • 为了支持断点续传,这里会返回设备端已经储存的文件信息。 App 收到信息后,根据设备返回的已储存文件长度,计算新文件对应长度的 CRC32,然后和设备返回的 CRC32 对比。如果两者都吻合,那么在下面的文件起始传输请求中将起始传输偏移量改为该长度值,否则文件起始传输偏移量改为 0,表示从头开始传输

  • 每次断点续传都会完全按照 MCU OTA 流程的顺序,从 OTA 升级请求开始,所以 MCU 端如果有维护升级状态的话,需要在收到模组工作状态为非绑定已连接的其他状态时重置升级状态,以确保可以开始下一个升级流程。

升级文件偏移请求(命令字0xEC)

模组发送:
在这里插入图片描述

MCU 回复:

在这里插入图片描述

升级数据(命令字0xED)

模组发送:

在这里插入图片描述

MCU回复:
在这里插入图片描述

升级结束(命令字0xEE)

模组发送:

在这里插入图片描述

MCU回复:

在这里插入图片描述

SDK相关完善

软件版本号更新

在这里插入图片描述
在这里插入图片描述

注意:宏定义大小要大于最大包长度

这里工作量主要在MCU的bootloader和flash的读写操作上。

涂鸦平台相关操作

OTA升级实操

此部分摘自:https://www.bilibili.com/video/av971203572/
这是WIFI的OTA升级传输串口协议,和蓝牙的不太一样。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

WIFI 产测功能

摘自:涂鸦IoT开发平台MCU开发接入(Wi-Fi)-产测功能
地址:https://www.bilibili.com/video/BV1Ki4y1g7NM?spm_id_from=333.999.0.0

在这里插入图片描述

扫描指定路由

在这里插入图片描述

可自定义按键按下去调用产测函数。

在这里插入图片描述
在这里插入图片描述

连接指定路由

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

产测成功重复进入产测可以重新发送测试命令;
没有收到连上路由的包(账号密码输错了,再次输入它是不会被覆盖掉的)表示模组正在产测中需要重置模组或者重新上电后发送测试命令才有效。

在这里插入图片描述

红外产测

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

涂鸦WIFI模组方案(MCU SDK) 的相关文章

  • C#使用欧姆龙PLC的Fins协议读写PLC地址(基本封装)

    FINS通讯概述 FINS factory interface network service 通信协议是欧姆龙公司开发的用于工业自动化控制网络的指令 响应系统 运用 FINS指令可实现各种网络间的无缝通信 通过编程发送FINS指令 上位机
  • 正大期货新闻:印度调高了棕榈油以及豆油的进口基础价格

    外媒2月15日消息 周二印度政府发布的声明称 印度调高了棕榈油和豆油的进口基础价格 因为海外价格大幅上涨 毛棕榈油的进口基础价格从1346美元 吨调高到1359美元 吨 33度精炼棕榈油从1368美元调高到1376美元 24度精炼这样从13
  • 日本半导体制造商AKM工厂失火停产,市场再次掀起抢货潮!

    数据猿年度重磅活动预告 2020年度金猿策划活动 金猿榜单发布 金猿奖杯颁发 即将推出 尽情咨询期待 大数据产业创新服务媒体 聚焦数据 改变商业 据日本共同社报道 10月20日 旭化成旗下集团公司从事半导体制造的旭化成微电子株式会社 简称
  • MQTT 控制报文类型、功能及格式(报文结构) - 第2章

    目录 2 1 MQTT 控制报文的结构 2 2 固定报头 2 2 1 控制报文的类型 2 2 2 控制报文类型的标志位 2 2 3 剩余长度 2 3 可变报头 2 4 有效载荷 2 1 MQTT 控制报文的结构 MQTT控制报文由三部分组成
  • 高校圆桌派第三期话题征集强势来袭~

    高校圆桌派 话题风暴等你来 即日起参与 高校圆桌派 活动 就有机会获得CSDN高校圆桌大礼包和CSDN周边礼品免费包邮送到家 高校圆桌派第二期话题征集结果公示 1 刚毕业的程序员有必要执着于进入大厂吗 小厂和大厂怎么选择 2 新能源汽车行业
  • 什么是Iot?什么是AIot?

    什么是Iot 什么是AIot 物联网是新一代信息技术的重要组成部分 其英文名称是 The Internet of things 由此 顾名思义 物联网就是物物相连的互联网 这有两层意思 第一 物联网的核心和基础仍然是互联网 是在互联网基础上
  • PCB中常见错误大全

    PCB中常见错误大全 唯样商城 给你整得明明白白 线上授权代理商 唯样商城有超10万种现货库存 2000万型号数据库 满足您的元器件正品现货采购需求 一 原理图常见错误 1 ERC报告管脚没有接入信号 a 创建封装时给管脚定义了I O属性
  • 蓝牙-基础篇-蓝牙简介

    文章目录 蓝牙特点 蓝牙功能 蓝牙的两种技术 蓝牙特点 低功耗 短距离 跨设备 蓝牙功能 跨设备传输流式音频 跨设备传输数据 广播信息 蓝牙的两种技术 传统蓝牙技术 蓝牙版本2 0 2 1 即Basic Rate Enhanced Data
  • ML302 4G模块 HTTP AT指令使用流程

    一 首先入网 18 34 00 684 发 AT CGACT 1 1 18 34 00 699 收 AT CGACT 1 1 18 34 00 885 收 CGACT 1 1 OK 二 初始化模块的HTTP功能 18 34 11 214 发
  • 如何在 Windows Core IoT 应用程序中显示当前时间的时钟?

    我正在尝试创建一个在 Raspberry Pi 2 上无头运行的 Windows 10 IoT 应用程序 一切都设置正确 我可以使用 Raspberry Pi 作为远程机器进行调试 从 Visual Studio 进行调试 现在我想在应用程
  • Azure IoT 中心证书

    我正在尝试使用 Mqtt 在 Azure IoT 中心发布一些数据 我已使用 SAS 令牌成功发布了一些数据 但我的客户想要一个 x509 自生成和自签名证书 Azure 支持这一点 但没有提供太多相关信息 https learn micr
  • AWS-IoT 核心代理的最大消息负载大小是多少?

    在文档中AWS 服务限制 https docs aws amazon com general latest gr aws service limits htmlIoT Core 服务的有效负载大小限制尚不清楚 既然我们可以将本地 mosqu
  • 将 Reactjs 连接到 Myqtthub

    您好 我对所有物联网事物都很陌生 我希望能够使用 mqtt 从 Arduino 发送和接收数据https myqtthub com https myqtthub com作为我们的经纪人 我使用以下代码进行连接 import React Co
  • 向 Azure IoT 中心分区发送消息

    有谁知道是否有一个库允许您使用 Azure 将消息发送到 IoT 中心上的特定分区 我以前能够使用 azuresblite 库实现这一点 不幸的是我无法使用它 https github com ppatierno azuresblite h
  • AWS IOT 连接在 IPAD OS v12.1.1 上关闭

    当我们在 ios 版本 12 1 1 上使用 wss 协议连接到 AWS IoT 时 我们能够成功连接到 IoT 但立即我们可以看到 IoT 触发 onError 事件 然后连接关闭 它尝试再次重新连接 但没有任何运气 我们从 IoT 得到
  • 了解 Azure 事件中心分区使用者模式

    Azure 事件中心使用分区使用者模式中描述的docs https learn microsoft com en us azure event hubs event hubs features 当涉及到现实世界场景时 我在理解该模型的消费者
  • 将数据从 Azure HUB-IOT 保存到 Azure SQL 数据库

    我最近创建了一个 Azure Hub IOT 其中我从虚拟设备发送一些数据 我知道数据已到达 因为我可以从终端看到它们 但现在我想获取这些数据并将它们保存到 Azure SQL DataBase 中 我怎样才能做到这一点 如果有人可以向我解
  • 视频馈送至 ThingsBoard 仪表板

    我目前使用 ThingsBoard 作为 IoT 代理来捕获来自多个传感器的遥测数据并将其显示到仪表板 我想添加显示来自 iPhone 相机或网络摄像头的实时视频源的功能 我想知道这里是否有人知道 ThingsBoard 是否支持任何类型的
  • Android Ble GATT_ERROR 133 经常使用三星设备

    我正在研究 BLE 应用程序 我已经使用 Nexus Moto Samsung LG 等不同设备进行了测试 我仅在三星设备中收到 GATT 错误 133 三星 A5 2016 尝试连接 10 次 但只连接了 2 或 3 次 请帮助我 Non
  • CoAP数据包的大小是多少?

    我是这项技术的新手 有人可以帮助我了解一些疑问吗 Q 1 CoAP数据包的大小是多少 我知道有 4 字节固定标头 但是包括标头 选项和负载在内的最大大小限制是多少 Q 2 有像MQTT那样的Keep Alive的概念吗 它在UDP上工作 它

随机推荐

  • OpenLayers官网教程-移动端地图和传感器

    这一系列翻译自openlayers官网的WorkShop OL官网提供了多个系列教程供开发者学习参考 其中QuickStart是面向初学者的hello world Tutorials提供了构建OL应用的一些基础知识 WorkShop 本系列
  • scss 样式穿透

    当一些组件 例如 轮播 全局引入时 只改当前页面的样式 用css类选择器不能直接选择更改 应用scss样式穿透 注 scoped让css只在当前组件生效 不考虑兼容问题 去掉scoped也可以直接更改css样式
  • # leetcode#5最长回文数C++

    leetcode 5最长回文数C 一 思路一 中心扩散 对每一个字符 检测它与它旁边的数是否为回文数 如果是 那么再扩展它 的长度检查 分奇偶情况讨论 得到以该字符为中心最长的回文数 在遍历过程中用max 2 储存该目前最长的回文数位置和长
  • iphone11屏比例_iPhone每一代的屏幕尺寸比例是多少

    iPhone2G屏幕为3 5英寸 分辨率为320 480像素 比例为3 2 iPhone3G屏幕为3 5英寸 分辨率为320 480像素 比例为3 2 iPhone3GS屏幕为3 5英寸 分辨率为320 480像素 比例为3 2 iPhon
  • QOpenGLWidget 纹理贴图

    环境 QT 5 12 8 本人初学Opengl 想要绘制一个正方形并且贴纹理 以下是参考别人代码自己整理的 创建QT工程 结构如下 代码如下 glwidget h ifndef GLWIDGET H define GLWIDGET H in
  • [Python 与 炒股] TuShare 使用篇之三

    2016年新年第一贴 大年夜搞这个只能说明春晚实在是有点无聊 在之前的blog里写了一个最简单的例子 http blog csdn net robertsong2004 article details 50642655 现在试一下简单的分析
  • 渗透测试-01信息收集

    0x01信息收集 1 什么是信息收集 信息收集是指通过各种方式获取所需要的信息 以便我们在后续的渗透过程更好的进行 比如目标的站点IP 中间件 脚本语言 端口 邮箱等等 信息收集包含资产收集但不限于资产收集 2 信息收集的意义 1 信息收集
  • 使用 easyjson,生成 xxx_easyjson.go 文件之后,对测试结果所产生的影响

    文章评论 原文地址 https blog csdn net luslin1711 article details 90244468 正文 博主 你好 文中的测试结果 似乎不是很正确 由于评论区字数的限制 我另开一篇文章 请您解惑 以下是我的
  • 轻量级c语言开源日志库log.c介绍 - 实现不同级别和参数化日志打印

    前言 c语言没有现成的日志库 如果要记录日志 需要自己封装一个日志库 如果要实现日志级别和参数打印 还是比较麻烦的 正好在github找到了一个c语言开源日志库 可以实现日志级别打印 参数打印 而且还会记录日期和行号 最重要的是代码非常少
  • Google API 设计指南-文档

    翻译自 API Design Guide Documentation 这一章是为 API 添加内部文档的指南 大部分 API 有概述 教程和更高级别的参考文档 此指南不讨论 API 名 资源名和方法名的信息请查看命名约定 注释格式 在 pr
  • OpenGL ES几个概念-顶点着色器、片元着色器、EGL

    一 OpenGL ES OpenGL ES是使用在手机端和嵌入式里的3D图形应用程序编程接口 是跨平台的API OpenGL ES是OpenGL的简化版本 OpenGL2 x 版本相比 1 x 版本有较大差异 1 x 版本为 fixed f
  • Kylin Flink Cube 引擎的前世今生

    Apache Kylin 是一个开源的 分布式的分析型数据仓库 提供Hadoop Spark 之上的 SQL 查询接口及多维分析 OLAP 能力以支持超大规模数据 它能在亚秒内查询巨大的表 Kylin 的核心思想是 预计算 将数据按照指定的
  • C++11之智能指针(unique_ptr、shared_ptr、weak_ptr、auto_ptr)浅谈内存管理

    目录 前言 智能指针 使用方法 unique ptr 实现unique ptr类 使用uniquePtr shared ptr 实现SharedPtr 使用shared ptr weak ptr 使用weak ptr 前言 下面这段代码看起
  • Windows下同时安装python 2 和 3 详细教程 ——为了GitHack工具 同时安装python2和3的过程记录

    搜了半天发现 GitHack竟然真的只能在python2中运行 心痛 不得不去下python2 我之前下的是python3 文章目录 1 下载 安装 python2和3 2 配置python 2 x 的环境变量 3 将python 2 x
  • 投票==公平???

    前言 我们在团队中遇到意见分歧时 通常会通过投票机制以期来得到一个公平 公正的让所有人都能信服的解决方案 但是 这样的方案是否真的绝对公平 只有道德上的相对民主 没有制度上的绝对公平 求同存异才能长治久安 关于投票的经典场景 古雅典陶片放逐
  • TP-LINK交换机登录Web页面的操作方法

    TP LINK交换机登录Web页面的操作方法 之前小编介绍了TP LINK路由器登录Web管理页面的操作步骤 以及路由器无法登录的解决方法 详见文章 Tp link路由器管理界面无法登陆原因解析 下面栏目小编具体说说TP LINK交换机登录
  • Matlab设计数字滤波器入门

    一个3阶低通滤波器由下面差分方程描述 y n 0 0181 x n 0 0543 x n 1 0 0543 x n 2 0 0181 x n 3 1 76 y n 1 1 1829 y n 2 0 2781 y n 3 画出这个滤波器的幅度
  • VUE的基本使用(上)

    一 开发环境配置 VSCode 插件安装 jshint js代码规范检查 Beautify 一键美化代码的插件 Vetur vue文件识别插件 Javascript ES6 code snippets ES6语法提示 Auto Rename
  • 计算机ip保留地址,ip地址显示为保留地址怎么解决

    ip地址显示为保留地址怎么解决 2016 09 05 10 28 标签 dhcp ip地址 ip是保留地址怎么解决 ip作为计算机网络相互连接进行通信的协议 当dhcp超出系统规定的时间后 便会自动分配一个保留地址作为ip 如果主机ip地址
  • 涂鸦WIFI模组方案(MCU SDK)

    摘自涂鸦官方视频教程 https www bilibili com video BV1pb41117LD spm id from 333 999 0 0等 摘自 涂鸦IoT开发平台MCU开发接入 Wi Fi App面板 地址 https w