⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zw_cmd_classes.cs

📁 zwave 无线通讯协议 PC controller 控制器源码
💻 CS
📖 第 1 页 / 共 5 页
字号:
                public Hashtable cmd;
            }

            [Serializable]
            public struct ZWCLASSES
            {
                public Hashtable ZwClasses;
            }

            public ZWCLASSES classes;
#if WIN_CE
            public string XMLsysCmdFile = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + @"\ZWave_system_cmd_classes.xml";
#else
            private string XMLsysCmdFile = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\ZWave_system_cmd_classes.xml";
#endif
            /// <summary>
            /// Set this string to the command class xml file
            /// </summary>
#if WIN_CE
            public string XMLcmdClassFile = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + @"\ZWave_custom_cmd_classes.xml";
#else
            private string XMLcmdClassFile = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\ZWave_custom_cmd_classes.xml";
#endif
            private ZWaveCmdClsType cmdClassesType = ZWaveCmdClsType.ZW_CLASS_NONE;


            /// <summary>
            /// 
            /// </summary>
            /// <param name="cmdClassKey"></param>
            /// <param name="className"></param>
            public void AddClass(byte cmdClassKey, string className)
            {
                string split = "";

                split = className.ToUpper().Replace('_', ' ').Trim();

                string friendlyName = "";
                bool nextLower = false;
                foreach (char c in split)
                {
                    string add = c.ToString().ToUpper();

                    if (nextLower)
                    {
                        add = add.ToLower();
                    }

                    friendlyName += add;
                    if (c == ' ')
                    {
                        nextLower = false;
                    }
                    else
                    {
                        nextLower = true;
                    }
                }
                AddClass(cmdClassKey, className, friendlyName);

            }
            /// <summary>
            /// 
            /// </summary>
            /// <param name="classValue"></param>
            /// <param name="className"></param>
            /// <param name="friendlyName"></param>
            public void AddClass(byte classValue, string className, string friendlyName)
            {
                ZWaveClass tempClass = new ZWaveClass();
                tempClass.cmd = new Hashtable();
                tempClass.cmdClassName = className;
                tempClass.cmdClassHelp = friendlyName;
                classes.ZwClasses[classValue] = tempClass;
            }
            /// <summary>
            /// remove  a class command from the has table.
            /// </summary>
            /// <param name="classKey"></param>
            public void RemoveClass(byte classKey)
            {
                classes.ZwClasses.Remove(classKey);
            }

            public struct cmdDes
            {
                public string Name;
                public byte Value;
            }
            //#if GENERATE_FILE
            public void AddCmd(byte cmdClassKey, bool cmdrecursive, cmdDes cmd)
            {
                AddCmd(cmdClassKey, cmd.Name, cmdrecursive, cmd.Value);
            }
            //#endif
            /// <summary>
            /// Adds the CMD.
            /// </summary>
            /// <param name="cmdClassKey">The CMD class key.</param>
            /// <param name="cmdName">Name of the CMD.</param>
            /// <param name="cmdrecursive">if set to <c>true</c> [cmdrecursive].</param>
            /// <param name="cmdValue">The CMD value.</param>
            public void AddCmd(byte cmdClassKey, string cmdName, bool cmdrecursive, byte cmdValue)
            {
                string split = "";
                if (cmdName.ToUpper().IndexOf("CMD_") != -1)
                {
                    split = cmdName.ToUpper().Replace('_', ' ').Remove(0, "CMD_".Length).Trim();
                }
                else
                {
                    split = cmdName.ToUpper().Replace('_', ' ').Trim();
                }

                string friendlyName = "";
                bool nextLower = false;
                foreach (char c in split)
                {
                    string add = c.ToString().ToUpper();

                    if (nextLower)
                    {
                        add = add.ToLower();
                    }

                    friendlyName += add;
                    if (c == ' ')
                    {
                        nextLower = false;
                    }
                    else
                    {
                        nextLower = true;
                    }
                }
                AddCmd(cmdClassKey, cmdName, cmdrecursive, friendlyName, cmdValue);
            }

            /// <summary>
            /// Adds the CMD.
            /// </summary>
            /// <param name="cmdClassKey">The CMD class key.</param>
            /// <param name="cmdName">Name of the CMD.</param>
            /// <param name="cmdrecursive">if set to <c>true</c> [cmdrecursive].</param>
            /// <param name="cmdFriendlyName">Name of the CMD friendly.</param>
            /// <param name="cmdValue">The CMD value.</param>
            public void AddCmd(byte cmdClassKey, string cmdName, bool cmdrecursive, string cmdFriendlyName, byte cmdValue)
            {
                ZWaveCmd ZwCmd = new ZWaveCmd();
                ZwCmd.cmdParams = new Hashtable();
                ZwCmd.variantGroups = new Hashtable();

                ZWaveClass tempClass = (ZWaveClass)classes.ZwClasses[cmdClassKey];

                ZwCmd.cmdName = cmdName;
                ZwCmd.CmdHelp = cmdFriendlyName;
                ZwCmd.cmdRecursive = cmdrecursive;
                tempClass.cmd[cmdValue] = ZwCmd;
            }
            /// <summary>
            /// 
            /// </summary>
            /// <param name="cmdClassKey"></param>
            /// <param name="cmdKey"></param>
            public void RemoveCmd(byte cmdClassKey, byte cmdKey)
            {
                ZWaveClass tempClass = (ZWaveClass)classes.ZwClasses[cmdClassKey];
                tempClass.cmd.Remove(cmdKey);
            }
            //#if GENERATE_FILE
            /*public void AddParam(byte classKey, cmdDes cmdKey, string paramName, byte paramNo, ParamType paramType)
            {
              AddParam(classKey,cmdKey.Value,paramName, paramNo, paramType);
            }*/
            //#endif
            /// <summary>
            /// Adds the param.
            /// </summary>
            /// <param name="classKey">The class key.</param>
            /// <param name="cmdKey">The CMD key.</param>
            /// <param name="paramName">Name of the param.</param>
            /// <param name="paramNo">The param no.</param>
            /// <param name="paramType">Type of the param.</param>
            /// <param name="paramRecurType">Type of the param recur.</param>
            public void AddParam(byte classKey, byte cmdKey, string paramName, byte paramNo, ParamType paramType, string paramRecurType)
            {
                CmdParam tempParam = new CmdParam();
                tempParam.paramAttribs = new Hashtable();
                ZWaveClass tempClass = (ZWaveClass)classes.ZwClasses[classKey];
                ZWaveCmd tempCmd = (ZWaveCmd)tempClass.cmd[cmdKey];
                tempParam.paramName = paramName;
                tempParam.paramType = paramType;
                tempParam.paramRecurType = paramRecurType;
                tempCmd.cmdParams[paramNo] = tempParam;

            }


            /// <summary>
            /// Adds the variant group.
            /// </summary>
            /// <param name="classKey">The class key.</param>
            /// <param name="cmdKey">The CMD key.</param>
            /// <param name="groupName">Name of the group.</param>
            /// <param name="variantKey">The variant key.</param>
            /// <param name="paramKey">The param key.</param>
            /// <param name="variant_group">The variant_group.</param>
            public void AddVariantGroup(byte classKey, byte cmdKey, string groupName, byte variantKey, byte paramKey, Variant_Group variant_group)
            {
                Variant_Group tempVariantGroup  = new Variant_Group();
                tempVariantGroup.grpParams = new Hashtable();
                ZWaveClass tempClass = (ZWaveClass)classes.ZwClasses[classKey];
                ZWaveCmd tempCmd = (ZWaveCmd)tempClass.cmd[cmdKey];
                tempVariantGroup.variantGroupName = groupName;
                tempVariantGroup.paramKey = paramKey;
                tempVariantGroup.paramOffs = variant_group.paramOffs;
                tempVariantGroup.sizeMask = variant_group.sizeMask;
                tempVariantGroup.sizeOffs = variant_group.sizeOffs;
                tempCmd.variantGroups[variantKey] = tempVariantGroup;
            }



            /// <summary>
            /// Adds the encap param.
            /// </summary>
            /// <param name="classKey">The class key.</param>
            /// <param name="cmdKey">The CMD key.</param>
            /// <param name="variantKey">The variant key.</param>
            /// <param name="paramNo">The param no.</param>
            /// <param name="paramName">Name of the param.</param>
            /// <param name="paramType">Type of the param.</param>
            /// <param name="paramRecurType">Type of the param recur.</param>
            public void AddEncapParam(byte classKey, byte cmdKey, byte variantKey, byte paramNo, string paramName, ParamType paramType, string paramRecurType)
            {
                CmdParam tempParam = new CmdParam();
                tempParam.paramAttribs = new Hashtable();
                ZWaveClass tempClass = (ZWaveClass)classes.ZwClasses[classKey];
                ZWaveCmd tempCmd = (ZWaveCmd)tempClass.cmd[cmdKey];
                Variant_Group tempVarGrp = (Variant_Group)tempCmd.variantGroups[variantKey];
                tempParam.paramName = paramName;
                tempParam.paramType = paramType;
                tempParam.paramRecurType = paramRecurType;
                tempVarGrp.grpParams[paramNo] = tempParam;
            }


            /// <summary>
            /// 
            /// </summary>
            /// <param name="classKey"></param>
            /// <param name="cmdKey"></param>
            /// <param name="paramNo"></param>
            public void RemoveParam(byte classKey, byte cmdKey, byte paramNo)
            {
                ZWaveClass tempClass = (ZWaveClass)classes.ZwClasses[classKey];
                ZWaveCmd tempCmd = (ZWaveCmd)tempClass.cmd[cmdKey];
                tempCmd.cmdParams.Remove(paramNo);
            }

            #region Non-Encapsulated AddAttrib
            public void AddAttrib(byte classKey, cmdDes cmdKey, byte paramKey, byte index, object details)
            {
                AddAttrib(classKey, cmdKey.Value, paramKey, index, details);
            }

            /// <summary>
            /// 
            /// </summary>
            /// <param name="classKey"></param>
            /// <param name="cmdKey"></param>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -