/// <summary> /// 为request提供默认处理方式 /// </summary> /// <param name="request"></param> public void AddRequestWithDefaultOperation(RequestItem request) { // 对于respond进行检验 request.ValidateResponseHandler += response => { if (response[0] != 0x81) { string s = new StringBuilder().AppendFormat( "接收错误数据 {0} : {1}", DateTime.Now.ToString(TimePattern), BytesToHexString(response)).ToString(); //App.Current.Dispatcher.Invoke((Action) delegate //{ _runningStatus.Add(s); //}); return(false); } byte[] CrcTmp = new byte[2]; if (CalculateCRCHelper(response, response.Length - 2, ref CrcTmp)) { if (response[response.Length - 2] == CrcTmp[0] && response[response.Length - 1] == CrcTmp[1]) { string s = new StringBuilder().AppendFormat( "接收 {0} : {1}", DateTime.Now.ToString(TimePattern), BytesToHexString(response)).ToString(); //App.Current.Dispatcher.Invoke((Action) delegate //{ _runningStatus.Add(s); //}); return(true); } else { Debug.WriteLine($"验证错误 传入的数组为: {BitConverter.ToString(response)}"); Debug.WriteLine($"验证错误 计算出的CRC为: {BitConverter.ToString(CrcTmp)}"); return(false); } } Debug.WriteLine($"CRC验证错误"); return(false); }; // 对于验证有效的respond默认尝试发送下一条request(如果有的话) request.AfterResponseValidatedHandler += async(sender, args) => { await Continue(); }; _requests.Add(request); }
public void AddRequest(RequestItem request) { // 对于验证有效的respond默认尝试发送下一条request(如果有的话) // 不应该提供默认选项,需要在判断有效后,再决定后面的处理方式 //request.AfterResponseValidatedHandler += (sender, args) => //{ // SendNextRequest(); //}; _requests.Add(request); }