Python,抽象类的最佳实践

时间:2014-02-17 04:53:31

标签: class serial-port echo microcontroller abstraction

这里的第一个问题是堆栈!

我需要在Pyserial模块和从其他模块调用它之间创建一个抽象层。简而言之,脚本将向设备发送命令,但是它发送这些字符串的方法可以是通过串行端口,也可以是通过TTY线路回送。用于控制设备的绝大多数python代码相当成熟并且运行良好,但此时我们将引入具有相同功能的另一种设备类型,只需减去串口控制。

对于一台设备,我会执行以下操作...

import serial
ser = serial.Serial('/dev/ttyUSB0', 115200, timeout=1)
ser.write('command to microcontroller')
ser.close()

对于新设备,由于缺少串口,我会执行以下操作...

import os
str = 'command to microcontroller'
a = 'echo' + " '" + str + "' " + "> " + '/dev/ttymxc0'
os.system(a)

我现在有一个处理这个问题的工作流程,但这看起来非常浪费。我基本上在一个模块中导入序列(上面的代码片段来自这个模块)并让我所有的调用与微模块通信到这个模块,以确定它是否应该从串口输出或回显一个tty线。看起来我基本上是为Serial模块的每个部分(ser.write,ser.close,ser.DTR等)重写函数,并根据设备类型创建if语句。

我的问题是,这个例子中的一个类在功能和代码行方面会不那么浪费,还是分裂了?

谢谢!

0 个答案:

没有答案