首页 > 其他分享 >距离成功只差一个while

距离成功只差一个while

时间:2024-06-06 20:23:36浏览次数:10  
标签:示例 只差 While 距离 成功 问题 一个 while 模块

Table of Contents


我不善养花,总死,怀疑跟不会浇水有关系,于是想用湿度传感器采集数据来进行精准控制, 要实现的功能也很简单,采集到数据后传送到服务器上,选择了 ESP8266 模块,按 PostHttpClient 示例简单改了改,用Python 写了个简单的 restapi 服务器,不论是 ipv4 还是 ipv6 在局域网内测试都没有问题。

1. 遇到问题

由于开发电脑不会长时间开着,想着将数据传到家里的 NAS 上,由于在另一个城市,使用 了 ipv6 和 DDNS 技术,系统环境都部署好了,在测试过程中遇到 "connection failed" 的问题,我打开调试查看 IP 获取正确,域名解析正确,换成GET方法获取数据正确, 一旦换成 POST 方法就出问题,TCP 连接失败,花了2天时间多次检查代码,修改 http timeout , 测试了100多次,只成功了2次,一度怀疑是 core 的问题。

2. 柳暗花明

由于原代码中使用了深度睡眠模式,为了排除问题,将这块功能先去掉,于是 loop 中实现 的功能就是不停地向服务器发送数据,他居然第一次没有提交成功,但后面几次都提交成功 了。于是我在代码中加了 While 循环,尝试10次来发送数据,一旦成功就退出循环,成功 解决遇到的问题。

3. 心得体会

3.1. 示例与产品之间少一个 While

这又是一个示例和产品之间差距,回忆上次做指纹锁时也遇到一个类似问题,即找不到指纹 模块的问题,最后也是加了一个 While 来等待指纹模块准备好。

3.2. 距离成功可能也少一个 While

测试的过程中始终找不到原因,我一度差点崩溃,好在最后没有放弃,多尝试了下才发现这 个问题的根源并成功解决他。这种问题可能不会发生在每一个人身上,但克服并解决他的方 法都需要 While , 只有不断地尝试才可能找到最后的出路。但是就像我在代码中采取的方 法,并没有使用无限循环,尝试10次不行就算了,先让模块睡一会,下次网络环境什么的变 化了,说不定就可以了。

此记。


本作品采用知识共享署名-非商业性使用-禁止演绎 3.0 未本地化版本许可协议 进行许可。

标签:示例,只差,While,距离,成功,问题,一个,while,模块
From: https://www.cnblogs.com/bu-wu-zheng-ye/p/18235956

相关文章

  • 闵可夫斯基距离
    闵可夫斯基距离定义:在\(n\)维空间中,设两个\(n\)维变量\(A(x_{11},x_{12},...,x_{1n})\)与\(B(x_{21},x_{22},...,x_{2n})\),将\(d_{12}\)称为\(AB\)之间的闵氏距离\[d_{12}=(\sum_{i=1}^{n}|x_{1i}-x_{2i}|^p)^\frac{1}{p}\]\(p\)不同取值表示不同含义:p取值含义......
  • 1689D Lena and Matrix (曼哈顿距离转切比雪夫距离/随机化/线段树)
    记一道有趣的题:P题意这道题很有意思。给定地图上若干个黑色的点,求这样一个点的坐标,满足其到图中任何一个黑色点的最大曼哈顿距离最小。\(max(|a-x_i|+|b-y_i|),i=1,2..k\)方法一曼哈顿距离和且比雪夫距离可以互相转化,曼哈顿转切比雪夫如下:\((x,y)\to(x+y,x-y)\)转化后......
  • C/C++ while 语句的要点与注意事项
    while 语句是C语言中的一种基本控制流语句,用于在特定条件为真时重复执行一段代码。下面是关于 while 语句的要点和注意事项的详细介绍。要点基本语法:1while(condition){2//循环体:当condition为真时执行的代码3}其中,condition 是一个表达式,其结果为......
  • Error: Failure while executing; mpdecimal-2.5.1.catalina.bottle.tar.gz` exited w
    ==>Installingdependenciesfornode:mpdecimal,ca-certificates,[email protected],readline,sqlite,xz,[email protected],brotli,cmake,c-ares,icu4c,libnghttp2andlibuv==>Installingnodedependency:mpdecimalError:Failurewhileexecuting;`/usr/bin/......
  • 1638. 统计只差一个字符的子串数目
    题目给你两个字符串s和t,请找出s中的非空子串的数目,这些子串满足替换一个不同字符以后,是t串的子串。换言之,请你找到s和t串中恰好只有一个字符不同的子字符串对的数目。一个子字符串是一个字符串中连续的字符。示例示例1输入:s="aba",t="baba"输出:6......
  • leetcode-624.数组列表中的最大距离
    数组列表中的最大距离给定m个数组,每个数组都已经按照升序排好序了。现在你需要从两个不同的数组中选择两个整数(每个数组选一个)并且计算它们的距离。两个整数a和b之间的距离定义为它们差的绝对值|a-b|。你的任务就是去找到最大距离目标题意中的绝对值|a-b|等价于选取......
  • PCL欧式距离聚类源码解析
    1.Findapointp10inspace,thereiskdTreeFindthenpointsclosesttohim,andjudgethedistancefromthesenpointstop.Putpointsp12,p13,p14….withdistanceslessthanthethresholdrinclassQFindabitofp12inQ(p10)andrepeat1.3Fi......
  • Python While 循环语句
    Python编程中while语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:```while判断条件(condition):  执行语句(statements)……```执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值......
  • Java循环结构while
    1.while是最基本的循环,它的结构为        while(布尔表达式){            //循环内容                }2.只要布尔表达式为true,循环就会一直执行下去3.我们大多数情况是会让循环停止下来的,我们需要一个让表达式时......
  • if,switch分支结构和while循环
    程序设计三种结构顺序结构分支结构做判断,做选择if(条件){语句块;//条件为真时执行语句块}如果语句块只有一条语句,可以不加大括号(不推荐)要求if语句中不能省略括号,且括号成对出现二个里选择一个(2选1)if(条件1){    语句块1;}else{    语句块2;}......