コード例 #1
0
        public void SetTxAssigned(string fr)
        {
            _Logger.Trace($"SetTxAssigned <{fr}>");

            FrTxAssigned notif = new FrTxAssigned();

            notif.Frecuency = fr;
            notif.UserId    = Top.Cfg.PositionId;

            Send(Identifiers.TopTopic, Identifiers.FR_TX_ASSIGNED_MSG, notif);
        }
コード例 #2
0
        private void OnMsgReceived(object sender, SpreadDataMsg msg)
        {
            try
            {
                _Logger.Trace($"OnMsgReceived <{msg.Type}>");

                if ((msg.Type == Identifiers.FR_TX_CHANGE_RESPONSE_MSG) ||
                    (msg.Type == Identifiers.FR_RX_CHANGE_RESPONSE_MSG))
                {
                    FrChangeResponse answer = Deserialize <FrChangeResponse>(msg.Data, msg.Length);
                    string           type   = Identifiers.TypeId(typeof(RdSrvFrRs));
                    string           rsUid  = answer.Frecuency.ToUpper() + "_" + type;

                    _Logger.Trace($"OnMsg FR TX or RX Response <{answer.Frecuency}>: {rsUid}");
                    Top.WorkingThread.Enqueue("FrChangeAnswer", delegate()
                    {
                        Resource resource;
                        //if (_Resources.TryGetValue(rsUid, out resource))
                        if (GetResource(rsUid, out resource))
                        {
                            resource.NotifNewMsg(msg.Type, answer.Set);
                        }
                        else
                        {
                            _Logger.Error($"OnMsg FR TX or RX Response Error. Resource not Found <{rsUid}>");
                        }
                    });
                }
                else if (msg.Type == Identifiers.FR_TX_ASSIGNED_MSG)
                {
                    FrTxAssigned notif = Deserialize <FrTxAssigned>(msg.Data, msg.Length);
                    string       type  = Identifiers.TypeId(typeof(RdSrvFrRs));
                    string       rsUid = notif.Frecuency.ToUpper() + "_" + type;

                    _Logger.Trace($"OnMsg FR TX Assigned <{notif.Frecuency}>: {rsUid}");

                    Top.WorkingThread.Enqueue("FrTxAssignedNotif", delegate()
                    {
                        Resource resource;
                        //if (_Resources.TryGetValue(rsUid, out resource))
                        if (GetResource(rsUid, out resource))
                        {
                            resource.NotifNewMsg(msg.Type, notif.UserId);
                        }
                        else
                        {
                            _Logger.Error($"OnMsg FR TX Assigned Error. Resource not Found <{rsUid}>");
                        }
                    });
                }
                else if (msg.Type == Identifiers.FR_HF_TX_CHANGE_RESPONSE_MSG)
                {
                    FrChangeResponse answer = Deserialize <FrChangeResponse>(msg.Data, msg.Length);
                    string           type   = Identifiers.TypeId(typeof(RdSrvFrRs));
                    string           rsUid  = answer.Frecuency.ToUpper() + "_" + type;

                    _Logger.Trace($"OnMsg HF TX Change Response <{answer.Frecuency}>: {rsUid}");

                    Top.WorkingThread.Enqueue("FrHfTxChangeAnswer", delegate()
                    {
                        Resource resource;
                        //if (_Resources.TryGetValue(rsUid, out resource))
                        if (GetResource(rsUid, out resource))
                        {
                            // resource.NotifNewMsg(msg.Type, answer.Set);
                            resource.NotifNewMsg(msg.Type, answer.Estado);
                        }
                        else
                        {
                            _Logger.Error($"OnMsg HF TX Change Response Error. Resource not Found <{rsUid}>");
                        }
                    });
                }
                else if (msg.Type == Identifiers.SELCAL_PREPARE_RSP)
                {
                    SelcalPrepareRsp resp  = Deserialize <SelcalPrepareRsp>(msg.Data, msg.Length);
                    string           type  = Identifiers.TypeId(typeof(RdSrvFrRs));
                    string           rsUid = resp.Frecuency.ToUpper() + "_" + type;

                    _Logger.Trace($"OnMsg SelCal Prepare Response <{resp.Frecuency}>: {rsUid}");

                    Top.WorkingThread.Enqueue("SelCalPrepareAnswer", delegate()
                    {
                        Resource resource;
                        //if (_Resources.TryGetValue(rsUid, out resource))
                        if (GetResource(rsUid, out resource))
                        {
                            resource.NotifSelCal(msg.Type, resp.Code);
                        }
                        else
                        {
                            _Logger.Error($"OnMsg SelCal Prepare Response Error. Resource not Found <{rsUid}>");
                        }
                    });
                }
                else if (msg.Type == Identifiers.SITE_CHANGING_RSP)
                {
                    ChangeSiteRsp resp  = Deserialize <ChangeSiteRsp>(msg.Data, msg.Length);
                    string        type  = Identifiers.TypeId(typeof(RdSrvFrRs));
                    string        rsUid = resp.Frecuency.ToUpper() + "_" + type;

                    _Logger.Trace($"OnMsg Site Change Response <{resp.Frecuency}>: {rsUid}");

                    Top.WorkingThread.Enqueue("ChangingSiteResponse", delegate()
                    {
                        Resource resource;
                        //if (_Resources.TryGetValue(rsUid, out resource))
                        if (GetResource(rsUid, out resource))
                        {
                            resource.NotifSiteChanged(msg.Type, resp);
                        }
                        else
                        {
                            _Logger.Error($"OnMsg Site Change Response Error. Resource not Found <{rsUid}>");
                        }
                    });
                }
#if _HF_GLOBAL_STATUS_
                else if (msg.Type == Identifiers.HF_STATUS)
                {
                    HFStatus status = Deserialize <HFStatus>(msg.Data, msg.Length);

                    string type = "_" + Identifiers.TypeId(typeof(RdSrvFrRs));

                    Top.WorkingThread.Enqueue("HFStatus", delegate()
                    {
                        foreach (KeyValuePair <string, Resource> par in _Resources)
                        {
                            if (par.Key.Contains(type))
                            {
                                par.Value.NotifNewMsg(msg.Type, status.code);
                            }
                        }
                    }
                                              );
                }
                else
                {
                    _Logger.Error($"OnMsgReceived Error. Unknown type <{msg.Type}>");
                }
#endif
            }
            catch (Exception ex)
            {
                _Logger.Error("ERROR deserializando mensaje de tipo " + msg.Type, ex);
            }
        }