//AsynFeedback private void button10_Click(object sender, EventArgs e) { ParamPackage packageSended = PackMessage(); ReplyCommunicatePackage replyCommunicatePackage = localDevice.CreateReplyCommunicatePackage(requestPackage, (ReplyPackage.Middleware_ReplyInfo)comboBox13.SelectedItem, packageSended); localDevice.AsynFeedbackCommunicateReplyMessage(replyCommunicatePackage); }
protected ReplyCommunicatePackage CoCreateReplyCommunicatePackage(RequestPackage reqtPkg, ReplyPackage.Middleware_ReplyInfo statCodec, ParamPackage paramspkg) { ReplyCommunicatePackage replyCommunicatePkg = new ReplyCommunicatePackage(); replyCommunicatePkg.RemotReqtPkg = reqtPkg; replyCommunicatePkg.RemotRet = statCodec; replyCommunicatePkg.ParamPackage = paramspkg; return(replyCommunicatePkg); }
private void RequestPackage_Received(RequestPackage p) { //requestPackage = p; //string[] receivedDetails = new string[p.ParamDefalutValues.Values.Count]; ////List<System.Int64> retList = p.Values<System.Int64>("value"); ////Console.WriteLine(retList.ToString()); //p.ParamDefalutValues.Values.CopyTo(receivedDetails, 0); //string log = ""; //log = "From device: " + p.SourDevice.Detail + "\n" + "OperatName: " + p.OperatName + "\n" + "Message: " + receivedDetails[0]; //this.richTextBox1.Text = log; ParamPackage parm = new ParamPackage("x86-reply", new Dictionary <string, byte[]>()); parm.ParamDefalutValues.Add("value", Encoding.UTF8.GetBytes("x86-reply")); ReplyCommunicatePackage replyPkg = localDevice.CreateReplyCommunicatePackage(p, ReplyPackage.Middleware_ReplyInfo.S_OK, parm); localDevice.AsynFeedbackCommunicateReplyMessage(replyPkg); }
private void __AsynFeedbackCommunicateReplyMessageRunning(ReplyCommunicatePackage communicator) { if (_waitResponOutsideReqtPkg2CCReqtPkg.ContainsKey(communicator.RemotReqtPkg) && _waitResponCCReqtPkg2ReqtMTPkg.ContainsKey(_waitResponOutsideReqtPkg2CCReqtPkg[communicator.RemotReqtPkg])) { ReplyPackage replyPkg = new ReplyPackage(communicator.RemotRet, communicator.ParamPackage.ParamDefalutValues); C2CReplyPackage c2cReplyPkg = new C2CReplyPackage(ReplyPackage.Middleware_ReplyInfo.S_OK, null); c2cReplyPkg.OutSideMessage = replyPkg; C2CRequestPackage sourC2CReqtPkg = _waitResponOutsideReqtPkg2CCReqtPkg[communicator.RemotReqtPkg] as C2CRequestPackage; string mtReplyPkgReplyid = (_waitResponCCReqtPkg2ReqtMTPkg[sourC2CReqtPkg] as RequestMTPackage).MessageId; ReplyMTPackage mtReplyPkg = new ReplyMTPackage(c2cReplyPkg, _selfDevice, communicator.RemotReqtPkg.SourDevice, mtReplyPkgReplyid); try { _middlewareCommunicateProcessor.AsynSendMessage(mtReplyPkg); } catch (System.Exception ex) { //throw excetion "ex" this.CoMiddleware2MiddlewareAsynReplyCommunicatErrorRecived_OutsideNotify(communicator, new MiddlewareCommunicatErrorExcetion(ex.ToString())); } _waitResponOutsideReqtPkg2CCReqtPkg.Remove(communicator.RemotReqtPkg); _waitResponCCReqtPkg2ReqtMTPkg.Remove(sourC2CReqtPkg); } else { //throw excetion "在尝试匹配应答报文的时候,查询源报文索引失败" this.CoMiddleware2MiddlewareAsynReplyCommunicatErrorRecived_OutsideNotify(communicator, new MiddlewareCommunicatErrorExcetion("在尝试匹配应答报文的时候,查询源报文索引失败")); } }
protected void CoAsynFeedbackCommunicateReplyMessage(ReplyCommunicatePackage communicator) { _asynFeedbackCommunicateReplyMessageRunner.EnqueueMessage(communicator); }
protected void CoSynFeedbackCommunicateReplyMessage(ReplyCommunicatePackage communicator, int timeMillionsecond) { throw new NotImplementedException("废弃接口,打回应答报文无同步操作必要"); }
/// <summary> /// 反馈一个应答通讯包, 非阻塞式 /// </summary> /// <param name="communicator">应答通讯包</param> public void AsynFeedbackCommunicateReplyMessage(ReplyCommunicatePackage communicator) { base.CoAsynFeedbackCommunicateReplyMessage(communicator); }