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

[复制链接]

版主

发表于 2018-1-19 11:56:56   501 查看 0 回复 显示全部楼层 倒序浏览
分享
本帖最后由 lee_st 于 2018-1-23 15:12 编辑

在研究别人的代码和资料后,进行了深入的学习后,整理了一版串口的操作代码,
功能包括启动,停止,读,和写,目前还没有加到界面上,下一步,大家不要着急,也不要催我,我会慢慢搞定的哦。
废话不说了,先给大家代码,欢迎大家的批评和指正,当然是参考了前人的作品改动的,请高手见谅啊,我的目的也是学习和带动大家学习,不是想要什么回报的。
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 收起 理由
damao + 10

查看全部评分

标签:串口 助手 功能

只有小组成员才能发言,加入小组>>

12个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /9 下一条

快速回复 返回顶部 返回列表
-

推荐专区

技术干货集中营

专家问答

方案交易

用户帮助┃咨询与建议┃版主议事

工程师杂谈

工程师创意

招聘|求职}工程师职场

论坛电子赛事

社区活动专版

发烧友活动

-

嵌入式论坛

ARM技术论坛

Android论坛

Linux论坛

单片机/MCU论坛

MSP430技术论坛

FPGA|CPLD|ASIC论坛

STM32/STM8技术论坛

NXP MCU 技术论坛

PIC单片机论坛

DSP论坛

瑞萨单片机论坛

嵌入式系统论坛

-

电源技术论坛

电源技术论坛

无线充电技术

-

硬件设计论坛

PCB设计论坛

电路设计论坛

电子元器件论坛

控制|传感

总线技术|接口技术

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术专区

仪器仪表技术专区

-

EDA设计论坛

multisim论坛

PADS技术论坛

Protel|AD|DXP论坛

Allegro论坛

proteus论坛|仿真论坛

EasyEDA-中国人自已的EDA工具

Orcad论坛

-

综合技术与应用

电机控制

智能电网

光电及显示

工程资源中心

汽车电子技术论坛

医疗电子论坛

-

开源硬件

-

无线通信论坛

无线通信技术专区

天线|RF射频|微波|雷达技术

-

IC设计论坛

芯片测试与失效分析

Mixed Signal/SOC[数模混合芯片设计]

Analog/RF IC设计

设计与制造封装测试

-

厂商专区

TI论坛

TI Deyisupport社区

-

检测技术与质量

电磁兼容(EMC)设计与整改

安规知识论坛

检测与认证

-

消费电子论坛

手机技术论坛

平板电脑/mid论坛

音视/视频/机顶盒论坛

-

电子论坛综合区

聚丰众筹官方社区

新人报道区

聚丰供应链

-

论坛服务区

-

供求信息发布

供需广告

电子展览展会专区

芯片求购|供应发布区