Software_and_hardware/Проверка_портов.py

44 lines
1.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from flask import Flask, jsonify
from pymodbus.client import ModbusSerialClient
import serial.tools.list_ports
app = Flask(__name__)
# Определяем доступные COM-порты
def find_arduino_port():
ports = list(serial.tools.list_ports.comports())
for port in ports:
if "Arduino" in port.description or "CH340" in port.description:
return port.device
return None
# Ищем подключенный Arduino
port = find_arduino_port()
if not port:
print("Не найден Arduino, проверьте подключение!")
exit(1)
# Настройка подключения к Modbus
client = ModbusSerialClient(port=port, baudrate=115200, timeout=1, stopbits=1, bytesize=8, parity='N')
# Проверка подключения
if not client.connect():
print(f"Ошибка подключения к {port}")
exit(1)
else:
print(f"Подключение успешно: {port}")
@app.route('/modbus-status', methods=['GET'])
def modbus_status():
try:
# Читаем 1 регистр, начиная с адреса 0
response = client.read_holding_registers(0, 1, slave=1)
if response.isError():
return jsonify({"error": "Ошибка чтения Modbus"}), 500
return jsonify({"pin_status": response.registers[0]})
except Exception as e:
return jsonify({"error": str(e)}), 500
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000, debug=True)