首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >选择pySerial连接

选择pySerial连接
EN

Stack Overflow用户
提问于 2014-03-17 20:30:21
回答 1查看 925关注 0票数 2

我正在处理一个项目,在这个项目中,我想使用相同的UART进行几次迭代,但不是每次都打开和关闭它。因此,我试图使用泡菜将串行对象写到文件中,这样我就可以在任何我想要的文件中解压缩它,而不需要每次连接到串口的开销。

然而,我遇到了错误。这是我的密码:

代码语言:javascript
运行
复制
import sys
import serial
import pickle

ser = serial.Serial('/dev/tty1', 19200)
f = open('myfile.dat', 'wb+')
P = pickle.Pickler(f)
lineOCode = 'LOLOLOL'
P.dump(ser)

我收到了错误信息,告诉我我不能挑选一个串行对象。(端口打开得很好,有问题的是泡菜函数。)

结果:

代码语言:javascript
运行
复制
File "serial_pick.py", line 9, in <module>
P.dump(ser)
File "/usr/lib/python2.7/pickle.py", line 224, in dump
self.save(obj)
File "/usr/lib/python2.7/pickle.py", line 306, in save
rv = reduce(self.proto)
File "/usr/lib/python2.7/copy_reg.py", line 80, in _reduce_ex
dict = self.__dict__
TypeError: this __dict__ descriptor does not support 'Serial' objects

有什么想法吗?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2014-03-17 21:04:11

我不认为你能腌制出这样的东西:

你能吃点什么? 通常,如果可以选择对象的每个属性,则可以对任何对象进行分类。类、函数和方法不能被腌制--如果你对一个对象进行腌制,对象的类就不会被腌制,而只是一个字符串来识别它属于哪个类。这对于大多数泡菜来说都很好(但请注意关于长期储存泡菜的讨论)。 使用泡菜协议v1,您不能选择打开的文件对象、网络连接或数据库连接。当你想到它的时候,它是有意义的--当你打开你的对象时,泡菜不能让文件对象的连接存在,而创建连接的过程超出了泡菜可以自动为你做的事情。如果您真的想要挑选一些具有导致问题的属性的东西,请查看getstatesetstategetinitargs的泡菜文档--使用这些属性可以排除有问题的属性。 使用泡菜协议v2,您可以对打开的文件对象进行筛选。这将在将来的Python版本中发生变化。有关更多信息,请参见此错误报告。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22464702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档