/// <summary> /// Close all ports. /// </summary> /// <param name="port">Port to close.</param> internal static void Close(PortDto port) { using (var ctx = new PortDtoFactory()) { ctx.Close(port); } }
/// <summary> /// List existing serial ports. /// </summary> internal static List<PortDto> List() { List<PortDto> result; using (var ctx = new PortDtoFactory()) { result = ctx.List(); } return result; }
/// <summary> /// Get the next complete message. /// </summary> /// <param name="port">Port to use.</param> /// <return>Received message.</return> internal static MessageDto Receive(PortDto port) { MessageDto result; do { using (var ctx = new PortDtoFactory()) { result = ctx.Receive(port); } } while (result.IsComplete == false && result.Size != 0); return result; }
/// <summary> /// Connect to port. /// </summary> /// <param name="port">Port to use.</param> /// <returns>Port.</returns> internal static PortDto Connect(PortDto port) { var portName = port.Name?.ToUpperInvariant() ?? string.Empty; if (!string.IsNullOrEmpty(portName)) { if (port.IsOpen == false) { using (var ctx = new PortDtoFactory()) { port = ctx.Connect(port); } } } else { port.IsOpen = false; } return port; }
/// <summary> /// Send a message. /// </summary> /// <param name="port">Port to use containing message.</param> /// <param name="message">Message to send.</param> /// <returns>Send result.</returns> internal static bool Send(PortDto port, MessageDto message) { bool result; using (var ctx = new PortDtoFactory()) { result = ctx.Send(port, message); } return result; }