Files
modbusmaster/src/MyRS485.py

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)