python实战串口助手---4实现串口功能

在研究别人的代码和资料后,进行了深入的学习后,整理了一版串口的操作代码,
功能包括启动,停止,读,和写,目前还没有加到界面上,下一步,大家不要着急,也不要催我,我会慢慢搞定的哦。

废话不说了,先给大家代码,欢迎大家的批评和指正,当然是参考了前人的作品改动的,请高手见谅啊,我的目的也是学习和带动大家学习,不是想要什么回报的。

import sys
import threading
import time
import serial
import binascii
import logging
 
class serDeal(object):
    def __init__(self, Port="COM4", BaudRate="9600", ByteSize="8", Parity="N", Stopbits="1", timeout=None, xonxoff=0, rtscts=0):
        self.serSer = None
        self.alive = False
        self.port = Port
        self.baudrate = BaudRate
        self.bytesize = ByteSize
        self.parity = Parity
        self.stopbits = Stopbits
        self.thresholdValue = 64
        self.receive_data = ""
 
    def start(self):
        self.serSer = serial.Serial()
        self.serSer.port = self.port
        self.serSer.baudrate = self.baudrate
        self.serSer.bytesize = int(self.bytesize)
        self.serSer.parity = self.parity
        self.serSer.stopbits = int(self.stopbits)
        self.serSer.timeout = 2
         
        try:
            self.serSer.open()
            if self.serSer.isOpen():
                self.alive = True
        except Exception as e:
            self.alive = False
            logging.error(e)
 
    def stop(self):
        self.alive = False
        if self.serSer.isOpen():
            self.serSer.close()
 
    def read(self):
        while self.alive:
            try:
                number = self.serSer.inWaiting()
                if number:
                    self.receive_data += self.serSer.read(number).replace(binascii.unhexlify("00"), "")
                    if self.thresholdValue <= len(self.receive_data):
                        self.receive_data = ""
            except Exception as e:
                logging.error(e)
 
    def write(self, data, isHex=False):
        if self.alive:
            if self.serSer.isOpen():
                if isHex:
                    # data = data.replace(" ", "").replace("\n", "")
                    data = binascii.unhexlify(data)
                self.serSer.write(data)

水平有限,也是刚学习python不久,大家多指点,谢谢!                                           




                                                                                 发稿与2018年1月19日


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值