Alink 协议解析 | 学习笔记

本文涉及的产品
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
简介: 快速学习 Alink 协议解析

开发者学堂课程【物联网平台开发全栈教程Alink 协议解析学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/562/detail/7703


Alink 协议解析


基本内容

一、  相关内容

二、  编译

三、  服务器模拟真实设备


一、  相关内容

1、在 WIFI.c 里面解析 MQTT 里面读取的信息;

//接收 MQTT 服努器友送辻来的数据,解析

void Analyze_ MQTT_ Read (void)

{

unsigned int Len=0,i=0;  

// i=0 是个临时的变量

unsigned char Dat[256] ;

// 缓冲区的大小不超过256

//如果用户觉得这个逻辑有问题,那就可以自己尝试去改变这个数值;

if(Get Mess Count_ WIFI() == 0)

return;

//首先会直接读取有没有信息过来如果没有信息那就直接退出。

// 如果说有数据,只要不是0那么它就直接读取缓冲区里所有的数据。

Len=0;

while(Get_ Byte_ WIFI (&Dat [Len++] ) ) ;

//获取接收缓冲区数据

Dat [Len] = 0;

// 这个做法其实是不科学的;

for(i=0;i

{

if((Dat[i] == 0XD0)& (Dat[i+1]==0x00) )

//检验此处是否包含 D0或者是00, 只要连续的两个是 D0或者是00, 那证明此处是回复的心跳。

send_ stzl

("\r\n收到 MQTT 服务器回复的心跳信号! \r\n");

if(Dat[i] == O)//把前面二进制传输时的0去掉 ;

// 二进制中的00有很多个含义; 服务器上面下发的数据里面很可能还包含着许多个00

//一旦碰到 Dat 里面有0,它的妙用则体现在 Compare_ strCompare_ str 这个子函数会认为 Buf 里面都是 ASCII 字符,其实“1”不是 ASCII 字符,但是它如果在比较的时候遇到了0,它就会直接退出。Dat 就是 buf

Dat [i] = 1;

// 所以在这里 有一个简单的处理,把0授予1, 观察有没有出现 D000结合的情况,如果存在这样的情况, 那么就回复一下心跳。

if (Compare_ str (Dat, "\"WorkSwitch\":1") != 255)

// 先来比较一下 WorkSwitch 里面有没有1;

//在定义产品的时候,产品-功能定义; 在功能定义里面有一个标志符, 这个标识符非常的重要, 标志符的布尔值不是0就是1;如下图光标存在点所示:

image.png

{

Relay = 1;

Send Strl ("\r\l平台下发命令:打开继电器! \r\n");

//比较之后,发现 WorkSwitch 的数值为1,那么接着打开继电器;

}

if (Compare str (Dat, ") "WorkSwitch":0") != 255)

{

Relay = 0;

Send Strl ("\r\l平台下发命令:关闭继电器! \r\n");

//比较之后,发现 WorkSwitch 的数值为0,那么接着将会关闭继电器;


二、 编译

编译时将它加入单片机,观察在日志里面它会输出什么内容?

WIFI 模组交互的程序一切正常;

TCP Connect OK; 证明服务器的 TCP 链接是成功的;

MQTT 连接成功;

发送心跳;

收到心跳信号;

服务器连接正常;


三、 服务器模拟真实设备

1、产品-在线调试-选择设备-如下图红色边框内所示:

image.png

2、向下翻页-调试功能:运行开关(WorkSwitch-方法设置

1)当 WorkSwitch=1时,可以看到日志上:平台下发命令:打开继电器;

2)当 WorkSwitch=0时,可以看到日志上:平台下发命令:关闭继电器;

image.png

如果想看一下平台发送了什么内容, 其实在之前使用 MQTT 的函数的时候,就已经知道它会发送一长串的内容,里面会包含 WorkSwitch =0或者 WorkSwitch =1;如果想看,就可以使用串口1Dat 的内容发出去,在串口1的窗口看到底发送了什么内容。

解析就是 Compare_str 这个子函数,有没有“0”或者“1”;它的做法其实并没有很科学,没有解析 json,也没有在 json 解析完之后再看哪一个字段到底是多少?这样做法是非常粗暴、非常直接的,就是简单的判断一下里面时候含有“WorkSwitch=1”、“ WorkSwitch=0”,本身学习编程就是为了简单的数据上报和简单的开关控制,所以说用粗暴的方法解决也是可以的,它本身的业务逻辑也没有那么复杂,需要学习的是在不同的场合去使用不同的思维做事情。

相关文章
|
5月前
|
XML 监控 网络协议
云深处绝影四足机器人协议学习解析
本文详细介绍并解析了云深处绝影X20四足机器人的通信协议,包括TCP服务端端口号、基于Service的请求/响应通信机制、通信帧结构、消息类型、常见的通信示例如获取状态和导航请求,以及运动控制的参数和命令。文中还提出了对协议中某些未明确说明或可能存在的问题的疑惑。
57 0
云深处绝影四足机器人协议学习解析
|
4月前
|
域名解析 存储 网络协议
深入解析网络通信关键要素:IP 协议、DNS 及相关技术
本文详细介绍了IP协议报头结构及其各字段的功能,包括版本、首部长度、服务类型、总长度、标识、片偏移、标志、生存时间(TTL)、协议、首部检验和等内容。此外,还探讨了IP地址的网段划分、特殊IP地址的应用场景,以及路由选择的大致流程。最后,文章简要介绍了DNS协议的作用及其发展历史,解释了域名解析系统的工作原理。
175 5
深入解析网络通信关键要素:IP 协议、DNS 及相关技术
|
3月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
184 3
|
5月前
|
缓存 网络协议 安全
【网络攻防战】DNS协议的致命弱点:如何利用它们发动悄无声息的网络攻击?
【8月更文挑战第26天】DNS(域名系统)是互联网的关键组件,用于将域名转换为IP地址。然而,DNS协议存在安全漏洞,包括缺乏身份验证机制、缓存中毒风险及放大攻击的可能性。通过具体案例,如DNS缓存中毒和DNS放大攻击,攻击者能够误导用户访问恶意站点或对目标服务器实施DDoS攻击。为了防范这些威胁,可以采用DNSSEC实现数字签名验证、利用加密的DNS服务(如DoH或DoT)、限制DNS服务器响应以及及时更新DNS软件等措施。理解并应对DNS的安全挑战对于确保网络环境的安全至关重要。
133 2
|
15天前
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
67 1
|
2月前
|
监控 网络协议 网络性能优化
网络通信的核心选择:TCP与UDP协议深度解析
在网络通信领域,TCP(传输控制协议)和UDP(用户数据报协议)是两种基础且截然不同的传输层协议。它们各自的特点和适用场景对于网络工程师和开发者来说至关重要。本文将深入探讨TCP和UDP的核心区别,并分析它们在实际应用中的选择依据。
65 3
|
21天前
|
传感器
Modbus协议深入解析
Modbus协议是由Modicon公司(现施耐德电气)于1979年发明的串行通信协议,主要用于工业自动化系统中的PLC通信。本文深入解析了Modbus协议的主从模式、数据类型(线圈、离散输入、保持寄存器、输入寄存器)、帧结构和通信过程,并介绍了其应用场景和重要性。
19 0
|
2月前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
124 3
|
2月前
|
负载均衡 网络协议 算法
OSPF与其他IGP协议的比较:全面解析与应用场景
OSPF与其他IGP协议的比较:全面解析与应用场景
55 0
|
4月前
|
前端开发 JavaScript 安全
深入解析 http 协议
HTTP(超文本传输协议)不仅用于传输文本,还支持图片、音频和视频等多种类型的数据。当前广泛使用的版本为 HTTP/1.1。HTTPS 可视为 HTTP 的安全增强版,主要区别在于添加了加密层。HTTP 请求和响应均遵循固定格式,包括请求行/状态行、请求/响应头、空行及消息主体。URL(统一资源定位符)用于标识网络上的资源,其格式包含协议、域名、路径等信息。此外,HTTP 报头提供了附加信息,帮助客户端和服务端更好地处理请求与响应。状态码则用于指示请求结果,如 200 表示成功,404 表示未找到,500 表示服务器内部错误等。
106 0
深入解析 http 协议

热门文章

最新文章

推荐镜像

更多