Exemplo n.º 1
0
 private void Alarm_Changed(object sender, ReportEventArgs<AlarmReport> e)
 {
     if (e.Report.Detail == AlarmDetailType.TamperingProductCoveringRemoved)
     {
         if (e.Report.Level == 0x00)
         {
             OnTamperCancelled(EventArgs.Empty);
             return;
         }
         if (e.Report.Level == 0xFF)
         {
             OnTamperDetected(EventArgs.Empty);
             return;
         }
     }
     if (e.Report.Type == AlarmType.Burglar)
     {
         if (e.Report.Level == 0x00)
         {
             OnDoorClosed(EventArgs.Empty);
             return;
         }
         if (e.Report.Level == 0xFF)
         {
             OnDoorOpened(EventArgs.Empty);
             return;
         }
     }
 }
Exemplo n.º 2
0
 private void MultiChannel_Changed(object sender, ReportEventArgs<MultiChannelReport> e)
 {
     if (e.Report.Report is SwitchBinaryReport)
     {
         var switchReport = e.Report.Report as SwitchBinaryReport;
         if (byte.Equals(e.Report.EndPointID, 1))
         {
             if (switchReport.Value)
             {
                 OnSwitchedOn1(EventArgs.Empty);
             }
             else
             {
                 OnSwitchedOff1(EventArgs.Empty);
             }
         }
         else if (byte.Equals(e.Report.EndPointID, 2))
         {
             if (switchReport.Value)
             {
                 OnSwitchedOn2(EventArgs.Empty);
             }
             else
             {
                 OnSwitchedOff2(EventArgs.Empty);
             }
         }
     }
 }
Exemplo n.º 3
0
 private void Alarm_Changed(object sender, ReportEventArgs<AlarmReport> e)
 {
     if (e.Report.Type == AlarmType.General && e.Report.Detail == AlarmDetailType.TamperingProductCoveringRemoved)
     {
         OnVibrationDetected(EventArgs.Empty);
     }
 }
Exemplo n.º 4
0
 private void SensorMultiLevel_Changed(object sender, ReportEventArgs<SensorMultiLevelReport> e)
 {
     if (e.Report.Type == SensorType.Temperature)
     {
         OnTemperatureMeasured(new MeasureEventArgs(new Measure(e.Report.Value, Unit.Celsius)));
     }
 }
Exemplo n.º 5
0
 protected virtual void OnChanged(ReportEventArgs<SensorMultiLevelReport> e)
 {
     var handler = Changed;
     if (handler != null)
     {
         handler(this, e);
     }
 }
Exemplo n.º 6
0
 protected virtual void OnChanged(ReportEventArgs<ThermostatModeReport> e)
 {
     var handler = Changed;
     if (handler != null)
     {
         handler(this, e);
     }
 }
Exemplo n.º 7
0
 protected virtual void OnChanged(ReportEventArgs<AlarmReport> e)
 {
     var handler = Changed;
     if (handler != null)
     {
         handler(this, e);
     }
 }
Exemplo n.º 8
0
 private void WakeUp_Changed(object sender, ReportEventArgs<WakeUpReport> e)
 {
     if (e.Report.Awake)
     {
         OnAwaked();
         return;
     }
 }
Exemplo n.º 9
0
 void insurances_Report(object sender, ReportEventArgs e)
 {
     if (e.Report.Status == true)
     {
         Console.WriteLine("Payment accepted");
         invoceList.Find(x => x.Id == e.Report.Id).Status = true;
         Treatment();
     }
 }
Exemplo n.º 10
0
 private void SensorBinary_Changed(object sender, ReportEventArgs<SensorBinaryReport> e)
 {
     if (e.Report.Value)
     {
         OnDoorOpened(EventArgs.Empty);
     }
     else
     {
         OnDoorClosed(EventArgs.Empty);
     }
 }
Exemplo n.º 11
0
 private void Contact_Changed(object sender, ReportEventArgs<SwitchBinaryReport> e)
 {
     if (e.Report.Value)
     {
         OnContactOpen(EventArgs.Empty);
     }
     else
     {
         OnContactClosed(EventArgs.Empty);
     }
 }
Exemplo n.º 12
0
 private void SwitchBinary_Changed(object sender, ReportEventArgs<SwitchBinaryReport> e)
 {
     if (e.Report.Value)
     {
         OnSwitchedOn(EventArgs.Empty);
     }
     else
     {
         OnSwitchedOff(EventArgs.Empty);
     }
 }
Exemplo n.º 13
0
 private void Basic_Changed(object sender, ReportEventArgs<BasicReport> e)
 {
     if (byte.Equals(e.Report.Value, 0xFF))
     {
         OnSwitchedOn1(EventArgs.Empty);
     }
     else
     {
         OnSwitchedOff1(EventArgs.Empty);
     }
 }
Exemplo n.º 14
0
 private void SwitchBinary2_Changed(object sender, ReportEventArgs <SwitchBinaryReport> e)
 {
     if (e.Report.Value)
     {
         OnSwitchedOn2(EventArgs.Empty);
     }
     else
     {
         OnSwitchedOff2(EventArgs.Empty);
     }
 }
Exemplo n.º 15
0
 private void SensorMultiLevel_Changed(object sender, ReportEventArgs <SensorMultiLevelReport> e)
 {
     if (e.Report.Type == SensorType.Temperature)
     {
         OnTemperatureMeasured(new MeasureEventArgs(new Measure(e.Report.Value, Unit.Celsius)));
     }
     if (e.Report.Type == SensorType.CO2) // Todo: Check
     {
         OnSmokeMeasured(new MeasureEventArgs(new Measure(e.Report.Value, Unit.Smoke)));
     }
 }
Exemplo n.º 16
0
        public void SetFilterCriteria(ReportEventArgs args)
        {
            //Modify Report Filter to change the default "Modified On" of 30 days to 15 days
            var criteria = args.Driver.FindElement(By.XPath("id(\"CRM_FilteredAccountEFGRP0FFLD0CCVALLBL\")"));

            criteria.Click();

            var input = args.Driver.FindElement(By.XPath("id(\"CRM_FilteredAccountEFGRP0FFLD0CCVALCTL\")"));

            input.SendKeys("15", true);
        }
Exemplo n.º 17
0
 private void Basic_Changed(object sender, ReportEventArgs <BasicReport> e)
 {
     if (e.Report.Value == 0x00)
     {
         OnDoorClosed(EventArgs.Empty);
         return;
     }
     if (e.Report.Value == 0xFF)
     {
         OnDoorOpened(EventArgs.Empty);
         return;
     }
 }
Exemplo n.º 18
0
 void _OnMessageReport(object sender, ReportEventArgs e)
 {
     Console.WriteLine("Received message report, {0}, {1}.", e.MessageId, e.StatusText);
     lock (_msgIds)
         if (_msgIds.Contains(e.MessageId))
         {
             _msgIds.Remove(e.MessageId);
         }
         else
         {
             Console.WriteLine("Message id not found: {0}.", e.MessageId);
         }
 }
Exemplo n.º 19
0
 private void Basic_Changed(object sender, ReportEventArgs<BasicReport> e)
 {
     if (e.Report.Value == 0xFF)
     {
         OnDoorOpened(EventArgs.Empty);
         return;
     }
     if (e.Report.Value == 0x00)
     {
         OnDoorClosed(EventArgs.Empty);
         return;
     }
 }
Exemplo n.º 20
0
 private void Basic_Changed(object sender, ReportEventArgs <BasicReport> e)
 {
     if (e.Report.Value == 0x00)
     {
         OnMotionCancelled(EventArgs.Empty);
         return;
     }
     if (e.Report.Value == 0xFF)
     {
         OnMotionDetected(EventArgs.Empty);
         return;
     }
 }
Exemplo n.º 21
0
 private void Basic_Changed(object sender, ReportEventArgs<BasicReport> e)
 {
     if (e.Report.Value == 0x00)
     {
         //OnMotionCancelled(EventArgs.Empty);
         return;
     }
     if (e.Report.Value == 0xFF)
     {
         //OnMotionDetected(EventArgs.Empty);
         return;
     }
 }
Exemplo n.º 22
0
 protected virtual void OnReport(object sender, ReportEventArgs e)
 {
     var task = Windows.Invoke(() =>
     {
         var window = new ReportWindow()
         {
             DataContext   = this.Core,
             Source        = e.Report,
             ShowActivated = true,
             Owner         = Windows.ActiveWindow,
         };
         window.Show();
     });
 }
Exemplo n.º 23
0
        protected virtual Task OnReport(IReport Report)
        {
            if (this.Report == null)
            {
#if NET40
                return(TaskEx.FromResult(false));
#else
                return(Task.CompletedTask);
#endif
            }
            var e = new ReportEventArgs(Report);
            this.Report(this, e);
            return(e.Complete());
        }
Exemplo n.º 24
0
        static void wallMote2Changed(object sender, ReportEventArgs <CentralSceneReport> e)
        {
            var button = e.Report.SceneNumber;

            switch (button)
            {
            case 1: wallmote2_button1.Inc(); break;

            case 3: cli.Execute("turn driveway lights off then turn porch lights off then turn patio lights off", echo: true); break;

            case 2: cli.Execute("turn patio lights on", echo: true); break;

            case 4: cli.Execute("turn patio lights off", echo: true); break;
            }
        }
Exemplo n.º 25
0
        public void UpdateReport(object sender, ReportEventArgs e)
        {
            dataGridView.Rows.Clear();
            dataGridView.Rows.Add("Kolobok", e.Kolobok.X, e.Kolobok.Y);

            for (int i = 0; i < e.Tanks.Count; i++)
            {
                dataGridView.Rows.Add($"Tank-{i}", e.Tanks[i].X, e.Tanks[i].Y);
            }

            for (int i = 0; i < e.Apples.Count; i++)
            {
                dataGridView.Rows.Add($"Apple-{i}", e.Apples[i].X, e.Apples[i].Y);
            }
        }
Exemplo n.º 26
0
        static void wallMote1Changed(object sender, ReportEventArgs <CentralSceneReport> e)
        {
            var button = e.Report.SceneNumber;

            switch (button)
            {
            case 1: wallmote1_button1.Inc(); break;

            case 3: cli.Execute("turn study lights off", echo: true); break;

            case 2: cli.Execute("turn snug lights on", echo: true); break;

            case 4: cli.Execute("turn snug lights off", echo: true); break;
            }
        }
Exemplo n.º 27
0
 private void SensorMultiLevel_Changed(object sender, ReportEventArgs <SensorMultiLevelReport> e)
 {
     if (e.Report.Type == SensorType.Temperature)
     {
         OnTemperatureMeasured(new MeasureEventArgs(new Measure(e.Report.Value, Unit.Celsius)));
     }
     if (e.Report.Type == SensorType.Luminance)
     {
         OnLuminanceMeasured(new MeasureEventArgs(new Measure(e.Report.Value, Unit.Lux)));
     }
     if (e.Report.Type == SensorType.RelativeHumidity)
     {
         OnHumidityMeasured(new MeasureEventArgs(new Measure(e.Report.Value, Unit.Humidity)));
     }
 }
Exemplo n.º 28
0
 private void SensorMultiLevel_Changed(object sender, ReportEventArgs<SensorMultiLevelReport> e)
 {
     if (e.Report.Type == SensorType.Temperature)
     {
         OnTemperatureMeasured(new MeasureEventArgs(new Measure(e.Report.Value, Unit.Celsius)));
     }
     if (e.Report.Type == SensorType.Luminance)
     {
         OnLuminanceMeasured(new MeasureEventArgs(new Measure(e.Report.Value, Unit.Lux)));
     }
     if (e.Report.Type == SensorType.RelativeHumidity)
     {
         OnHumidityMeasured(new MeasureEventArgs(new Measure(e.Report.Value, Unit.Humidity)));
     }
 }
Exemplo n.º 29
0
        /// <summary>
        /// ワーカーの進歩報告
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void TaskWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            if (e.UserState is ReportEventArgs)
            {
                ReportEventArgs arg = (ReportEventArgs)e.UserState;
                this.lblTaskName.Text = arg.TaskName;
                this.lblMessage.Text  = arg.Message;
                this.lblRate.Text     = string.Format("{0} / {1}", arg.ProcessedCount, arg.SetpCount);
            }
            else if (e.UserState is string)
            {
                this.lblMessage.Text = (string)e.UserState;
            }

            this.progressBar1.Value = e.ProgressPercentage;
        }
Exemplo n.º 30
0
 private void SensorAlarm_Changed(object sender, ReportEventArgs<SensorAlarmReport> e)
 {
     if (e.Report.Type == AlarmType.General)
     {
         if (e.Report.Level == 0x00)
         {
             OnTamperCancelled(EventArgs.Empty);
             return;
         }
         if (e.Report.Level == 0xFF)
         {
             OnTamperDetected(EventArgs.Empty);
             return;
         }
     }
 }
Exemplo n.º 31
0
 private void Alarm_Changed(object sender, ReportEventArgs <AlarmReport> e)
 {
     if (e.Report.Type == AlarmType.General)
     {
         if (e.Report.Level == 0x00)
         {
             OnTamperCancelled(EventArgs.Empty);
             return;
         }
         if (e.Report.Level == 0xFF)
         {
             OnTamperDetected(EventArgs.Empty);
             return;
         }
     }
 }
Exemplo n.º 32
0
 public void SendSMS(PlainSMS sms)
 {
     try
     {
         MessageHelper.Instance.WirteTest("提交短信:" + JsonConvert.SerializeObject(sms));
         SendResult sr = Gateway.SendSMS(sms);
         if (string.IsNullOrWhiteSpace(sr.SerialNumber))
         {
             sr.SerialNumber = System.Guid.NewGuid().ToString();
         }
         MessageHelper.Instance.WirteTest("提交短信返回结果:" + JsonConvert.SerializeObject(sr));
         ReportEventArgs re = new ReportEventArgs();
         int             i  = 0;
         re.StatusReports.AddRange(sms.Numbers.Split(',').Select(n => new StatusReport()
         {
             SMSID            = sms.ID,
             SerialNumber     = sr.SerialNumber + (++i).ToString().PadLeft(5, '0'),
             SendTime         = sms.SendTime.Value,
             StatusCode       = sr.StatusCode,
             Succeed          = sr.Success,
             Channel          = sms.Channel,
             Description      = sr.Message,
             Number           = n,
             ResponseTime     = null,
             Gateway          = Gateway.Config.GatewayName,
             AccountID        = sms.AccountID,
             StatusReportType = (StatusReportType)sms.StatusReportType
         }));
         SendEvent(this, re);
         if (sr.Success)
         {
             lock (locker)
             {
                 sends.Add(sr.SerialNumber, re);
             }
         }
         if (this.Gateway.Config.EnableTrafficControl > 0)
         {
             tc.AddCountAndCheckTraffic(sms.NumberCount);
         }
     }
     catch (Exception ex)
     {
         MessageHelper.Instance.WirteError(ex.ToString());
         LogClient.LogHelper.LogInfo(Gateway.Config.GatewayName, "SendSMS Error ->", ex.Message);
     }
 }
Exemplo n.º 33
0
        /// <summary>
        /// プロセス進歩報告イベントを処理する
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            this.progressBar1.Value = e.ProgressPercentage;
            ReportEventArgs reportArgs = e.UserState as ReportEventArgs;

            if (reportArgs != null)
            {
                this.lblMessage.Text = reportArgs.Message;
                if (reportArgs.TotalCount > 0)
                {
                    this.lblParcentage.Text = reportArgs.ProcessedCount + " / " + reportArgs.TotalCount;
                }
                else
                {
                    this.lblParcentage.Text = "";
                }
            }
        }
Exemplo n.º 34
0
        private void ReportListenerLib_OnReport(object sender, ReportEventArgs e)
        {
            System.Threading.Interlocked.Increment(ref m_reportsRead);
            int returnCode = m_writer.TakeReport(e.Report);

            if (returnCode == 0)
            {
                System.Threading.Interlocked.Increment(ref m_reportsWritten);
            }
            else if (returnCode == 1)
            {
                System.Threading.Interlocked.Increment(ref m_duplicatesIgnored);
            }
            else
            {
                System.Threading.Interlocked.Increment(ref m_errors);
            }
        }
Exemplo n.º 35
0
        public void PrintFiveSeconds(object sender, ReportEventArgs args)
        {
            StringBuilder write = new StringBuilder();

            write.AppendLine($"\nDay : {daycounter}\n");
            write.AppendLine($"Amount of patients dead: {args.AmountDead}");
            write.AppendLine($"\nAmount of patients recovered: {args.AmountRecovered}");
            write.AppendLine($"\nAmount of patients in IVA: {args.AmountIVA}");
            write.AppendLine($"\nAmount of patients in sanatorium: {args.AmountSanatorium}");
            write.AppendLine($"\nAmount of patients in queue: {args.AmountPatientsInQueue}");
            write.AppendLine($"\nDoctors waiting: {args.AmountDoctorsWaiting}\n");
            string textToFile = write.ToString();

            printToLog.WriteToFile(textToFile);
            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.WriteLine(textToFile);
            Console.ResetColor();
            daycounter++;
        }
Exemplo n.º 36
0
        private static void PrintReportItem(object sender, ReportEventArgs e)
        {
            var item = e.ReportItem;

            var message = "***";
            if (item.IsTainted)
            {
                message += "Exploitable ";
            }

            message += String.Format("OOB at EIP 0x{0:x4}", item.InstructionPointer);
            Console.WriteLine(message);
            Console.WriteLine();
        }
Exemplo n.º 37
0
 protected virtual void OnReport(ReportEventArgs e)
 {
     if (Report != null)
         Report(this, e);
 }
Exemplo n.º 38
0
        void tmrReport_Elapsed(object sender, ElapsedEventArgs e)
        {
            if (reportProcess)
            {
                return;
            }
            reportProcess = true;

            //<? xml version = "1.0" encoding = "utf-8" ?>
            //< returnsms >
            //< status >
            //< mid > 121212121212 </ mid > --------------系统里面对应的唯一的mid
            //< mobile > 15023239810 </ mobile > -------------对应的手机号码
            //< status > 10 </ status > -------------状态报告----10表示发送成功,20表示发送失败
            //     < taskid > 1212 </ taskid > --------------某次提交任务的ID
            //     < createtime > 2011 - 12 - 02 22:12:11 </ createtime > -------------发送时间
            //           </ status >
            //           < status >
            //           < mid > 121212121212 </ mid > --------------系统里面对应的唯一的mid
            //           < mobile > 15023239810 </ mobile > -------------对应的手机号码
            //           < status > 10 </ status > -------------状态报告----10表示发送成功,20表示发送失败
            //                 < taskid > 1212 </ taskid > --------------某次提交任务的ID
            //                 < createtime > 2011 - 12 - 02 22:12:11 </ createtime > -------------发送时间
            //                       </ status >
            //                       </ returnsms >

            Console.WriteLine("查询状态报告触发, sends.count = " + sends.Count);
            try
            {
                if (sends.Count > 0)
                {
                    string   msgid    = "";
                    string   mobile   = "";
                    bool     ok       = true;
                    DateTime datetime = DateTime.Now;
                    string   post     = string.Format("action=query&userid={0}&account={1}&password={2}", userId, account, password);
                    //  Console.WriteLine("请求状态报告内容:" + post);
                    Console.WriteLine("请求状态报告地址:" + statusUrl);
                    string t = HTTPRequest.PostWebRequest(statusUrl, post, System.Text.Encoding.UTF8);
                    //  Console.WriteLine("原始状态报告:" + t);
                    XmlDocument doc = new XmlDocument();
                    doc.LoadXml(t);
                    XmlElement root = null;
                    root = doc.DocumentElement;
                    XmlNodeList listNodes = root.ChildNodes;
                    foreach (XmlNode node in listNodes)
                    {
                        foreach (XmlNode cNode in node.ChildNodes)
                        {
                            switch (cNode.Name)
                            {
                            case "mid":
                                break;

                            case "mobile":
                                mobile = cNode.InnerText;
                                break;

                            case "status":
                                if (cNode.InnerText == "10")
                                {
                                    ok = true;
                                }
                                else
                                {
                                    ok = false;
                                }
                                break;

                            case "taskid":
                                msgid = cNode.InnerText;
                                break;

                            case "createtime":

                                if (!DateTime.TryParse(cNode.InnerText, out datetime))
                                {
                                    datetime = DateTime.Now;
                                }
                                break;
                            }
                        }
                        if (ReportEvent != null)
                        {
                            ushort statecode;
                            string statetext = "发送成功。";
                            statecode = 2100;
                            if (!ok)
                            {
                                statecode = 2101;
                                statetext = "发送失败。";
                            }
                            lock (locker)
                            {
                                var se = sends.FirstOrDefault(s => s.Value.SendEventArgs.SerialNumber.StartsWith(msgid) && s.Value.SendEventArgs.Message.Numbers == mobile);
                                if (!se.Equals(default(KeyValuePair <string, ExSendEventArgs>)))
                                {
                                    ReportEventArgs re = new ReportEventArgs(se.Value.SendEventArgs.SerialNumber, ok, statecode, statetext, datetime);
                                    ReportEvent(this, re);
                                    string tr = JsonSerialize.Instance.Serialize <ReportEventArgs>(re);
                                    MessageTools.MessageHelper.Instance.WirteInfo("返回状态报告:" + tr);
                                    sends.Remove(re.Serial);
                                }
                                else
                                {
                                    MessageTools.MessageHelper.Instance.WirteInfo("无法匹配状态报告:msgid:" + msgid + " mobile:" + mobile);
                                }
                            }
                        }
                    }
                }

                lock (locker)
                {
                    List <string> rkeys = new List <string>();
                    foreach (string key in sends.Keys)
                    {
                        if ((DateTime.Now - sends[key].Time).TotalDays >= 2)
                        {
                            ReportEventArgs re = new ReportEventArgs(sends[key].SendEventArgs.SerialNumber, true, 2100, "状态报告超时,默认成功.", DateTime.Now);
                            ReportEvent(this, re);
                            string ttr = JsonSerialize.Instance.Serialize <ReportEventArgs>(re);
                            Console.WriteLine("超时返回状态报告:" + JsonSerialize.Instance.Serialize <ReportEventArgs>(re));
                            LogClient.LogHelper.LogInfo("DWWG", "GetReport Timeout ->", ttr);
                            rkeys.Add(key);
                        }
                    }
                    foreach (string key in rkeys)
                    {
                        sends.Remove(key);
                    }
                }
            }
            catch (Exception ex)
            {
                // Console.WriteLine(ex.Message);
                MessageTools.MessageHelper.Instance.WirteError("获取状态报告发生错误:", ex);
                LogClient.LogHelper.LogInfo("DWWG", "GetReport Error ->", ex.Message);
            }
            reportProcess = false;
        }
Exemplo n.º 39
0
        void tmrReport_Elapsed(object sender, ElapsedEventArgs e)
        {
            if (reportProcess)
            {
                return;
            }
            reportProcess = true;
            try
            {
                if (sends.Count > 0)
                {
                    var list = Gateway.GetStatusReport();

                    ReportEventArgs re = new ReportEventArgs();
                    lock (locker)
                    {
                        foreach (var sr in list)
                        {
                            var se = sends.FirstOrDefault(s => s.Key == sr.SerialNumber);
                            if (!se.Equals(default(KeyValuePair <string, ReportEventArgs>)))
                            {
                                var osr = se.Value.StatusReports.Where(r => r.Number == sr.Number);
                                osr.ToList().ForEach(s => { s.ResponseTime = DateTime.Now; s.StatusCode = sr.StatusCode; s.Description = sr.Message; });
                                re.StatusReports.AddRange(osr);


                                foreach (var r in osr)
                                {
                                    se.Value.StatusReports.Remove(r);
                                }
                                if (se.Value.StatusReports.Count == 0)
                                {
                                    sends.Remove(se.Key);
                                }
                            }
                        }
                        ReportEvent(this, re);


                        List <string> rkeys = new List <string>();
                        foreach (string key in sends.Keys)
                        {
                            if ((DateTime.Now - sends[key].SubmitTime).TotalDays >= 2)
                            {
                                ReportEventArgs sre = new ReportEventArgs();

                                sre.StatusReports.AddRange(sends[key].StatusReports);
                                sends[key].StatusReports.ForEach(s => { s.StatusCode = 2100; s.Description = "超时返回状态报告"; s.ResponseTime = DateTime.Now; });

                                ReportEvent(this, sre);
                                string ttr = JsonConvert.SerializeObject(sre);
                                MessageHelper.Instance.WirteInfo("超时返回状态报告:" + ttr);
                                LogClient.LogHelper.LogInfo(Gateway.Config.GatewayName, "GetReport Timeout ->", ttr);
                                rkeys.Add(key);
                            }
                        }
                        foreach (string key in rkeys)
                        {
                            sends.Remove(key);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                LogClient.LogHelper.LogInfo(Gateway.Config.GatewayName, "GetReport Error ->", ex.Message);
            }
            reportProcess = false;
        }
Exemplo n.º 40
0
 protected virtual void OnChanged(ReportEventArgs<SceneActivationReport> e)
 {
     Changed?.Invoke(this, e);
 }
Exemplo n.º 41
0
 static void Gateway_SendEvent(object sender, ReportEventArgs e)
 {
     ReportSend.Instance.BatchSend(e.StatusReports);
 }
Exemplo n.º 42
0
        void tmrReport_Elapsed(object sender, ElapsedEventArgs e)
        {
            if (reportProcess)
            {
                //    MessageHelper.Instance.("查询状态报告触发, 但上次处理仍在进行,退出,sends.count = " + sends.Count);
                return;
            }
            try
            {
                reportProcess = true;
                MessageHelper.Instance.WirteInfo("查询状态报告触发, sends.count = " + sends.Count);

                //            < returnsms >
                //< statusbox >
                //< mobile > 18666620923 </ mobile > -------------对应的手机号码
                //< taskid > 1212 </ taskid > -------------同一批任务ID
                //< status > 10 </ status > ---------状态报告----10:发送成功,20:发送失败
                //       < receivetime > 2011 - 12 - 02 22:12:11 </ receivetime > -------------接收时间
                //              < errorcode > DELIVRD </ errorcode > -上级网关返回值,不同网关返回值不同,仅作为参考
                //                     < extno > 01 </ extno > --子号,即自定义扩展号
                //                            </ statusbox >
                //                            < statusbox >
                //                            < mobile > 18666620923 </ mobile >
                //                            < taskid > 1212 </ taskid >
                //                            < status > 20 </ status >
                //                            < receivetime > 2011 - 12 - 02 22:12:11 </ receivetime >
                //                                   < errorcode > 2 </ errorcode >
                //                                   < extno ></ extno >
                //                                   </ statusbox >
                //                                   </ returnsms >


                if (sends.Count > 0)
                {
                    string   msgid    = "";
                    string   mobile   = "";
                    bool     ok       = true;
                    DateTime datetime = DateTime.Now;
                    string   post     = string.Format("action=query&userid={0}&account={1}&password={2}", userId, account, password);
                    //  MessageHelper.Instance.WirteInfo("请求状态报告内容:" + post);
                    //  MessageHelper.Instance.WirteInfo("请求状态报告地址:" + statusUrl);
                    string t = HTTPRequest.PostWebRequest(statusUrl, post, System.Text.Encoding.UTF8);
                    MessageHelper.Instance.WirteInfo("原始状态报告:" + t);
                    XmlDocument doc = new XmlDocument();
                    doc.LoadXml(t);
                    XmlElement root = null;
                    root = doc.DocumentElement;
                    XmlNodeList listNodes = root.ChildNodes;


                    ReportEventArgs re = new ReportEventArgs();
                    foreach (XmlNode node in listNodes)
                    {
                        foreach (XmlNode cNode in node.ChildNodes)
                        {
                            switch (cNode.Name)
                            {
                            case "mid":
                                break;

                            case "mobile":
                                mobile = cNode.InnerText;
                                break;

                            case "status":
                                if (cNode.InnerText == "10")
                                {
                                    ok = true;
                                }
                                else
                                {
                                    ok = false;
                                }
                                break;

                            case "taskid":
                                msgid = cNode.InnerText;
                                break;

                            case "receivetime":

                                if (!DateTime.TryParse(cNode.InnerText, out datetime))
                                {
                                    datetime = DateTime.Now;
                                }
                                break;
                            }
                        }

                        ushort statecode;
                        string statetext = "发送成功。";
                        statecode = 2100;
                        if (!ok)
                        {
                            statecode = 2101;
                            statetext = "发送失败。";
                        }
                        lock (sendslocker)
                        {
                            var se = sends.FirstOrDefault(s => s.Key == msgid);
                            if (!se.Equals(default(KeyValuePair <string, ReportEventArgs>)))
                            {
                                var sr = se.Value.StatusReports.Where(r => r.Number == mobile);
                                re.StatusReports.AddRange(sr);
                                re.StatusReports.ForEach(s => { s.ResponseTime = DateTime.Now; s.StatusCode = statecode; s.Description = statetext; });

                                foreach (var r in sr)
                                {
                                    se.Value.StatusReports.Remove(r);
                                }
                                if (se.Value.StatusReports.Count == 0)
                                {
                                    sends.Remove(se.Key);
                                }
                            }
                        }
                    }
                    if (ReportEvent != null)
                    {
                        ReportEvent(this, re);
                    }
                }

                lock (sendslocker)
                {
                    List <string> rkeys = new List <string>();
                    foreach (string key in sends.Keys)
                    {
                        if ((DateTime.Now - sends[key].SubmitTime).TotalDays >= 2)
                        {
                            ReportEventArgs sre = new ReportEventArgs();

                            sre.StatusReports.AddRange(sends[key].StatusReports);
                            sends[key].StatusReports.ForEach(s => { s.StatusCode = 2100; s.Description = "超时返回状态报告"; s.ResponseTime = DateTime.Now; });

                            ReportEvent(this, sre);
                            string ttr = JsonSerialize.Instance.Serialize <ReportEventArgs>(sre);
                            MessageHelper.Instance.WirteInfo("超时返回状态报告:" + ttr);
                            LogClient.LogHelper.LogInfo("ZSXWG", "GetReport Timeout ->", ttr);
                            rkeys.Add(key);
                        }
                    }
                    foreach (string key in rkeys)
                    {
                        sends.Remove(key);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageHelper.Instance.WirteError("ZSXWG,GetReport Error", ex);
                LogClient.LogHelper.LogInfo("ZSXWG", "GetReport Error ->", ex.Message);
            }
            reportProcess = false;
        }
Exemplo n.º 43
0
        public void SendSMS(PlainSMS sms)
        {
            try
            {
                string post = "";

                string content = "";
                if (SignaturePos == "0")
                {
                    //签名在前
                    content = sms.Signature + sms.Content;
                }
                else
                {
                    //签名在后
                    content = sms.Content + sms.Signature;
                }
                post = "action=send&userid=" + userId + "&account=" + account + "&password="******"&mobile=" + sms.Numbers + "&content=" + content + "&sendTime=&extno=";//+ scrId + sms.SPNumber;
                // MessageHelper.Instance.WirteTest("发送字符串: " + post);
                string t = HTTPRequest.PostWebRequest(sendUrl, post, Encoding.UTF8);
                //string t = "";
                MessageHelper.Instance.WirteTest("提交返回原始内容: " + t);
                //<? xml version = "1.0" encoding = "utf-8" ?>
                //< returnsms >
                //< returnstatus > status </ returnstatus > ----------返回状态值:成功返回Success 失败返回:Faild
                //<message> message</ message > ----------返回信息:见下表
                //<remainpoint> remainpoint</ remainpoint > ----------返回余额
                //< taskID > taskID </ taskID > -----------返回本次任务的序列ID
                //< successCounts > successCounts </ successCounts > --成功短信数:当成功后返回提交成功短信数
                //</ returnsms >

                bool        ok    = true;
                string      rmsg  = "";
                string      msgid = "";
                XmlDocument doc   = new XmlDocument();
                doc.LoadXml(t);
                XmlElement root = null;
                root = doc.DocumentElement;
                XmlNodeList listNodes = root.ChildNodes;
                foreach (XmlNode node in listNodes)
                {
                    switch (node.Name)
                    {
                    case "returnstatus":
                        ok = (node.InnerText == "Success") ? true : false;
                        break;

                    case "message":
                        if (node.InnerText == "ok")
                        {
                            rmsg = "短信提交成功.";
                        }
                        else
                        {
                            rmsg = node.InnerText;
                        }
                        break;

                    case "remainpoint":
                        break;

                    case "taskID":
                        msgid = node.InnerText;
                        break;

                    case "successCounts":
                        break;
                    }
                }

                int r = 0;
                if (!ok)
                {
                    r = 99;
                    if (string.IsNullOrWhiteSpace(msgid) || msgid == "0")
                    {
                        msgid = System.Guid.NewGuid().ToString();
                    }
                }

                ReportEventArgs re = new ReportEventArgs();
                int             i  = 0;
                re.StatusReports.AddRange(sms.Numbers.Split(',').Select(n => new StatusReport()
                {
                    SMSID        = sms.ID,
                    SerialNumber = msgid + (++i).ToString().PadLeft(5, '0'),
                    SendTime     = sms.SendTime.Value,
                    StatusCode   = 2000 + r,
                    Succeed      = ok,
                    Channel      = sms.Channel,
                    Description  = rmsg,
                    Number       = n,
                    ResponseTime = null
                }));
                SendEvent(this, re);
                if (ok)
                {
                    lock (sendslocker)
                    {
                        sends.Add(msgid, re);
                    }
                }
            }

            catch (Exception ex)
            {
                MessageHelper.Instance.WirteError(ex.ToString());
                LogClient.LogHelper.LogInfo("ZSXWG", "SendSMS Error ->", ex.Message);
            }
        }
Exemplo n.º 44
0
        void _sc_DataReceived(byte[] data)
        {
            MessageHeader head;

            _dtLastTransferTime = DateTime.Now;
            try
            {
                head = new MessageHeader(data);
            }
            catch (Exception ex)
            {
                OnNetworkError(ex);
                return;
            }

            switch ((SMGP3_COMMAND)head.Command)
            {
            case SMGP3_COMMAND.Login_Resp:
                Login_Resp login_Resp;
                try
                {
                    login_Resp = new Login_Resp(data);
                }
                catch (Exception ex)
                {
                    OnNetworkError(ex);
                    return;
                }
                DebugLog.Instance.Write <Login_Resp>("Received -> Login_Resp", login_Resp);
                switch (login_Resp.Status)
                {
                case 0:
                    _connect = true;
                    autoConnectEvent.Set();
                    OnSMSEvent(new SMSEventArgs(SMS_Event.SP_CONNECT, "登录成功"));
                    break;

                default:
                    OnSMSEvent(new SMSEventArgs(SMS_Event.SP_CONNECT_ERROR, StateDictionary.stateRespDictionary(login_Resp.Status)));
                    break;
                }
                break;

            case SMGP3_COMMAND.Submit_Resp:
                Submit_Resp submit_resp;

                try
                {
                    submit_resp = new Submit_Resp(data);
                }
                catch (Exception ex)
                {
                    OnNetworkError(ex);
                    return;
                }

                DebugLog.Instance.Write <Submit_Resp>("Received -> Submit_Resp", submit_resp);

                SlidingWindow send = SWGet(head.SequenceID);
                if (send.Status == WindowStatus.Idle)
                {
                    return;
                }
                SWClr(head.SequenceID);

                if (SendEvent != null)
                {
                    send.Report.Succeed = false;
                    switch (submit_resp.Result)
                    {
                    case 0:
                        send.Report.Succeed = true;
                        break;

                    default:
                        send.Report.Describe = StateDictionary.stateRespDictionary(submit_resp.Result);
                        break;
                    }
                    send.Report.Serial = submit_resp.MsgID;
                    SendEvent(this, send.Report);
                }
                break;

            case SMGP3_COMMAND.Deliver:
                Deliver deliver = new Deliver(data);
                DebugLog.Instance.Write <Deliver>("Received -> Deliver", deliver);
                Deliver_Resp deliverResp = new Deliver_Resp(deliver.MsgID, 0, deliver.Header.SequenceID);
                Send(deliverResp);
                DebugLog.Instance.Write <Deliver_Resp>("Send -> Deliver_Resp", deliverResp);

                if (deliver.IsReport == 1)
                {
                    Report report = new Report(deliver.Report);

                    bool   result        = false;
                    string resultMessage = "";
                    ushort resultCode    = ((ushort)PlatformCode.SMGP + (ushort)SystemCode.ReportBack);

                    DateTime time;
                    try
                    {
                        time = new DateTime(DateTime.Now.Year, System.Convert.ToInt32(report.Done_date.Substring(2, 2)), System.Convert.ToInt32(report.Done_date.Substring(4, 2)), System.Convert.ToInt32(report.Done_date.Substring(6, 2)), System.Convert.ToInt32(report.Done_date.Substring(8, 2)), 0);
                    }
                    catch
                    {
                        time = DateTime.Now;
                    }

                    switch (report.Stat.ToUpper())
                    {
                    case "DELIVRD":
                    case "RETRIEV":
                        result = true;
                        break;

                    case "EXPIRED":
                    case "DELETED":
                    case "UNDELIV":
                    case "ACCEPTD":
                    case "UNKNOWN":
                    case "REJECTD":
                    default:
                        resultMessage = report.Stat;
                        break;
                    }
                    ReportEventArgs args = new ReportEventArgs(report.Id, result, resultCode, resultMessage, time);
                    ReportEvent(this, args);
                }
                else
                {
                    //处理deliver
                    if (DeliverEvent != null)
                    {
                        DeliverEvent(this, new DeliverEventArgs(deliver.MsgID.ToString(), DateTime.Now, deliver.MsgContent, deliver.SrcTermID, deliver.DestTermID, "", deliver.LinkID));
                    }
                }
                break;

            case SMGP3_COMMAND.Active_Test:
                Active_Test_Resp active_test_resp1 = new Active_Test_Resp(data);
                active_test_resp1.Header.Command = SMGP3_COMMAND.Active_Test_Resp;
                Send(active_test_resp1);
                break;

            case SMGP3_COMMAND.Active_Test_Resp:
                //Active_Test_Resp active_test_resp2 = new Active_Test_Resp(data);
                //SWClr(active_test_resp2.SequenceID);
                break;

            case SMGP3_COMMAND.Exit:
                _connect = false;
                break;
            }
        }
Exemplo n.º 45
0
        public override void handleGETRequest(HttpProcessor p)
        {
            p.writeSuccess();

            string[] ts = p.http_url.Split('?');


            string url = ts[0];


            if (url == "/MO")
            {
                //http://pushMoUrl?receiver=admin&pswd=12345&moTime=1208212205&mobile=13800210021&destcode=1065751600001&msg=hello&destcode=10657109012345
                ts = ts[1].Split('&');
                string   receiver = "";
                string   pswd     = "";
                DateTime moTime   = DateTime.Now;
                string   mobile   = "";
                string   destcode = "";
                string   msg      = "";
                string   emshead;
                string   isems;
                string[] t;
                string   time;
                foreach (string s in ts)
                {
                    t = s.Split('=');
                    switch (t[0])
                    {
                    case "receiver":
                        receiver = t[1];
                        break;

                    case "pswd":
                        pswd = t[1];
                        break;

                    case "moTime":
                        //格式YYMMDDhhmm,其中YY=年份的最后两位(00-99),MM=月份(01-12),DD=日(01-31),hh=小时(00-23),mm=分钟(00-59)
                        time = DateTime.Now.Year + "-" + t[1].Substring(2, 2) + "-" + t[1].Substring(4, 2) + " " + t[1].Substring(6, 2) + ":" + t[1].Substring(8, 2);
                        if (!DateTime.TryParse(time, out moTime))
                        {
                            moTime = DateTime.Now;
                        }
                        break;

                    case "mobile":
                        mobile = t[1];
                        break;

                    case "destcode":
                        // destcode = t[1];
                        break;

                    case "msg":
                        msg = System.Web.HttpUtility.UrlDecode(t[1]);
                        break;

                    case "isems":
                        isems = t[1];
                        break;

                    case "emshead":
                        emshead = t[1];
                        break;
                    }
                }

                try
                {
                    DeliverEventArgs re = new DeliverEventArgs(Guid.NewGuid().ToString(), moTime, msg, mobile, destcode, "");
                    DeliverEvent(this, re);
                    string tr = JsonSerialize.Instance.Serialize <DeliverEventArgs>(re);
                    LogClient.LogHelper.LogInfo("JCWG", "MO ->", tr);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    LogClient.LogHelper.LogInfo("JCWG", "MO Error ->", ex.Message);
                }
            }

            if (url == "/Report")
            {
                //"http://pushUrl?receiver=admin&pswd=12345&msgid=12345&reportTime=1012241002&mobile=13900210021&status=DELIVRD"
                ts = ts[1].Split('&');
                string   receiver   = "";
                string   pswd       = "";
                string   msgid      = "";
                DateTime reportTime = DateTime.Now;
                string   mobile     = "";
                string   status     = "";

                string[] t;
                string   time;
                foreach (string s in ts)
                {
                    t = s.Split('=');
                    switch (t[0])
                    {
                    case "receiver":
                        receiver = t[1];
                        break;

                    case "pswd":
                        pswd = t[1];
                        break;

                    case "reportTime":
                        //格式YYMMDDhhmm,其中YY=年份的最后两位(00-99),MM=月份(01-12),DD=日(01-31),hh=小时(00-23),mm=分钟(00-59)
                        time = DateTime.Now.Year + "-" + t[1].Substring(2, 2) + "-" + t[1].Substring(4, 2) + " " + t[1].Substring(6, 2) + ":" + t[1].Substring(8, 2);
                        if (!DateTime.TryParse(time, out reportTime))
                        {
                            reportTime = DateTime.Now;
                        }
                        break;

                    case "mobile":
                        mobile = t[1];
                        break;

                    case "status":
                        status = t[1];
                        break;

                    case "msgid":
                        msgid = t[1];
                        break;
                    }
                }

                try
                {
                    bool   ok = false;
                    ushort statecode;
                    string statetext = "短消息转发成功";
                    switch (status)
                    {
                    case "DELIVRD":
                        statetext = "短消息转发成功";
                        statecode = 2100;
                        ok        = true;
                        break;

                    case "EXPIRED":
                        statetext = "短消息超过有效期";
                        statecode = 2101;
                        break;

                    case "UNDELIV":
                        statetext = "短消息是不可达的";
                        statecode = 2102;
                        break;

                    case "UNKNOWN":
                        statetext = "未知短消息状态";
                        statecode = 2103;
                        break;

                    case "REJECTD":
                        statetext = "短消息被短信中心拒绝";
                        statecode = 2104;
                        break;

                    case "DTBLACK":
                        statetext = "目的号码是黑名单号码";
                        statecode = 2105;
                        break;

                    case "ERR: 104":
                        statetext = "系统忙";
                        statecode = 2106;
                        break;

                    case "REJECT":
                        statetext = "审核驳回";
                        statecode = 2107;
                        break;

                    default:
                        statetext = "网关内部状态";
                        statecode = 2108;
                        break;
                    }

                    if (!ok)
                    {
                        statetext = "发送失败。";
                    }

                    ReportEventArgs re = new ReportEventArgs(msgid, ok, statecode, statetext, reportTime);
                    ReportEvent(this, re);
                    string tr = JsonSerialize.Instance.Serialize <ReportEventArgs>(re);
                    Console.WriteLine("返回状态报告:" + tr);
                    LogClient.LogHelper.LogInfo("JCWG", "GetReport Process ->", tr);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    LogClient.LogHelper.LogInfo("JCWG", "GetReport Error ->", ex.Message);
                }
            }
        }
Exemplo n.º 46
0
        private void ThermostatSetpoint_Changed(object sender, ReportEventArgs <ThermostatSetpointReport> e)
        {
            var setpoint = new Setpoint(e.Report.Value, e.Report.Scale == 0 ? Unit.Celsius : Unit.Fahrenheit);

            OnSetPointChanged(new SetpointEventArgs(setpoint));
        }
Exemplo n.º 47
0
 private void Meter_Changed(object sender, ReportEventArgs <MeterReport> e)
 {
     OnEnergyConsumptionMeasured(new MeasureEventArgs(new Measure(e.Report.Value, Unit.KiloWattHour)));
 }
Exemplo n.º 48
0
 private void ThermostatSetpoint_Changed(object sender, ReportEventArgs<ThermostatSetpointReport> e)
 {
     var setpoint = new Setpoint(e.Report.Value, e.Report.Scale == 0 ? Unit.Celsius : Unit.Fahrenheit);
     OnSetPointChanged(new SetpointEventArgs(setpoint));
 }
Exemplo n.º 49
0
 private void SensorMultiLevel_Changed(object sender, ReportEventArgs <SensorMultiLevelReport> e)
 {
     OnPowerLoadMeasured(new MeasureEventArgs(new Measure(e.Report.Value, Unit.Watt)));
 }
Exemplo n.º 50
0
 private void SensorMultiLevel_Changed(object sender, ReportEventArgs<SensorMultiLevelReport> e)
 {
     OnPowerLoadMeasured(new MeasureEventArgs(new Measure(e.Report.Value, Unit.Watt)));
 }
Exemplo n.º 51
0
        void tmrReport_Elapsed(object sender, ElapsedEventArgs e)
        {
            if (reportProcess)
            {
                return;
            }
            reportProcess = true;
            //格式: 批号 |^| 号码 |^| 状态  两条记录这间用 |;| 分隔
            try
            {
                if (sends.Count > 0)
                {
                    string   msgid    = "";
                    bool     ok       = true;
                    DateTime datetime = DateTime.Now;
                    string   post     = string.Format("act=getstatue&unitid={0}&username={1}&passwd={2}&rowid=0", _config.UserId, _config.Account, _config.Password);
                    string   t        = HTTPRequest.PostWebRequest(statusUrl, post, Encoding.UTF8);
                    Console.WriteLine("查询原始状态报告:" + t);
                    if (t == "0")
                    {
                        reportProcess = false;
                        return;
                    }
                    string[] repotrs = t.Split(split, StringSplitOptions.RemoveEmptyEntries);
                    if (repotrs.Length == 0)
                    {
                        reportProcess = false;
                        return;
                    }
                    foreach (string report in repotrs)
                    {
                        string[] rc = report.Split(splitContent, StringSplitOptions.RemoveEmptyEntries);
                        msgid    = rc[0];
                        datetime = DateTime.Now;
                        if (rc[2] == "DELIVRD")
                        {
                            ok = true;
                        }
                        else
                        {
                            ok = false;
                        }
                        if (ReportEvent != null)
                        {
                            ushort statecode;
                            string statetext = "发送成功。";
                            statecode = 2100;
                            if (!ok)
                            {
                                statecode = 2101;
                                statetext = "发送失败。";
                            }
                            lock (locker)
                            {
                                var se = sends.FirstOrDefault(s => s.Value.SendEventArgs.SerialNumber.StartsWith(msgid) && s.Value.SendEventArgs.Message.Number[0] == rc[1]);
                                if (!se.Equals(default(KeyValuePair <string, ExSendEventArgs>)))
                                {
                                    ReportEventArgs re = new ReportEventArgs(se.Value.SendEventArgs.SerialNumber, ok, statecode, statetext, datetime);
                                    ReportEvent(this, re);
                                    string tr = JsonSerialize.Instance.Serialize <ReportEventArgs>(re);
                                    MessageTools.MessageHelper.Instance.WirteInfo("返回状态报告:" + tr);
                                    sends.Remove(re.Serial);
                                }
                                else
                                {
                                    MessageTools.MessageHelper.Instance.WirteInfo("无法匹配状态报告:msgid:" + msgid + " mobile:" + rc[1]);
                                }
                            }
                        }
                    }
                }

                lock (locker)
                {
                    List <string> rkeys = new List <string>();
                    foreach (string key in sends.Keys)
                    {
                        if ((DateTime.Now - sends[key].Time).TotalDays >= 2)
                        {
                            ReportEventArgs re = new ReportEventArgs(sends[key].SendEventArgs.SerialNumber, true, 2100, "状态报告超时,默认成功.", DateTime.Now);
                            ReportEvent(this, re);
                            string ttr = JsonSerialize.Instance.Serialize <ReportEventArgs>(re);
                            Console.WriteLine("超时返回状态报告:" + JsonSerialize.Instance.Serialize <ReportEventArgs>(re));
                            LogClient.LogHelper.LogInfo("JCSY", "GetReport Timeout ->", ttr);
                            rkeys.Add(key);
                        }
                    }
                    foreach (string key in rkeys)
                    {
                        sends.Remove(key);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                LogClient.LogHelper.LogInfo("JCSY", "GetReport Error ->", ex.Message);
            }
            reportProcess = false;
        }
Exemplo n.º 52
0
 private void SwitchBinary_Changed(object sender, ReportEventArgs <SwitchBinaryReport> e)
 {
     OnReportChanged(e.Report);
 }
Exemplo n.º 53
0
 private void Meter_Changed(object sender, ReportEventArgs<MeterReport> e)
 {
     OnEnergyConsumptionMeasured(new MeasureEventArgs(new Measure(e.Report.Value, Unit.KiloWattHour)));
 }