2020-12-1-xtx第13周开发日记

发布时间 2023-09-17 19:22:38作者: Yecgaa1
layout: post
title: xtx第13周开发日志
categories: 日志
tags: 
    - 日志 
    - 2020日志
BGImage: 'https://cdn.jsdelivr.net/gh/xutongxin1/xutongxin1.github.io@d65706f589a6ace903309ed982a3058a2b3251e3/asset/%E6%97%A5%E5%BF%97/20201211144323.png'
jekyll-theme-WuK:
    musicid: '28561009'

第13周开发日志

11.30-12.2

还是RGB灯的调试

为了实现呼吸灯和顺滑变换继续下功夫中

老实说简单的东西不易做

然后是测试树莓派

树莓派需要在图形化界面下初始化,可以用VNC

然后MobaXterm神奇的不支持我的VNC,最后用了VNC Viewer

为了在没屏幕下使用ssh和wifi,需要在boot盘下创建ssh(小写无后缀)文件和wpa_supplicant.conf

country=CN

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

update_config=1

 

network={

ssid="xtx"

psk="wifi密码"

key_mgmt=WPA-PSK

priority=1

}

树莓派在没初始化之前,每开一次机都会把ssh文件删除,直到你初始化那一次就不会删了

树莓派的wifi的ip老是跳,就给它静态了吧

树莓派ssh默认用户名和密码是:

  • 用户名:pi
  • 密码:raspberry

今天无意间撇到一眼一个文章标题

一开始以为是什么标题党水文,后来·····

要在后台运行终端命令,请按:

CTRL+Z:暂停应用程序

fg:返回到应用程序

确实挺好

12.3

今天开始测试SnowBoy

虽然这个项目就要关门了(而且我还发现百度是他的老板)

Traceback (most recent call last):
  File "demo.py", line 33, in <module>
    sleep_time=0.03)
  File "/home/pi/snowboy/examples/Python3/snowboydecoder.py", line 176, in start
    stream_callback=audio_callback)
  File "/usr/lib/python3/dist-packages/pyaudio.py", line 750, in open
    stream = Stream(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/pyaudio.py", line 441, in __init__
    self._stream = pa.open(**arguments)
OSError: [Errno -9997] Invalid sample rate

查了一吨怪资料,才意识到自己就是没看英文

就最后一段英文重要你这都不看?????!!!!

采样率过高了,得降低采样,还得再研究一下

12.4

重新学了一下Jetsbrain类软件调试功能的妙用

https://www.cnblogs.com/chiangchou/p/idea-debug.html

步过,步入,强制步入的区别

    > Step Over (F8):步过,一行一行地往下走,如果这一行上有方法不会进入方法。

    > Step Into (F7):步入,如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,不会进入官方类库的方法,如第25行的put方法。

    > Force Step Into (Alt + Shift + F7):强制步入,能进入任何方法,查看底层源码的时候可以用这个进入官方类库的方法。

然后发现一些独特功能

IDEA给JAVA专用的

> Drop Frame (默认无):回退断点,和jvm出栈有关

Update 'tech' application (Ctrl + F5):更新程序,一般在你的代码有改动后可执行这个功能。而这个功能对应的操作则是在服务配置里

然后是智能步入

 想想,一行代码里有好几个方法,怎么只选择某一个方法进入。之前提到过使用Step Into (Alt + F7) 或者 Force Step Into (Alt + Shift + F7)进入到方法内部,但这两个操作会根据方法调用顺序依次进入,这比较麻烦。

  那么智能步入就很方便了,智能步入,这个功能在Run里可以看到,Smart Step Into (Shift + F7)

  img

​ 通过设置断点条件,在满足条件时,才停在断点处,否则直接运行。

  通常,当我们在遍历一个比较大的集合或数组时,在循环内设置了一个断点,难道我们要一个一个去看变量的值?那肯定很累,说不定你还错过这个值得重新来一次。

  在断点上右键直接设置当前断点的条件,设置exist为true时断点才生效。

  img

调试步过到死的人的福音

VMWare WorkStation Pro 16.0不再支持开启虚拟机共享

然后16.1又被暂时加回来

但是预计还是要没了

image-20201204200601377

所以建议不要装16.0,装了也可以升级到16.1,但不要再升级了

许可证的话16.0的密钥整个16.X版本都可以用的

12.5

都是升级的锅

Clion从2020.2.3到了2020.3

然后配置文件就翻车了

更新之后的

123

那个执行前的构建直接没了

一直调试无果,人都傻了

其次是

不要开着Proxifier玩MobaXterm

否则你会见到端口扫描结果全开

ssh完全连不上的尴尬

然后是冷门生僻的东西

CMAKE_BUILD_TYPE

指定编译调试版本或者发布版本,可以在Cmakelist中更改不同版本对应的编译策略

比如

if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
    message(STATUS "Maximum optimization for speed")
    add_compile_options(-Ofast)
elseif ("${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo")
    message(STATUS "Maximum optimization for speed, debug info included")
    add_compile_options(-Ofast -g)
elseif ("${CMAKE_BUILD_TYPE}" STREQUAL "MinSizeRel")
    message(STATUS "Maximum optimization for size")
    add_compile_options(-Os)
else ()
    message(STATUS "Minimal optimization, debug info included")
    add_compile_options(-Og -g3)
endif ()

翻译一下是

翻译结果
如果(“ $ {CMAKE_BUILD_TYPE}” STREQUAL“发布”)
     消息(状态“最大速度优化”)
     add_compile_options(-Ofast)
elseif(“ $ {CMAKE_BUILD_TYPE}” STREQUAL“ RelWithDebInfo”)
     消息(状态“最大速度优化,包括调试信息”)
     add_compile_options(-Ofast -g)
elseif(“ $ {CMAKE_BUILD_TYPE}” STREQUAL“ MinSizeRel”)
     消息(状态“最大尺寸优化”)
     add_compile_options(-Os)
其他()
     消息(状态“最小优化,包括调试信息”)
     add_compile_options(-Og -g3)
万一 ()

add_compile_options

后面的

-Og -g3

均为优化参数

g0优化低,g3优化高

但是由于g3优化高有些变量会被清理优化无法响应中断时的任务

所以出问题可以试试改为g0