diff --git a/serial_to_mqtt_bridge/serial_to_mqtt.py b/serial_to_mqtt_bridge/serial_to_mqtt.py index 4a0825f7b22d23047f637ce07df1f62f954edf5b..456d548daca19418b959926958b552def92bb2bc 100755 --- a/serial_to_mqtt_bridge/serial_to_mqtt.py +++ b/serial_to_mqtt_bridge/serial_to_mqtt.py @@ -24,10 +24,10 @@ def cyclic_file_reader(file_path): yield line.strip() # Yield each line, stripped of whitespace # Main function to handle serial data or send lines from file if no port is provided -def main(serial_port=None, baud_rate=115200, file_path="sim_data.txt", mqtt_broker="localhost", mqtt_port=1883, mqtt_topic="serial2MQTT", sim_interval=1): +def main(serial_port=None, baud_rate=115200, file_path="sim_data.txt", mqtt_broker="192.168.52.5", mqtt_port=1883, mqtt_topic="serial2MQTT", sim_interval=1): connect_mqtt(mqtt_broker, mqtt_port) - if serial_port: + if serial_port.lower() != "sim": # If serial port is provided, read from it ser = serial.Serial(serial_port, baud_rate, timeout=1) try: @@ -51,7 +51,7 @@ def main(serial_port=None, baud_rate=115200, file_path="sim_data.txt", mqtt_brok client.loop_stop() client.disconnect() else: - # If no serial port is provided, send lines from the file cyclically + # If simulation mode is selected, send lines from the file cyclically file_reader = cyclic_file_reader(file_path) cnt=0 try: @@ -70,13 +70,15 @@ def main(serial_port=None, baud_rate=115200, file_path="sim_data.txt", mqtt_brok client.loop_stop() client.disconnect() + + if __name__ == "__main__": # Load configuration from YAML config = load_config() # Argument parser for serial port, baud rate, and file path - parser = argparse.ArgumentParser(description="Read from serial port and publish to MQTT.") - parser.add_argument("--serial_port", type=str, default=config['serial'].get('port'), help="Serial port to connect to (e.g., /dev/ttyUSB0)") + parser = argparse.ArgumentParser(description="Read data from serial port and publish to MQTT.") + parser.add_argument("serial_port", type=str, help="Serial port to connect to (e.g., /dev/ttyUSB0) or 'sim' for simulation mode") parser.add_argument("--baud_rate", type=int, default=config['serial'].get('baud_rate', 115200), help="Baud rate for serial communication") parser.add_argument("--file_path", type=str, default=config['sim'].get('file_path'), help="Path to the file with data for MQTT") parser.add_argument("--mqtt_broker", type=str, default=config['mqtt'].get('broker', "localhost"), help="MQTT broker address")