示例#1
0
        private void btn_M添加_Click(object sender, EventArgs e)
        {
            场景模块添加界面 frm = new 场景模块添加界面();

            if (frm.ShowDialog() == DialogResult.OK)
            {
                if (tmp场景子模块.场景调试模块列表2 == null)
                {
                    tmp场景子模块.场景调试模块列表2 = new List <场景调试模块>();
                }
                foreach (var v in frm.模块编号)
                {
                    if (tmp场景子模块.场景调试模块列表2.FindIndex(t => t.模块编号 == v) != -1)
                    {
                        continue;
                    }
                    场景调试模块 tmp = new 场景调试模块();
                    tmp.场景开关信息列表 = new List <场景开关信息>();
                    while (tmp.场景开关信息列表.Count < 16)
                    {
                        var vmsg = new 场景开关信息();
                        vmsg.开关通道 = (tmp.场景开关信息列表.Count + 1).ToString();
                        vmsg.开关状态 = "是";
                        vmsg.开关亮度 = "0";
                        tmp.场景开关信息列表.Add(vmsg);
                    }
                    tmp.模块编号 = v;
                    var v1 = ModelsOperate.GetModel(int.Parse(tmp.模块编号));
                    tmp场景子模块.场景调试模块列表2.Add(tmp);
                }
                RefreshForm_场景模块(tmp场景子模块.场景调试模块列表2);
            }
        }
        public static void LoadSwitch(int 模块地址)
        {
            string sql = string.Format(@" select * from 开关信息 where 模块地址 = '{0}' ", 模块地址.ToString());
            调试模块   tmp = ModelsOperate.GetModel(模块地址);
            //if (tmp.开关列表 == null)
            //    tmp.开关列表 = new List<开关模块>();
            DataTable dt = AccessLib.GetData(sql);

            foreach (DataRow v in dt.Rows)
            {
                开关模块 swit = new 开关模块()
                {
                    模块编号 = 模块地址.ToString(),
                    开关编号 = Convert.ToString(v["开关编号"]),
                    开关名称 = Convert.ToString(v["开关名称"]),
                    开关位置 = Convert.ToString(v["开关位置"])
                };
                //int index = -1;
                //if ((index = tmp.开关列表.FindIndex(t => t.开关编号 == swit.开关编号)) != -1)
                //{
                //    //tmp.开关列表[index] = swit;
                //    tmp.开关列表[index].开关位置 = swit.开关位置;
                //    tmp.开关列表[index].开关名称 = swit.开关名称;
                //}
                //else
                //{
                //    tmp.开关列表.Add(swit);
                //}
            }
        }
示例#3
0
        private void dgv_调试模块_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex == -1 || e.ColumnIndex == -1)
            {
                dgv_开关模块.Rows.Clear();
                return;
            }
            if (dgv_场景模块.SelectedRows.Count == 0)
            {
                dgv_调试模块.Rows.Clear();
                dgv_开关模块.Rows.Clear();
                MessageBox.Show("请先选择场景模块!");
                return;
            }
            if (dgv_调试模块.SelectedRows.Count == 0)
            {
                dgv_开关模块.Rows.Clear();
                MessageBox.Show("请先选择产品模块模块!");
                return;
            }
            string name  = Convert.ToString(dgv_场景模块.SelectedRows[0].Cells[0].Value);
            int    index = -1;

            if ((index = 当前场景模块.FindIndex(t => t.场景名称 == name)) == -1)
            {
                dgv_调试模块.Rows.Clear();
                dgv_开关模块.Rows.Clear();
                return;
            }
            if (当前场景模块[index] == null)
            {
                当前场景模块[index].场景调试模块列表 = new List <场景调试模块>();
            }
            场景调试模块 tmp = 当前场景模块[index].场景调试模块列表.Find(t => t.模块编号 == Convert.ToString(dgv_调试模块.Rows[e.RowIndex].Cells[0].Value));

            if (tmp == null)
            {
                MessageBox.Show("该地址模块不存在!");
                return;
            }
            if (tmp.场景开关信息列表 == null)
            {
                tmp.场景开关信息列表 = new List <场景开关信息>();
            }
            while (tmp.场景开关信息列表.Count < 16)
            {
                var v = new 场景开关信息();
                v.开关通道 = (tmp.场景开关信息列表.Count + 1).ToString();
                v.开关状态 = "是";
                v.开关亮度 = "0";
                tmp.场景开关信息列表.Add(v);
            }
            var tmp1 = ModelsOperate.GetModel(int.Parse(tmp.模块编号));

            //for (int i = 0; i < tmp1.开关列表.Count; i++)
            //{
            //    tmp.场景开关信息列表.Find(t=>t.开关通道 == tmp1.开关列表[i].模块编号).开关名称 = tmp1.开关列表[i].开关名称;
            //}
            Refresh_dgv_开关模块(tmp.场景开关信息列表, tmp1);
        }
示例#4
0
        private void Panel_Click(object sender, EventArgs e)
        {
            var tmp = ModelsOperate.GetModel(int.Parse(AddrNumber));

            if (ButtonClick != null)
            {
                ButtonClick(sender, tmp);
            }
        }
 private void contextMenuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
 {
     if (e.ClickedItem.Name == "开关编辑")
     {
         开关管理 frm = new 开关管理();
         frm.tmp = ModelsOperate.GetModel(Convert.ToInt32(dataGridView1.Rows[Editindex].Cells[0].Value));
         frm.ShowDialog();
         Editindex = -1;
     }
 }
示例#6
0
        private void RefreshForm_场景模块(List <场景调试模块> tmp)
        {
            dgv_调试模块.Rows.Clear();
            var vv = tmp.OrderBy(t => int.Parse(t.模块编号)).ToList();

            foreach (var v in vv)
            {
                var v1 = ModelsOperate.GetModel(int.Parse(v.模块编号));
                dgv_调试模块.Rows.Add(v.模块编号, v1.模块名称);
            }
        }
示例#7
0
 private void btn_M添加_Click(object sender, EventArgs e)
 {
     try
     {
         if (dgv_场景模块.SelectedRows.Count == 0)
         {
             MessageBox.Show("请先选择一项场景!");
             return;
         }
         场景模块添加界面 frm = new 场景模块添加界面();
         if (frm.ShowDialog() == DialogResult.OK)
         {
             int    index = -1;
             string name  = Convert.ToString(dgv_场景模块.SelectedRows[0].Cells[0].Value);
             if ((index = 当前场景模块.FindIndex(t => t.场景名称 == name)) == -1)
             {
                 dgv_调试模块.Rows.Clear();
                 dgv_开关模块.Rows.Clear();
                 return;
             }
             if (当前场景模块[index].场景调试模块列表 == null)
             {
                 当前场景模块[index].场景调试模块列表 = new List <场景调试模块>();
             }
             foreach (var v in frm.模块编号)
             {
                 if (当前场景模块[index].场景调试模块列表.FindIndex(t => t.模块编号 == v) != -1)
                 {
                     //MessageBox.Show("该地址已存在");
                     continue;
                 }
                 场景调试模块 tmp = new 场景调试模块();
                 tmp.场景开关信息列表 = new List <场景开关信息>();
                 tmp.模块编号     = v;
                 var v1 = ModelsOperate.GetModel(int.Parse(tmp.模块编号));
                 当前场景模块[index].场景调试模块列表.Add(tmp);
             }
             ConfigClass.SaveCookie_List(场景设置.当前场景模块, "场景模块.dat");
             RefreshForm_场景模块(当前场景模块[index].场景调试模块列表);
             MessageBox.Show("添加成功");
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
示例#8
0
        public void RefreshPanel(开关模块 tmp, string modelsType)
        {
            ModelsType = modelsType;
            switchButton.ButtonDisplay(tmp.flag);
            ModelsNumber       = tmp.模块编号;
            numLable.Text      = tmp.开关编号;
            nameLable.Text     = tmp.开关名称;
            nameLable.Location = new Point((this.Width - nameLable.PreferredWidth) / 2, nameLable.Location.Y);
            if (ModelsType == "开关模块")
            {
                trackBar.Visible    = false;
                numTrackBar.Visible = false;
            }
            else
            {
                trackBar.Visible    = true;
                numTrackBar.Visible = true;
                numTrackBar.Text    = "亮度:" + tmp.亮度.ToString();
            }
            var tmp1 = ModelsOperate.GetModel(int.Parse(tmp.模块编号));

            //if (tmp1.开关路数 == null)
            //    tmp1.开关路数 = "16";
            //int channel = int.Parse(tmp1.开关路数);
            //if (channel < int.Parse(PanleNumber))
            //    this.Visible = false;
            //else
            //    this.Visible = true;
            trackBar.Value = tmp.亮度;
            if (!switchButton.flag)
            {
                pictureBox.Image = Properties.Resources.灯泡关;
            }
            else
            {
                pictureBox.Image = Properties.Resources.灯泡开;
            }
            LightValue = tmp.亮度;
            Flag       = tmp.flag;
            LightValue = tmp.亮度;
        }
示例#9
0
        private void dgv_调试模块_SelectionChanged(object sender, EventArgs e)
        {
            if (dgv_调试模块.SelectedRows.Count != 1)
            {
                dgv_开关模块.Rows.Clear();
                //MessageBox.Show("请先选择产品模块!");
                return;
            }
            dgv_开关模块.Rows.Clear();
            int    index = dgv_调试模块.SelectedRows[0].Index;
            场景调试模块 tmp   = tmp场景子模块.场景调试模块列表2.Find(t => t.模块编号 == Convert.ToString(dgv_调试模块.Rows[index].Cells[0].Value));

            if (tmp == null)
            {
                MessageBox.Show("该地址模块不存在!");
                return;
            }
            if (tmp.场景开关信息列表 == null)
            {
                tmp.场景开关信息列表 = new List <场景开关信息>();
            }
            while (tmp.场景开关信息列表.Count < 16)
            {
                var v = new 场景开关信息();
                v.开关通道 = (tmp.场景开关信息列表.Count + 1).ToString();
                v.开关状态 = "是";
                v.开关亮度 = "0";
                tmp.场景开关信息列表.Add(v);
            }
            var tmp1 = ModelsOperate.GetModel(int.Parse(tmp.模块编号));

            //for (int i = 0; i < tmp1.开关列表.Count; i++)
            //{
            //    tmp.场景开关信息列表.Find(t => t.开关通道 == tmp1.开关列表[i].模块编号).开关名称 = tmp1.开关列表[i].开关名称;
            //}
            Refresh_dgv_开关模块(tmp.场景开关信息列表, tmp1);
        }
示例#10
0
        public void RefreshPanel(string addrNumber, string modlesType, int state, int falut)
        {
            //string s = "";
            //if (modlesType == "开关模块")
            //    s = "开关型";
            //else if (modlesType == "调光模块")
            //    s = "调光型";
            //else
            //    s = "未获取";
            numLable.Text      = addrNumber + ":" + modlesType;
            numLable.BackColor = Color.Transparent;
            var v = ModelsOperate.GetModel(int.Parse(addrNumber));

            typeLable.Text     = v.模块名称;
            numLable.Location  = new Point((this.Width - numLable.PreferredWidth - 13), (17));
            typeLable.Location = new Point((this.Width - typeLable.PreferredWidth) / 2, (this.Height - 2 * numLable.Height) / 2 + numLable.Height);
            if (State != state)
            {
                if (state == 0)
                {
                    drawColor = SystemColors.ControlLight;
                }
                else if (state == 2)
                {
                    drawColor = Color.PaleTurquoise;
                }
                else if (state == 3)
                {
                    drawColor = Color.Khaki;
                }
                this.Refresh();
            }
            State      = state;
            FaultState = falut;
            AddrNumber = addrNumber;
            ModlesType = modlesType;
        }
        public static void FroeachScene()
        {
            DateTime dt1       = DateTime.Now;
            DateTime dt2       = DateTime.Now;
            bool     bSure     = false;
            DateTime currentDt = DateTime.Now;

            if (lastCheckDatetime >= currentDt)
            {
                lastCheckDatetime = currentDt;
                return;
            }
            try
            {
                dt1             = 计算日出日落.计算日出时间(MainForm.currentParam.经度, MainForm.currentParam.维度, DateTime.Now);
                dt2             = 计算日出日落.计算日落时间(MainForm.currentParam.经度, MainForm.currentParam.维度, DateTime.Now);
                MainForm.日出日落时间 = string.Format("日出:{0} 日落:{1}", dt1.ToString("HH:mm:ss"), dt2.ToString("HH:mm:ss"));
                MainForm.日出时间   = dt1.ToString("HH:mm:ss");
                MainForm.日落时间   = dt2.ToString("HH:mm:ss");
                bSure           = true;
            }
            catch (Exception ex)
            {
                bSure = false;
            }
            //for (int i = 0; i < ModelsOperate.ModelsList.Count; i++)
            //{
            //var v = ModelsOperate.ModelsList[i];
            //}

            var tmp = 场景设置.当前场景模块.Where((t, b) =>
            {
                if (t.启用标志)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }).ToList();

            foreach (var v1 in tmp)
            {
                if (tmp.FindIndex(t => t.模式 == SceneModel.国家公休日) != -1)
                {
                    string currentd = DateTime.Now.ToString("yyyyMMdd");
                    if (MainForm.国家公休日列表.FindIndex(t => t.日期 == currentd) != -1)
                    {
                        if (v1.模式 == SceneModel.工作日模式)
                        {
                            continue;
                        }
                    }
                    else
                    {
                        if (v1.模式 == SceneModel.国家公休日)
                        {
                            continue;
                        }
                        if (DateTime.Now.DayOfWeek == DayOfWeek.Monday && ((v1.星期数据 >> 0) & 0x01) == 1 ||
                            DateTime.Now.DayOfWeek == DayOfWeek.Tuesday && ((v1.星期数据 >> 1) & 0x01) == 1 ||
                            DateTime.Now.DayOfWeek == DayOfWeek.Wednesday && ((v1.星期数据 >> 2) & 0x01) == 1 ||
                            DateTime.Now.DayOfWeek == DayOfWeek.Thursday && ((v1.星期数据 >> 3) & 0x01) == 1 ||
                            DateTime.Now.DayOfWeek == DayOfWeek.Friday && ((v1.星期数据 >> 4) & 0x01) == 1 ||
                            DateTime.Now.DayOfWeek == DayOfWeek.Saturday && ((v1.星期数据 >> 5) & 0x01) == 1 ||
                            DateTime.Now.DayOfWeek == DayOfWeek.Sunday && ((v1.星期数据 >> 6) & 0x01) == 1)
                        {
                        }
                        else
                        {
                            continue;
                        }
                    }
                }
                else
                {
                    if (DateTime.Now.DayOfWeek == DayOfWeek.Monday && ((v1.星期数据 >> 0) & 0x01) == 1 ||
                        DateTime.Now.DayOfWeek == DayOfWeek.Tuesday && ((v1.星期数据 >> 1) & 0x01) == 1 ||
                        DateTime.Now.DayOfWeek == DayOfWeek.Wednesday && ((v1.星期数据 >> 2) & 0x01) == 1 ||
                        DateTime.Now.DayOfWeek == DayOfWeek.Thursday && ((v1.星期数据 >> 3) & 0x01) == 1 ||
                        DateTime.Now.DayOfWeek == DayOfWeek.Friday && ((v1.星期数据 >> 4) & 0x01) == 1 ||
                        DateTime.Now.DayOfWeek == DayOfWeek.Saturday && ((v1.星期数据 >> 5) & 0x01) == 1 ||
                        DateTime.Now.DayOfWeek == DayOfWeek.Sunday && ((v1.星期数据 >> 6) & 0x01) == 1)
                    {
                    }
                    else
                    {
                        continue;
                    }
                }
                if (DateTime.Now.Date >= v1.开始时间.Date && v1.结束时间.Date >= DateTime.Now.Date)
                {
                    foreach (var v2 in v1.场景子名称列表)
                    {
                        if (v2.定时方式 != SetTimeType.普通定时 && !bSure)
                        {
                            continue;
                        }
                        DateTime dt3;
                        if (v2.定时方式 == SetTimeType.普通定时)
                        {
                            dt3 = v2.动作时间;
                        }
                        else if (v2.定时方式 == SetTimeType.日出时间)
                        {
                            dt3 = dt1;
                        }
                        else
                        {
                            dt3 = dt2;
                        }
                        var Msg1 = 获取场景模块信息(v2);
                        if (lastCheckDatetime.TimeOfDay < dt3.TimeOfDay && dt3.TimeOfDay <= DateTime.Now.TimeOfDay)
                        {
                            var Msg = 获取场景模块信息(v2);
                            if (Msg != null)
                            {
                                foreach (var tmpMsg in Msg)
                                {
                                    List <ushort> tmpl = new List <ushort>();
                                    foreach (var ii in tmpMsg.channel)
                                    {
                                        tmpl.Add((ushort)ii);
                                    }
                                    var tmpModel = ModelsOperate.GetModel(int.Parse(tmpMsg.addr));
                                    if (tmpModel == null)
                                    {
                                        continue;
                                    }
                                    if (tmpModel.模块类型 == "开关模块")
                                    {
                                        ModlesMsg modlesMsg = new ModlesMsg()
                                        {
                                            addr = int.Parse(tmpMsg.addr),
                                            //action = v2.动作 ? ActionState.Open : ActionState.Close,
                                            bitArray   = tmpl.ToArray(),
                                            valueArray = tmpMsg.value,
                                            模块类型       = tmpModel.模块类型,
                                            bit        = 0xf1
                                        };
                                        MainForm.WriteDic.AddOrUpdate(tmpMsg.addr + "," + "场景", modlesMsg, (key, value) => value);
                                    }
                                    else if (tmpModel.模块类型 == "调光模块")
                                    {
                                        ModlesMsg modlesMsg = new ModlesMsg()
                                        {
                                            addr = int.Parse(tmpMsg.addr),
                                            //action = v2.动作 ? ActionState.Open : ActionState.Close,
                                            bitArray   = tmpl.ToArray(),
                                            valueArray = tmpMsg.value,
                                            模块类型       = tmpModel.模块类型,
                                            bit        = 0xf1
                                        };
                                        MainForm.WriteDic.AddOrUpdate(tmpMsg.addr + "," + "场景_1", modlesMsg, (key, value) => value);
                                        ModlesMsg modlesMsg1 = new ModlesMsg()
                                        {
                                            addr = int.Parse(tmpMsg.addr),
                                            //action = v2.动作 ? ActionState.Open : ActionState.Close,
                                            bitArray   = tmpl.ToArray(),
                                            valueArray = tmpMsg.value,
                                            模块类型       = tmpModel.模块类型,
                                            bit        = 0xf2
                                        };
                                        MainForm.WriteDic.AddOrUpdate(tmpMsg.addr + "," + "场景_2", modlesMsg1, (key, value) => value);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            lastCheckDatetime = currentDt;
        }