/// <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);
        }
예제 #2
0
        /// <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);
        }
예제 #6
0
        /// <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);
            }
        }
예제 #7
0
    /// <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);
    }