28 lines
738 B
Python
28 lines
738 B
Python
import serial
|
|
# import wiringpi
|
|
import Pins
|
|
import array
|
|
import fcntl
|
|
import termios
|
|
|
|
DE_PIN = 0
|
|
|
|
|
|
class MyRS485(serial.Serial):
|
|
def __init__(self, *args, **kwargs):
|
|
super().__init__(*args, **kwargs)
|
|
# wiringpi.wiringPiSetup()
|
|
# wiringpi.pinMode(DE_PIN, wiringpi.OUTPUT)
|
|
self.buf = array.array('h', [0])
|
|
|
|
def write(self, b):
|
|
# wiringpi.digitalWrite(DE_PIN, wiringpi.HIGH)
|
|
Pins.pinsWrite('DE', True)
|
|
super().write(b)
|
|
while True:
|
|
fcntl.ioctl(self.fileno(), termios.TIOCSERGETLSR, self.buf, 1)
|
|
if self.buf[0] & termios.TIOCSER_TEMT:
|
|
break
|
|
# wiringpi.digitalWrite(DE_PIN, wiringpi.LOW)
|
|
Pins.pinsWrite('DE', False)
|