/// <summary> /// 报警 /// </summary> /// <returns></returns> public string UP0003(string cp_code, string cb_code, string bodyData) { string sendData = ""; Dictionary <string, object> tcpClientDic = Config.g_tcpClientDic[cp_code]; Listener_ChargePile_Data_AC data = (Listener_ChargePile_Data_AC)tcpClientDic["data"]; MatchCollection arr = Regex.Matches(bodyData, @"(?<=\[)[^\]]*(?=\])"); string UP_0 = arr[0].Value; //枪编号 string UP_1 = arr[1].Value; //报警码 //更新充电桩报警状态 if (int.Parse(UP_1) != 255) { data.gundata[int.Parse(UP_0)].ispolice = true; data.gundata[int.Parse(UP_0)].police = Config.g_police[int.Parse(UP_1)]; data.gundata[int.Parse(UP_0)].policecode = int.Parse(UP_1); //将报警数据写入数据库 AM_CIMPolice mod = new AM_CIMPolice(); mod.cs_id = data.cs_id; mod.t_id = data.t_id; mod.v_id = data.v_id; mod.cp_id = data.cp_id; mod.cp_code = data.cp_code; mod.cp_guncode = int.Parse(UP_0); List <G_ChargeBattery> list = m_incChargeBattery.GetChargeBattery(cb_code); if (list.Count > 0) { mod.cb_id = list[0].cb_id; } else { mod.cb_id = 0; } mod.cb_code = cb_code; mod.am_cimp_condition = data.condition; mod.am_cimp_type = int.Parse(UP_1); mod.am_cimp_examine = false; m_incAMCIMPolice.AddAMCIMPolice(mod); } else { data.gundata[int.Parse(UP_0)].ispolice = false; data.gundata[int.Parse(UP_0)].police = ""; data.gundata[int.Parse(UP_0)].policecode = 0; } string checkbody = "DW0003[1]"; sendData = tcpClientDic["version"].ToString() + data.cs_id + cp_code + cb_code + CRC16.GetString(checkbody) + checkbody; return(sendData); }
/// <summary> /// 处理按钮 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Solve(CIMPoliceShow control, AM_CIMPolice mod) { MessageBoxResult mbr = MessageBox.Show("是否处理该故障?", "消息提示", MessageBoxButton.OKCancel, MessageBoxImage.Warning, MessageBoxResult.OK); if (mbr == MessageBoxResult.OK) { try { HttpWebRequest hwr = (HttpWebRequest)WebRequest.Create(Config.g_httpUrl + string.Format("?type=UP0007&cs_id={0}&cp_id={1}&am_cimp_id={2}&am_cimp_examine=true", m_cs_id, m_cp_id, mod.am_cimp_id)); hwr.Method = "get"; WebResponse wr = hwr.GetResponse(); using (StreamReader sr = new StreamReader(wr.GetResponseStream())) { bool b = bool.Parse(sr.ReadToEnd()); if (b) { MessageBox.Show("处理成功!", "error", MessageBoxButton.OK, MessageBoxImage.Information); m_list.Remove(mod); control.Visibility = System.Windows.Visibility.Collapsed; //判断该枪是否所有报警都已处理 AM_CIMPolice[] arr = m_list.Where(a => a.cp_guncode == mod.cp_guncode).ToArray(); if (arr.Length <= 0) { //设置该枪的报警状态为false Dictionary <string, object> tcpClientDic = Config.g_cimTcpClientDic[m_cp_code]; Client_ChargePile_Data_AC data = (Client_ChargePile_Data_AC)tcpClientDic["data"]; data.gundata[(int)mod.cp_guncode].ispolice = false; data.gundata[(int)mod.cp_guncode].police = ""; data.gundata[(int)mod.cp_guncode].policecode = 0; //判断桩的报警状态 bool b2 = false; for (int i = 1; i < data.gundata.Count; i++) { if ((bool)data.gundata[(int)mod.cp_guncode].ispolice) { b2 = true; break; } } data.ispolice = b2; } } else { MessageBox.Show("处理失败!", "error", MessageBoxButton.OK, MessageBoxImage.Error); } } wr.Close(); } catch { MessageBox.Show("网络错误,处理失败!", "error", MessageBoxButton.OK, MessageBoxImage.Error); } } }
/// <summary> /// 修改充电桩报警数据 /// </summary> public bool EditAMCIMPolice(AM_CIMPolice mod, AM_CIMPolice mod2) { bool b = false; OpSql.Open(); try { b = OpSql.Update(new object[] { mod }, new object[] { mod2 }); } catch { } finally { OpSql.Close(); } return(b); }
/// <summary> /// 添加充电桩报警数据 /// </summary> public bool AddAMCIMPolice(AM_CIMPolice mod) { bool b = false; OpSql.Open(); try { b = OpSql.Insert(new object[] { mod }); } catch { } finally { OpSql.Close(); } return(b); }
}/// <summary> /// 处理充电桩报警数据 /// </summary> /// <returns></returns> public string UP0007(long cs_id, long cp_id, long am_cimp_id, bool am_cimp_examine) { string outputData = ""; AM_CIMPolice mod = new AM_CIMPolice(); mod.cs_id = cs_id; mod.cp_id = cp_id; mod.am_cimp_id = am_cimp_id; AM_CIMPolice mod2 = new AM_CIMPolice(); mod2.am_cimp_examine = am_cimp_examine; outputData = m_incAMCIMPolice.EditAMCIMPolice(mod, mod2).ToString(); return(outputData); }
/// <summary> /// 窗口载入完成 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Window_Loaded(object sender, RoutedEventArgs e) { m_cs_id = (long)((object[])this.Tag)[0]; m_cp_id = (long)((object[])this.Tag)[1]; m_cp_code = ((object[])this.Tag)[2].ToString(); //获取充电桩报警数据列表 m_list = m_incHTTPSend.UP006(m_cs_id, m_cp_id, false); for (int i = 0; i < m_list.Count; i++) { CIMPoliceShow control = new CIMPoliceShow(); AM_CIMPolice mod = m_list[i]; control.InternalElementMouseUp += new MouseButtonEventHandler(delegate(object sender2, MouseButtonEventArgs e2) { Solve(control, mod); }); control.Text = "充电桩第" + (int)m_list[i].cp_guncode + "枪:" + Config.g_police[(int)m_list[i].am_cimp_type] + "(" + m_list[i].am_d_addtime + ")"; polices.Children.Add(control); } }
/// <summary> /// 获取AM_CIMPolice实体List /// </summary> /// <param name="dt">源数据表</param> /// <returns></returns> public List <AM_CIMPolice> AM_CIMPolice(DataTable dt) { List <AM_CIMPolice> modelList = new List <AM_CIMPolice>(); AM_CIMPolice model; for (int n = 0; n < dt.Rows.Count; n++) { model = new AM_CIMPolice(); try { model.am_cimp_id = (long)dt.Rows[n]["am_cimp_id"]; } catch { } try { model.cs_id = (long)dt.Rows[n]["cs_id"]; } catch { } try { model.t_id = (int)dt.Rows[n]["t_id"]; } catch { } try { model.v_id = (int)dt.Rows[n]["v_id"]; } catch { } try { model.cp_id = (long)dt.Rows[n]["cp_id"]; } catch { } model.cp_code = dt.Rows[n]["cp_code"].ToString(); try { model.cp_guncode = (int)dt.Rows[n]["cp_guncode"]; } catch { } try { model.cb_id = (long)dt.Rows[n]["cb_id"]; } catch { } model.cb_code = dt.Rows[n]["cb_code"].ToString(); try { model.am_cimp_condition = (int)dt.Rows[n]["am_cimp_condition"]; } catch { } try { model.am_cimp_type = (int)dt.Rows[n]["am_cimp_type"]; } catch { } try { model.am_cimp_examine = (bool)dt.Rows[n]["am_cimp_examine"]; } catch { } try { model.am_d_addtime = (DateTime)dt.Rows[n]["am_d_addtime"]; } catch { } modelList.Add(model); } return(modelList); }