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; } } }
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); } } } }
private void Alarm_Changed(object sender, ReportEventArgs<AlarmReport> e) { if (e.Report.Type == AlarmType.General && e.Report.Detail == AlarmDetailType.TamperingProductCoveringRemoved) { OnVibrationDetected(EventArgs.Empty); } }
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))); } }
protected virtual void OnChanged(ReportEventArgs<SensorMultiLevelReport> e) { var handler = Changed; if (handler != null) { handler(this, e); } }
protected virtual void OnChanged(ReportEventArgs<ThermostatModeReport> e) { var handler = Changed; if (handler != null) { handler(this, e); } }
protected virtual void OnChanged(ReportEventArgs<AlarmReport> e) { var handler = Changed; if (handler != null) { handler(this, e); } }
private void WakeUp_Changed(object sender, ReportEventArgs<WakeUpReport> e) { if (e.Report.Awake) { OnAwaked(); return; } }
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(); } }
private void SensorBinary_Changed(object sender, ReportEventArgs<SensorBinaryReport> e) { if (e.Report.Value) { OnDoorOpened(EventArgs.Empty); } else { OnDoorClosed(EventArgs.Empty); } }
private void Contact_Changed(object sender, ReportEventArgs<SwitchBinaryReport> e) { if (e.Report.Value) { OnContactOpen(EventArgs.Empty); } else { OnContactClosed(EventArgs.Empty); } }
private void SwitchBinary_Changed(object sender, ReportEventArgs<SwitchBinaryReport> e) { if (e.Report.Value) { OnSwitchedOn(EventArgs.Empty); } else { OnSwitchedOff(EventArgs.Empty); } }
private void Basic_Changed(object sender, ReportEventArgs<BasicReport> e) { if (byte.Equals(e.Report.Value, 0xFF)) { OnSwitchedOn1(EventArgs.Empty); } else { OnSwitchedOff1(EventArgs.Empty); } }
private void SwitchBinary2_Changed(object sender, ReportEventArgs <SwitchBinaryReport> e) { if (e.Report.Value) { OnSwitchedOn2(EventArgs.Empty); } else { OnSwitchedOff2(EventArgs.Empty); } }
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))); } }
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); }
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; } }
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); } }
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; } }
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; } }
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; } }
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(); }); }
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()); }
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; } }
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); } }
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; } }
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))); } }
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))); } }
/// <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; }
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; } } }
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; } } }
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); } }
/// <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 = ""; } } }
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); } }
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++; }
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(); }
protected virtual void OnReport(ReportEventArgs e) { if (Report != null) Report(this, e); }
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; }
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; }
protected virtual void OnChanged(ReportEventArgs<SceneActivationReport> e) { Changed?.Invoke(this, e); }
static void Gateway_SendEvent(object sender, ReportEventArgs e) { ReportSend.Instance.BatchSend(e.StatusReports); }
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; }
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); } }
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; } }
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); } } }
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)); }
private void Meter_Changed(object sender, ReportEventArgs <MeterReport> e) { OnEnergyConsumptionMeasured(new MeasureEventArgs(new Measure(e.Report.Value, Unit.KiloWattHour))); }
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)); }
private void SensorMultiLevel_Changed(object sender, ReportEventArgs <SensorMultiLevelReport> e) { OnPowerLoadMeasured(new MeasureEventArgs(new Measure(e.Report.Value, Unit.Watt))); }
private void SensorMultiLevel_Changed(object sender, ReportEventArgs<SensorMultiLevelReport> e) { OnPowerLoadMeasured(new MeasureEventArgs(new Measure(e.Report.Value, Unit.Watt))); }
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; }
private void SwitchBinary_Changed(object sender, ReportEventArgs <SwitchBinaryReport> e) { OnReportChanged(e.Report); }
private void Meter_Changed(object sender, ReportEventArgs<MeterReport> e) { OnEnergyConsumptionMeasured(new MeasureEventArgs(new Measure(e.Report.Value, Unit.KiloWattHour))); }