
工作日志
旧衣新雪
这个作者很懒,什么都没留下…
展开
-
VM虚拟机文件更新的bug
VM14上装了一个虚拟机,然后打开一个文件夹,运行shell,此时删除该文件夹(丢到回收站),然后从PC上复制一个新的同名文件夹进来。由于我是将虚拟机硬盘挂为win10的网络磁盘,此时PC上的SI4里面代码会提示说文件已经换了。点击确认,可以正常编辑代码。但是此时bug出现了,我们做的任何修改不会影响到shell。因为shell里面还是之前被我们删除的文件!简单说,如果我们在之前打开的shel...原创 2018-12-23 16:41:40 · 611 阅读 · 0 评论 -
watchdog之喂狗分析
当时遇到的一个问题是,某次修改代码后编译烧写时,出现了一个逐项选择的菜单,就随便选了下,结果后续运行程序时,每过一段时间就会自动重启ESP8266模块,最开始以为是硬件坏了,然后就拿了块新板子,发现还是会崩。拿之前的旧程序,仍然崩溃。至此,已经基本排除了程序代码问题和硬件问题,肯定是配置问题。注意到官方的sniffer进程可以正常跑。然后对自己的程序进行线程的排查,发现只有开启了一个使用tim...转载 2018-12-23 13:52:31 · 2878 阅读 · 1 评论 -
赋值语句的返回值
最近写代码遇到的一个bug是因为在判断语句中错误使用赋值语句导致的。else if (XXX&& (m = 0))YYY结果下面的YYY语句未得到执行。原因是将语法记错了。C中的赋值语句的返回值是所赋的值以允许连续赋值语句,Linux的shell中的赋值语句返回值恒为true。 ...原创 2018-11-28 17:44:15 · 1892 阅读 · 0 评论 -
函数返回值的设置问题
今天遇到一个问题,是手机端发送控制指令,快速来回修改设备参数,app显示失败。原因是设备端收到app消息后,回调函数调用set函数进行值的修改,成功返回0失败返回1,并调用另一个函数,将结果发送给app。但是set函数内部,有针对变更的判定,即只有状态量发生了改变,才会返回0。这里的定义有问题,因为get,set这类函数,要足够纯粹,执行成功就返回0,不应该把是否变更这种内容带入返回值中。...原创 2018-11-01 15:26:11 · 1337 阅读 · 0 评论 -
windows下搭建python环境笔记
因为cpu跑数据太慢,考虑用gpu,公司有台Tesla P100的服务器,也是很棒。过程中遇到很多坑,最终总结步骤如下:1.安装anaconda32.安装pycharm专业版,激活方法自搜,一般用激活码3.进入pycharm建立工程,编写自己的python脚本,并在settings中设置工程的python解释器,建议用虚拟解释器,模板可以用anaconda3的,这样不会影响Wind...原创 2018-09-04 00:34:01 · 272 阅读 · 0 评论 -
正则表达式匹配IPV4地址
给出两个版本:版本1【js】:^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$缺点在于没有识别首位的0版本2【C】:^([0-9]|[1-9][0-9]|1...转载 2018-08-28 10:51:13 · 1632 阅读 · 0 评论 -
工作日志2018.8.7
1.mkdir -p 的作用在于可以一次性创建多级目录,例如:需要创建目录A和其子目录B,没有用-p的情况下,mkdir 需要逐个创建目录mkdir Amkdir A/B如果用-p 可以直接创建2个目录(如果父目录A不存在就创建):mkdir -p A/B 2.关于openwrt的编译,package下面是各个软件包,包目录下的makefile是给menuconfig看...原创 2018-08-07 10:56:18 · 279 阅读 · 0 评论 -
SmartConfig心得总结
1.一定要了解802.11帧格式的原理,了解各ADDR字段的含义2.编码长度是相对值,获取同步头的过程中需要计算编码基准长度2.数据一定要顺序解耦,即任何一个数据的解析不能依赖于它与其他数据的相对顺序,一个较好的方式是使用多个组播地址,对配网包的各字节数据进行分离3.同步头和数据部分的比例要合适,因为配网分为两个阶段即数据源定位和配网数据获取,比例失调会导致某一个阶段时间过长4.信...原创 2019-01-18 12:21:07 · 866 阅读 · 0 评论