modbus.py 1020 B

1234567891011121314151617181920212223242526272829303132333435
  1. import time
  2. from serial import Serial
  3. import colorama
  4. from colorama import Fore, Style
  5. class Modbus:
  6. def __init__(self, tty: str, brate: int, address: str):
  7. self.serial = Serial(port=tty, baudrate=brate, timeout=0.05, parity='N', xonxoff=False)
  8. self.address = address
  9. def test_send(self, data: bytes):
  10. while True:
  11. self.serial.write(data)
  12. time.sleep(1)
  13. def send_recv(self, data, number):
  14. self.serial.write(data)
  15. # while True:
  16. # self.serial.write(data)
  17. # recv = self.serial.read_all()
  18. # print(recv)
  19. # print(recv.decode('utf_8'))
  20. # time.sleep(1)
  21. def main():
  22. colorama.init()
  23. dev = Modbus('COM22', 115200, 1)
  24. # dev.test_send(bytes('hello world\r\n', encoding="utf_8"))
  25. # tx_data = 'hello world\r\n'
  26. tx_data = 'abc'
  27. dev.send_recv(bytes(tx_data, encoding="utf_8"), len(tx_data))
  28. if __name__ == '__main__':
  29. main()