Exemplo n.º 1
0
        //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);
        }
Exemplo n.º 3
0
        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("废弃接口,打回应答报文无同步操作必要");
 }
Exemplo n.º 7
0
 /// <summary>
 /// 反馈一个应答通讯包, 非阻塞式
 /// </summary>
 /// <param name="communicator">应答通讯包</param>
 public void AsynFeedbackCommunicateReplyMessage(ReplyCommunicatePackage communicator)
 {
     base.CoAsynFeedbackCommunicateReplyMessage(communicator);
 }