using System.Collections;
using System.IO.Ports;
using UnityEngine;

public class SerialPortReader : MonoBehaviour
{

    public string portToConnectTo = "COM3";
    private SerialPort serialPort;
    private bool isReadingData = false;

    private void Start()
    {
        ShowAllPorts();
        OpenSerialPort();
    }


    private void ShowAllPorts()
    {
        string[] portNames = SerialPort.GetPortNames();

        if (portNames.Length > 0)
        {
            Debug.Log("Available serial ports:");

            foreach (string portName in portNames)
            {
                Debug.Log(portName);
            }
        }
        else
        {
            Debug.Log("No serial ports found.");
        }
    }

    
    void Update(){

        if (serialPort != null && serialPort.IsOpen && isReadingData){
            var receivedData = serialPort.ReadLine();

            Debug.Log(receivedData);
        }
            

    }



    void OnDestroy(){
        CloseSerialPort();
    }

    private void OpenSerialPort()
    {
        Debug.Log("Opening serial port");
        serialPort = new SerialPort(portToConnectTo, 9600); // Replace "COMx" with your actual port name
        serialPort.Open();
        isReadingData = true;
    }

    private void CloseSerialPort()
    {
        Debug.Log("Closing serial port");
        isReadingData = false;
        if (serialPort != null && serialPort.IsOpen)
        {
            serialPort.Close();
        }
    }

}