示例#1
0
        private void OnReceiveCompleted(Object source, ReceiveCompletedEventArgs asyncResult)
        {
            try
            {
                MessageQueue mq = (MessageQueue)source;

                if (mq != null)
                {
                    try
                    {
                        System.Messaging.Message message = null;
                        try
                        {
                            message = mq.EndReceive(asyncResult.AsyncResult);
                        }
                        catch (Exception ex)
                        {
                            log.Error(ex.Message);
                        }
                        if (message != null)
                        {
                            MessageBean messageBean = message.Body as MessageBean;
                            if (messageBean != null)
                            {
                                if (messageBean.MessageType == MessageTypeEnum.FAULT)
                                {
                                    FaultFrameDecoded tmp = new FaultFrameDecoded();
                                    tmp.Parse(messageBean.Message);
                                    SingletonStatsHistory.GetInstance().AddFault(tmp);
                                    log.InfoFormat("Fault: {0}", tmp.ToString());
                                }
                                else
                                {
                                    StatusFrameDecoded tmp = new StatusFrameDecoded();
                                    tmp.Parse(messageBean.Message);
                                    SingletonStatsHistory.GetInstance().AddStatus(tmp);
                                    log.InfoFormat("Status: {0}", tmp.ToString());
                                }
                            }
                            else
                            {
                                log.Info("Message vino null");
                            }
                        }
                    }
                    finally
                    {
                        if (isRunning)
                        {
                            mq.BeginReceive();
                        }
                    }
                }
                return;
            }
            catch (Exception exc)
            {
                log.Error(exc.Message);
            }
        }
示例#2
0
        public List <DeviceStatusInfo> GetDeviceStatuses(string idDevice, int resultMaxSize)
        {
            List <DeviceStatusInfo> ret = SingletonStatsHistory.GetInstance().GetDeviceStatus(idDevice);

            if (ret.Count > 0)
            {
                ret.Reverse();
                if (ret.Count < resultMaxSize)
                {
                    resultMaxSize = ret.Count;
                }
                ret = ret.GetRange(0, resultMaxSize);
            }
            return(ret);
        }