Ejemplo n.º 1
0
        /// <summary>
        /// 混合控制或PWM操作
        /// </summary>
        /// <param name="sluId"></param>
        /// <param name="ctrlId"></param>
        /// <param name="isMix">是否为混合控制</param>
        /// <param name="mixOpe">如果为混合控制则控制的操作 1-开灯,2-1档节能,3-2档节能,4-关灯 </param>
        /// <param name="scalOpe">如果为pwm操作则 0-10 -> 0%-100%</param>
        protected static void SndOrderMix(int sluId, int ctrlId, bool isMix, int mixOpe, int scalOpe)
        {
            var info = Wlst.Sr.ProtocolPhone.LxSluSgl.wst_slu_sgl_right_operator;
            var data = new client.SluRightOperators.SluRightOperator();

            data.SluId    = sluId;
            data.AddrType = 4;
            data.Addr     = ctrlId;
            data.Addrs    = new List <int>();
            data.Addrs.Add(ctrlId);
            data.CmdType = isMix ? 4 : 5;
            data.CmdMix  = new List <int>()
            {
                mixOpe, mixOpe, mixOpe, mixOpe
            };
            data.CmdPwmField = new client.SluRightOperators.SluRightOperator.CmdPwm()
            {
                LoopCanDo = new List <int>()
                {
                    1, 2, 3, 4
                },
                Scale = scalOpe
            };
            info.WstSluRightOperator.OperatorItems.Add(data);
            SndOrderServer.OrderSnd(info, 0, 0, true);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 混合控制或PWM操作
        /// </summary>
        /// <param name="sluId"></param>
        /// <param name="ctrlId"></param>
        /// <param name="isMix">是否为混合控制</param>
        /// <param name="mixOpe">如果为混合控制则控制的操作 1-开灯,2-1档节能,3-2档节能,4-关灯 </param>
        /// <param name="scalOpe">如果为pwm操作则 0-10 -> 0%-100%</param>
        protected static void SndOrderMix(int sluId, int ctrlId, bool isMix, int mixOpe, int scalOpe)
        {
            var info = Wlst.Sr.ProtocolPhone.LxSlu.wst_slu_right_operator;   // .wlst_cnt_wj2090_order_right_operator ;//.ServerPart.wlst_Wj2090_clinet_right_operator_slu;
            var data = new client.SluRightOperators.SluRightOperator();

            data.SluId          = sluId;
            data.OperationOrder = 0;
            data.AddrType       = 3;
            data.Addr           = ctrlId;
            data.Addrs          = new List <int>();
            data.CmdType        = isMix ? 4 : 5;
            data.CmdMix         = new List <int>()
            {
                mixOpe, mixOpe, mixOpe, mixOpe
            };
            data.CmdPwmField = new client.SluRightOperators.SluRightOperator.CmdPwm()
            {
                LoopCanDo = new List <int>()
                {
                    1, 2, 3, 4
                },
                Scale = scalOpe
            };
            info.WstSluRightOperator.OperatorItems.Add(data);
            SndOrderServer.OrderSnd(info, 0, 0, true);
        }
        private void Ex()
        {
            var ars = this.Argu as Dictionary <int, List <int> >;

            if (ars == null || ars.Count == 0)
            {
                return;
            }

            var info = Wlst.Sr.ProtocolPhone.LxSlu.wst_slu_right_operator;  //.wlst_cnt_wj2090_order_right_operator;

            foreach (var g in ars)
            {
                int sluId = g.Key;
                if (Wlst.Sr.EquipmentInfoHolding.Services.EquipmentIdAssignRang.IsSlu(sluId) == false)
                {
                    continue;
                }

                var tmps = Wlst.Sr.EquipmentInfoHolding.Services.EquipmentDataInfoHold.GetInfoById(g.Key);
                if (tmps == null || tmps.RtuFid > 0)
                {
                    continue;
                }


                //if (AddrType == 0) return;


                //if (info.Guid <= _guid) info.Guid = _guid + 1;
                //_guid = info.Guid;

                var data = new client.SluRightOperators.SluRightOperator();

                data.SluId          = sluId;
                data.OperationOrder = 0;
                data.AddrType       = 4;
                data.Addr           = 0;
                data.Addrs          = g.Value;
                if (OperatorId < 5)
                {
                    data.CmdType = 4;
                    data.CmdMix  = new List <int>()
                    {
                        OperatorId, OperatorId, OperatorId, OperatorId
                    };
                    data.CmdPwmField = new client.SluRightOperators.SluRightOperator.CmdPwm()
                    {
                        LoopCanDo = new List <int>()
                        {
                        },
                        Scale = 0
                    };
                }
                else
                {
                    data.CmdType = 5;
                    data.CmdMix  = new List <int>()
                    {
                    };
                    data.CmdPwmField = new client.SluRightOperators.SluRightOperator.CmdPwm()
                    {
                        LoopCanDo = new List <int>()
                        {
                            1, 2, 3, 4
                        },
                        Scale = (OperatorId - 5) * 10   //调光*10   lvf 2018年6月27日16:39:38
                    };
                }
                info.WstSluRightOperator.OperatorItems.Add(data);
            }
            SndOrderServer.OrderSnd(info);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// -2 单数节点 -1双数节点 其他分组
        /// </summary>
        /// <param name="sluId"></param>
        /// <param name="grpId"></param>
        /// <param name="operatorId"></param>
        /// <param name="isGprs"> </param>
        private void Operatorfun(int sluId, int grpId, int operatorId, bool isGprs)
        {
            if (Wlst.Sr.EquipmentInfoHolding.Services.EquipmentIdAssignRang.IsSlu(sluId) == false)
            {
                return;
            }


            var info = Wlst.Sr.ProtocolPhone.LxSlu.wst_slu_right_operator;  //.wlst_cnt_wj2090_order_right_operator;
            //.ServerPart.wlst_Wj2090_clinet_right_operator_slu;

            var data = new client.SluRightOperators.SluRightOperator();

            data.SluId          = sluId;
            data.OperationOrder = 0;
            if (grpId < 1)
            {
                data.AddrType = 2;
                if (grpId == -2)
                {
                    data.Addr = 21;
                }
                else
                {
                    data.Addr = 20;
                }
            }
            else
            {
                //if (isGprs)
                //{
                //    data.AddrType = 4;
                //    foreach (var g in this.ChildTreeItems)
                //    {
                //        if (g.NodeId < 256)
                //            data.Addrs.Add(g.NodeId);
                //    }
                //}
                //else
                {
                    data.AddrType = 1;
                    data.Addr     = grpId;
                }
            }
            data.Addrs = new List <int>();
            if (operatorId < 4)
            {
                data.CmdType = 4;
                if (operatorId == 3)
                {
                    operatorId = 4;
                }
                data.CmdMix = new List <int>()
                {
                    operatorId, operatorId, operatorId, operatorId
                };
                data.CmdPwmField = new client.SluRightOperators.SluRightOperator.CmdPwm()
                {
                    LoopCanDo = new List <int>()
                    {
                    },
                    Scale = 0
                };
            }
            else
            {
                data.CmdType = 5;
                data.CmdMix  = new List <int>()
                {
                };
                data.CmdPwmField = new client.SluRightOperators.SluRightOperator.CmdPwm()
                {
                    LoopCanDo = new List <int>()
                    {
                        1, 2, 3, 4
                    },
                    Scale = operatorId - 4
                };
            }
            info.WstSluRightOperator.OperatorItems.Add(data);
            SndOrderServer.OrderSnd(info);
        }
Ejemplo n.º 5
0
        private void Ex()
        {
            var info  = Wlst.Sr.ProtocolPhone.LxSluSgl.wst_slu_sgl_right_operator;
            var datax = new client.SluRightOperators.SluRightOperator();


            var ars1 = this.Argu as Tuple <int, int>;

            if (ars1 == null)
            {
                if ((int)this.Argu > 1700000 && (int)this.Argu < 1800000)
                {
                    var ars = Wlst.Sr.SlusglInfoHold.Services.SluSglInfoHold.MySlef.GetField((int)this.Argu);
                    if (ars == null)
                    {
                        return;
                    }
                    int sluId = ars.FieldId;

                    if (AddrType == 0)
                    {
                        return;
                    }

                    if (Wlst.Sr.EquipmentInfoHolding.Services.Others.OpenCloseLightSecondConfirm == 1)
                    {
                        var str = "开灯";
                        if (OperatorId == 1)
                        {
                            str = "开灯";
                        }
                        if (OperatorId == 4)
                        {
                            str = "关灯";
                        }
                        if (OperatorId > 4)
                        {
                            if (OperatorId == 5)
                            {
                                str = "0%节能";
                            }
                            else
                            {
                                str = (OperatorId - 5) + "0%节能";
                            }
                        }

                        if (
                            Cr.MessageBoxOverride.MessageBoxOverride.WlstMessageBox.View.WlstMessageBox.Show(
                                "您将要进行" + str + "操作,是否继续?", WlstMessageBoxType.YesNo) == WlstMessageBoxResults.No)
                        {
                            return;
                        }
                    }
                    else if (Wlst.Sr.EquipmentInfoHolding.Services.Others.OpenCloseLightSecondConfirm == 2)
                    {
                        var sss = UMessageBoxWantPassWord.Show("密码验证", "请输入您的用户密码", "");
                        if (sss == UMessageBoxWantPassWord.CancelReturn)
                        {
                            return;
                        }
                        if (sss != UserInfo.UserLoginInfo.UserPassword)
                        {
                            UMessageBox.Show("验证失败", "您输入的密码与本用户密码不匹配,请检查......",
                                             UMessageBoxButton.Yes);
                            return;
                        }
                    }

                    datax.SluId    = sluId;
                    datax.AddrType = 4;
                    datax.Addrs    = new List <int>();

                    var ctrllist = (from t in ars.CtrlLst orderby t.OrderId select t).ToList();
                    if (AddrType == 10)
                    {
                        foreach (var t in ctrllist)
                        {
                            datax.Addrs.Add(t.CtrlId);
                        }
                    }
                    else if (AddrType == 21)
                    {
                        foreach (var t in ctrllist)
                        {
                            if (t.OrderId % 2 == 1)
                            {
                                datax.Addrs.Add(t.CtrlId);
                            }
                        }
                    }
                    else if (AddrType == 20)
                    {
                        foreach (var t in ctrllist)
                        {
                            if (t.OrderId % 2 == 0)
                            {
                                datax.Addrs.Add(t.CtrlId);
                            }
                        }
                    }
                    ;


                    if (OperatorId < 5)
                    {
                        datax.CmdType = 4;
                        datax.CmdMix  = new List <int>()
                        {
                            OperatorId, OperatorId, OperatorId, OperatorId
                        };
                        datax.CmdPwmField = new client.SluRightOperators.SluRightOperator.CmdPwm()
                        {
                            LoopCanDo = new List <int>()
                            {
                            },
                            Scale = 0
                        };
                    }
                    else
                    {
                        datax.CmdType = 5;
                        datax.CmdMix  = new List <int>()
                        {
                        };
                        datax.CmdPwmField = new client.SluRightOperators.SluRightOperator.CmdPwm()
                        {
                            LoopCanDo = new List <int>()
                            {
                                1, 2, 3, 4
                            },
                            Scale = (OperatorId - 5) * 10                          //lvf 调光*10 2018年6月27日16:42:38
                        };
                    }

                    info.WstSluRightOperator.OperatorItems.Add(datax);
                    SndOrderServer.OrderSnd(info, 0, 0, true);
                }
            }
            else
            {
                var ars = Wlst.Sr.SlusglInfoHold.Services.SluSglFieldGrpHold.MySlef.Get(ars1.Item1, ars1.Item2);
                if (ars == null)
                {
                    Cr.MessageBoxOverride.MessageBoxOverride.WlstMessageBox.View.WlstMessageBox.Show(
                        "未分组控制器无法批量控制。", WlstMessageBoxType.Ok);
                    return;
                }
                int sluId = ars.FieldId;

                if (AddrType != 10)
                {
                    return;
                }


                if (Wlst.Sr.EquipmentInfoHolding.Services.Others.OpenCloseLightSecondConfirm == 1)
                {
                    var str = "开灯";
                    if (OperatorId == 1)
                    {
                        str = "开灯";
                    }
                    if (OperatorId == 4)
                    {
                        str = "关灯";
                    }
                    if (OperatorId > 4)
                    {
                        if (OperatorId == 5)
                        {
                            str = "0%节能";
                        }
                        else
                        {
                            str = (OperatorId - 5) + "0%节能";
                        }
                    }

                    if (
                        Cr.MessageBoxOverride.MessageBoxOverride.WlstMessageBox.View.WlstMessageBox.Show(
                            "您将要进行" + str + "操作,是否继续?", WlstMessageBoxType.YesNo) == WlstMessageBoxResults.No)
                    {
                        return;
                    }
                }
                else if (Wlst.Sr.EquipmentInfoHolding.Services.Others.OpenCloseLightSecondConfirm == 2)
                {
                    var sss = UMessageBoxWantPassWord.Show("密码验证", "请输入您的用户密码", "");
                    if (sss == UMessageBoxWantPassWord.CancelReturn)
                    {
                        return;
                    }
                    if (sss != UserInfo.UserLoginInfo.UserPassword)
                    {
                        UMessageBox.Show("验证失败", "您输入的密码与本用户密码不匹配,请检查......",
                                         UMessageBoxButton.Yes);
                        return;
                    }
                }

                datax.SluId    = sluId;
                datax.AddrType = 4;
                datax.Addrs    = new List <int>();

                //var ctrllist = (from t in ars.CtrlLst orderby t select t).ToList();
                if (AddrType == 10)
                {
                    foreach (var t in ars.CtrlLst)
                    {
                        datax.Addrs.Add(t);
                    }
                }

                if (OperatorId < 5)
                {
                    datax.CmdType = 4;
                    datax.CmdMix  = new List <int>()
                    {
                        OperatorId, OperatorId, OperatorId, OperatorId
                    };
                    datax.CmdPwmField = new client.SluRightOperators.SluRightOperator.CmdPwm()
                    {
                        LoopCanDo = new List <int>()
                        {
                        },
                        Scale = 0
                    };
                }
                else
                {
                    datax.CmdType = 5;
                    datax.CmdMix  = new List <int>()
                    {
                    };
                    datax.CmdPwmField = new client.SluRightOperators.SluRightOperator.CmdPwm()
                    {
                        LoopCanDo = new List <int>()
                        {
                            1, 2, 3, 4
                        },
                        Scale = (OperatorId - 5) * 10  // lvf 调光 *10 2018年6月27日16:37:01
                    };
                }

                info.WstSluRightOperator.OperatorItems.Add(datax);
                SndOrderServer.OrderSnd(info, 0, 0, true);
            }
        }
Ejemplo n.º 6
0
        private void Ex()
        {
            var ars = this.Argu as List <int>;

            if (ars == null || ars.Count == 0)
            {
                return;
            }

            var info = Wlst.Sr.ProtocolPhone.LxSlu.wst_slu_right_operator;  //.wlst_cnt_wj2090_order_right_operator;//.ServerPart.wlst_Wj2090_clinet_right_operator_slu;

            if (info.Head.Gid <= _guid)
            {
                info.Head.Gid = _guid + 1;
            }
            _guid = info.Head.Gid;
            foreach (var g in ars)
            {
                int sluId = g;
                if (Wlst.Sr.EquipmentInfoHolding.Services.EquipmentIdAssignRang.IsSlu(sluId) == false)
                {
                    continue;
                }


                if (AddrType == 0)
                {
                    return;
                }

                var data = new client.SluRightOperators.SluRightOperator();

                data.SluId          = sluId;
                data.OperationOrder = 0;
                data.AddrType       = 2;
                data.Addr           = AddrType;
                data.Addrs          = new List <int>();
                if (OperatorId < 5)
                {
                    data.CmdType = 4;
                    data.CmdMix  = new List <int>()
                    {
                        OperatorId, OperatorId, OperatorId, OperatorId
                    };
                    data.CmdPwmField = new client.SluRightOperators.SluRightOperator.CmdPwm()
                    {
                        LoopCanDo = new List <int>()
                        {
                        },
                        Scale = 0
                    };
                }
                else
                {
                    data.CmdType = 5;
                    data.CmdMix  = new List <int>()
                    {
                    };
                    data.CmdPwmField = new client.SluRightOperators.SluRightOperator.CmdPwm()
                    {
                        LoopCanDo = new List <int>()
                        {
                            1, 2, 3, 4
                        },
                        Scale = (OperatorId - 5) * 10                           //lvf  调光*10 2018年6月27日16:40:43
                    };
                }
                info.WstSluRightOperator.OperatorItems.Add(data);
            }
            SndOrderServer.OrderSnd(info);
        }