/// <summary> /// Close a port by SerialPortWithGuid. /// </summary> /// <param name="argSerialPortWithGuid"></param> public void Close(SerialPortWithGuid argSerialPortWithGuid) { argSerialPortWithGuid.Guid = Guid.Empty; argSerialPortWithGuid.Occupied = false; argSerialPortWithGuid.Serial.Close(); argSerialPortWithGuid.Serial.Dispose(); argSerialPortWithGuid.Serial = null; }
/// <summary> /// Init all the serial instances in the target array. /// </summary> public void Init() { for (int i = 0; i < _serialPortArray.Length; i++) { if (_serialPortArray[i] == null) { _serialPortArray[i] = new SerialPortWithGuid(); } } }
/// <summary> /// Occupy a port and use it to communicate. /// </summary> /// <param name="argPortName"></param> /// <param name="argBaudRate"></param> /// <param name="argParity"></param> /// <param name="argHandler"></param> /// <returns></returns> public SerialPortWithGuid Add(string argPortName, int argBaudRate, Parity argParity, SerialDataReceivedEventHandler argHandler) { SerialPortWithGuid tempSerialPortWithGuid = GetFreePort(); tempSerialPortWithGuid.Occupied = true; tempSerialPortWithGuid.Guid = Guid.NewGuid(); tempSerialPortWithGuid.Serial = new SerialPort(argPortName, argBaudRate, argParity); tempSerialPortWithGuid.Serial.Open(); tempSerialPortWithGuid.Serial.DataReceived += argHandler; return(tempSerialPortWithGuid); }