Ejemplo n.º 1
0
        public override void OnReceive(Client sender, byte[] data)
        {
            try
            {
                Header h = Header.Parser.ParseFrom(data);
                if (h != null)
                {
                    switch (h.Opcode)
                    {
                    case OPCODE.Ack:
                        log.Debug("Received Ack:" + h.ToString());
                        gotAck = true;
                        gui.ShowMessage("CICD: " + lastCommand + " pass");
                        break;

                    case OPCODE.Nack:
                        gotNack = true;
                        log.Debug("Received Nack:" + h.ToString());
                        gui.ShowMessage("CICD: " + lastCommand + " failed");
                        log.Warn("got Nack from the server");
                        break;


                    case OPCODE.FeConfstatusChanged:
                        feStatus         = FEConfStatusChanged.Parser.ParseFrom(h.MessageData);
                        feStatusEeceived = true;
                        log.Debug("Received FeConfstatusChanged:" + feStatus.ToString());
                        break;

                    case OPCODE.SwfeStateChanged:
                        swState            = SWFE_state_changed.Parser.ParseFrom(h.MessageData);
                        configureFE_Status = swState.ReturnCode == SWFE_state.SwfeRunning;
                        //gui.ShowMessage("CICD: SwfeStateChanged status is " + this.isRunnign.ToString());
                        swStateReceived = true;
                        log.Debug("Received FeConfstatusChanged:" + swState.ToString());
                        break;

                    case OPCODE.HwfeStateChanged:
                        HWFE_state_changed hwState = HWFE_state_changed.Parser.ParseFrom(h.MessageData);
                        configureFE_Status = hwState.ReturnCode != 0;
                        //gui.ShowMessage("CICD: HwfeStateChanged status is " + this.isRunnign.ToString());
                        hwStateReceived = true;
                        log.Debug("Received FeConfstatusChanged:" + hwState.ToString());
                        break;

                    case OPCODE.MonitoringReport:
                        monitorReport         = MonitoringReport.Parser.ParseFrom(h.MessageData);
                        monitorReportReceived = true;
                        isRunnign             = monitorReport.FEstatus;
                        isSeperating          = monitorReport.SeparationState;
                        log.Debug("Received FeConfstatusChanged:" + monitorReport.ToString());
                        gui.UpdateCicdCounter(monitorReport.NbDecodedFrames1, monitorReport.NbDecodedFrames2,
                                              monitorReport.NbErrorFrames1, monitorReport.NbErrorFrames2);
                        break;

                    case OPCODE.IdentificationReport:
                        cisStatus         = CicStatus.Parser.ParseFrom(h.MessageData);
                        cisStatusReceived = true;
                        log.Debug("Received FeConfstatusChanged:" + cisStatus.ToString());
                        break;

                    default:
                        log.Warn("Received unknown opcode:" + h.ToString());
                        break;
                    }
                }
            }


            catch (Exception e)
            {
                log.Error("Failed in parse proto message", e);
            }
        }