/// <summary> /// 发送请求数据 /// </summary> /// <param name="sendFrameBase"></param> private void Request(SendFrameBase sendFrameBase) { if (sendFrameBase == null) { throw new ArgumentNullException(nameof(sendFrameBase)); } var data = sendFrameBase.FullFrame; TXContainer container = new TXContainer(data); SerialPort.Write(container.FullFrame, 0, container.FullFrame.Length); SerialPort.DataReceived += SerialPort_DataReceived; }
/// <summary> /// 发送请求数据 /// </summary> /// <param name="sendFrameBase"></param> /// <returns></returns> private async Task <T> Request <T>(SendFrameBase sendFrameBase) where T : ReceiveFrameBase, new() { if (sendFrameBase == null) { throw new ArgumentNullException(nameof(sendFrameBase)); } var data = sendFrameBase.FullFrame; TXContainer container = new TXContainer(data); SerialPort.Write(container.FullFrame, 0, container.FullFrame.Length); WriteData?.Invoke(container.FullFrame); return(await GetRespond <T>()); }
private void Log(SendFrameBase context) { Log($"TX:{context.FullFrame.ToHex()}"); }