当前位置: 首页 > news >正文

成都建工路桥建设有限公司网站网站开发 适应 手机 电脑

成都建工路桥建设有限公司网站,网站开发 适应 手机 电脑,网站建设 该如何选好域名,深圳建筑室内设计网站【移远QuecPython】EC800M物联网开发板的内置GNSS定位的恶性BUG#xff08;目前没有完全的解决方案#xff09; GNSS配置如下#xff1a; 【移远QuecPython】EC800M物联网开发板的内置GNSS定位获取#xff08;北斗、GPS和GNSS#xff09; 测试视频#xff08;包括BUG复…【移远QuecPython】EC800M物联网开发板的内置GNSS定位的恶性BUG目前没有完全的解决方案 GNSS配置如下 【移远QuecPython】EC800M物联网开发板的内置GNSS定位获取北斗、GPS和GNSS 测试视频包括BUG复现 【移远QuecPython】EC800M物联网开发板的内置GNSS定位的恶性BUG目前没有完全的解决方案 文章目录 程序跑飞BUG主线程占用BUG可以解决BUG可能原因猜想和目前解决方案GNSS数据缓存越界线程优先级占用目前解决方案 附录列表的赋值类型和py打包列表赋值BUG复现代码改进优化总结 py打包 程序跑飞BUG BUG复现 在我之前的文章中 我在main函数中放了一个死循环 每隔1s 就读一次GNSS数据 同时通过串口打印出来 其中 跑了25次后 GNSS数据有效 我发现 大概跑了20次后也就是第45次 程序会直接跑死 然后大概等个30s又会恢复 恢复以后又能继续读取 且不会再次跑死 此次跑死之前 已经进行了打印 并且串口输出一致 如图 相关函数都在我上一篇文章中 于是我进行了如下测试 注释串口发送 只用print 发现仍然存在将time.sleep(1)替换成一个for循环delay 发现无法读取GNSS数据 遂引出第二个BUG保留GNSS初始化 将读取GNSS注释 只用串口打印一个次数或只用print打印 发现仍然存在将GNSS初始化注释 GNSS读取注释 只用串口和print打印一个次数 发现没有BUG保留GNSS初始化 注释GNSS读取 在室内进行串口和print测试 发现没有BUG 情况3和情况2我都在视频里面一起放出来了 由此可见 出现BUG时 就是GNSS模块初始化上电以后 并且需要获取到数据以后不管是否进行读取 都会出现这个BUG 主线程占用BUG可以解决 上文提到的第2种情况 写了一个简单延时 def delay(n):for i in range(n):for j in range(500):ii delay(500)实测这个延时大概也就是1s时间 比1s稍微大一点点 如图 GNSS数据始终没有如果数据无效 也会返回NMEA-0183协议的数据 只不过里面的值不存在 并且一直保持这样 BUG可能原因猜想和目前解决方案 此py环境其实是一种虚拟环境 底层是RTOS 然后RTOS生成一个Python里面跑命令行的环境 最后再通过这个环境执行py代码 也就是三层嵌套 GNSS数据缓存越界 观察到 在GNSS初始化上电成功 并能读出第一条数据开始 过了大约30s 就会跑死 并且特别稳定 每次都是那个计数点 所以 可能就是在此期间 底层寄存器的缓存越界 导致出现跑飞BUG 但是 等跑飞恢复以后 又能一直持续工作 所以可能是初始化的指针位置没给对 有待考证 线程优先级占用 RTOS主要负责寄存器和CPU的任务调度 那么 就有可能 在主线程中跑了死循环 导致GNSS模块的线程无法执行初始化 但是这一点手册并没有提到 只是说会抢占LTE资源 有待考证 目前解决方案 多线程解决 中断优先级线程主线程 该方法可以解决GNSS被线程占用的问题 但无法解决跑飞的问题 另外 不建议使用多线程 其中一个原因就是 如果不强制关闭或者复位 线程使用不安全很容易越界 附录列表的赋值类型和py打包 列表赋值 BUG复现 闲来无事写了个小程序 代码如下 # -*- coding: utf-8 -*-Created on Fri Nov 19 19:47:01 2021author: 16016 a_list [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] #print(len(a_list)) #b_list [,,,,,,,,,,,,,,,] c_list [[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]] #for i in range(16): if len(a_list):for j in range(16):a_list[j]str(a_list[j])_str(j)print(序号:,j)print(a_list:\n,a_list)c_list[j]a_listprint(c_list[0]:\n,c_list[0])print(\n) # b_list[j]a_list[7],a_list[8] # print(b_list[j])# 写入到Excel #print(c_list,\n) 我在程序中 做了一个16次的for循环 把列表a的每个值后面依次加上_和循环序号 比如循环第x次 就是把第x位加上_x 这一位变成x_x 我在输出测试中 列表a的每一次输出也是对的 循环16次后列表a应该变成[‘0_0’, ‘1_1’, ‘2_2’, ‘3_3’, ‘4_4’, ‘5_5’, ‘6_6’, ‘7_7’, ‘8_8’, ‘9_9’, ‘10_10’, ‘11_11’, ‘12_12’, ‘13_13’, ‘14_14’, ‘15_15’] 这也是对的 同时 我将每一次循环时列表a的值 写入到空列表c中 比如第x次循环 就是把更改以后的列表a的值 写入到列表c的第x位 第0次循环后 c[0]的值应该是[‘0_0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’, ‘10’, ‘11’, ‘12’, ‘13’, ‘14’, ‘15’] 这也是对的 但是在第1次循环以后 c[0]的值就一直在变 变成了c[x]的值 相当于把c_list[0]变成了c_list[1]…以此类推 最后得出的列表c的值也是每一项完全一样 我不明白这是怎么回事 我的c[0]只在第0次循环时被赋值了 但是后面它的值跟着在改变 如图 第一次老出bug 赋值以后 每次循环都改变c[0]的值 搞了半天都没搞出来 无论是用appen函数添加 还是用二维数组定义 或者增加第三个空数组来过渡 都无法解决 代码改进 后来在我华科同学的指导下 突然想到赋值可以赋的是个地址 地址里面的值一直变化 导致赋值也一直变化 于是用第二张图的循环套循环深度复制实现了 代码如下 # -*- coding: utf-8 -*-Created on Fri Nov 19 19:47:01 2021author: 16016 a_list [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] #print(len(a_list)) #b_list [,,,,,,,,,,,,,,,] c_list [[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]] #for i in range(16): if len(a_list):for j in range(16):a_list[j]str(a_list[j])_str(j)print(序号:,j)print(a_list:\n,a_list)for i in range(16):c_list[j].append(a_list[i])print(c_list[0]:\n,c_list[0])print(\n) # b_list[j]a_list[7],a_list[8] # print(b_list[j])# 写入到Excel print(c_list,\n) 解决了问题 优化 第三次是请教了老师 用copy函数来赋真值 代码如下 # -*- coding: utf-8 -*-Created on Fri Nov 19 19:47:01 2021author: 16016 a_list [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] #print(len(a_list)) #b_list [,,,,,,,,,,,,,,,] c_list [[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]] #for i in range(16): if len(a_list):for j in range(16):a_list[j]str(a_list[j])_str(j)print(序号:,j)print(a_list:\n,a_list)c_list[j]a_list.copy()print(c_list[0]:\n,c_list[0])print(\n) # b_list[j]a_list[7],a_list[8] # print(b_list[j])# 写入到Excel #print(c_list,\n) 同样能解决问题 最后得出问题 就是指针惹的祸 a_list指向的是个地址 而不是值 a_list[i]指向的才是单个的值 copy()函数也是复制值而不是地址 如果这个用C语言来写 就直观一些了 难怪C语言是基础 光学Python不学C 遇到这样的问题就解决不了 C语言yyds Python是什么垃圾弱智语言 总结 由于Python无法单独定义一个值为指针或者独立的值 所以只能用列表来传送 只要赋值是指向一个列表整体的 那么就是指向的一个指针内存地址 解决方法只有一个 那就是将每个值深度复制赋值子列表内的元素提取出来重新依次连接 或者用copy函数单独赋值 如图测试 部分代码 # -*- coding: utf-8 -*-Created on Sat Nov 20 16:45:48 2021author: 16016 def text1():A[1,2,3]B[[],[],[]]for i in range(len(A)):A[i]A[i]iB[i]Aprint(B)def text2():A[1,2,3]B[[],[],[]]A[0]A[0]0B[0]Aprint(B)A[1]A[1]1B[1]Aprint(B)A[2]A[2]2B[2]Aprint(B)if __name__ __main__:text1()print(\n)text2()py打包 Pyinstaller打包exe包括打包资源文件 绝不出错版 依赖包及其对应的版本号 PyQt5 5.10.1 PyQt5-Qt5 5.15.2 PyQt5-sip 12.9.0 pyinstaller 4.5.1 pyinstaller-hooks-contrib 2021.3 Pyinstaller -F setup.py 打包exe Pyinstaller -F -w setup.py 不带控制台的打包 Pyinstaller -F -i xx.ico setup.py 打包指定exe图标打包 打包exe参数说明 -F打包后只生成单个exe格式文件 -D默认选项创建一个目录包含exe文件以及大量依赖文件 -c默认选项使用控制台(就是类似cmd的黑框) -w不使用控制台 -p添加搜索路径让其找到对应的库 -i改变生成程序的icon图标。 如果要打包资源文件 则需要对代码中的路径进行转换处理 另外要注意的是 如果要打包资源文件 则py程序里面的路径要从./xxx/yy换成xxx/yy 并且进行路径转换 但如果不打包资源文件的话 最好路径还是用作./xxx/yy 并且不进行路径转换 def get_resource_path(relative_path):if hasattr(sys, _MEIPASS):return os.path.join(sys._MEIPASS, relative_path)return os.path.join(os.path.abspath(.), relative_path) 而后再spec文件中的datas部分加入目录 如 a Analysis([cxk.py],pathex[D:\\Python Test\\cxk],binaries[],datas[(root,root)],hiddenimports[],hookspath[],hooksconfig{},runtime_hooks[],excludes[],win_no_prefer_redirectsFalse,win_private_assembliesFalse,cipherblock_cipher,noarchiveFalse)而后直接Pyinstaller -F setup.spec即可 如果打包的文件过大则更改spec文件中的excludes 把不需要的库写进去但是已经在环境中安装了的就行 这些不要了的库在上一次编译时的shell里面输出 比如 然后用pyinstaller --clean -F 某某.spec
http://www.dnsts.com.cn/news/117046.html

相关文章:

  • 怎么做一个购物网站海南住建部建设网站的网站
  • 网站设计案例公司网站帮助文档怎么写
  • 百度搜不到的网站在线制作头像文字图片
  • 做网站网关备案网络教育网站建设
  • asp网站开发工具wordpress建的大型网站
  • 竞网做的网站国外免费域名
  • 广州 网站定制杭州点餐app开发
  • 商城网站模版什么是网站模块
  • 小羚羊网站怎么建设凡科可以建设多个网站吗
  • 西宁的网站建设公司网页设计自学视频网站
  • 网站建设 上海网163企业邮箱登陆口
  • 网站建设网站需要什么电商运营的概念
  • 简单的企业网站西宁网络公司网站制作
  • 长春科技网站建设好网站制作
  • 网站着陆页有多少个自己动手做一个网页
  • 建设微信营销网站wordpress英文企业模板下载
  • 贵州建设厅网站首页二级建造师成绩查询wordpress 多站点注册
  • 建设银行网站卡死高端建站平台设计风格出众
  • 免费建立个人app网站wordpress商务主题
  • 酒店网站建设系统介绍网站开发范本
  • 海口免费网站建设关键词优化话术
  • 中冶东北建设最新网站青岛网站建设哪个好
  • 英文建站网络培训思想汇报大学生
  • 重庆网络公司网站建设网站建设具体要求
  • 淄博市网站云平台免费的h5制作网站模板
  • 交钱做网站对方拿了钱不做该怎么办网站开发都有什么端
  • 铁岭公司做网站高端品牌服装有哪些
  • 网站404怎么做网站建设技术合同
  • 宝塔建站网址专门做图的网站
  • 做网站的关键词网站备案公司