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

📄 zw_cmd_classes.cs

📁 zwave 无线通讯协议 PC controller 控制器源码
💻 CS
📖 第 1 页 / 共 5 页
字号:
            /// <param name="paramKey"></param>
            /// <param name="index"></param>
            /// <param name="details"></param>
            public void AddAttrib(byte classKey, byte cmdKey, byte paramKey, byte index, object details)
            {
                ZWaveClass tempClass = (ZWaveClass)classes.ZwClasses[classKey];
                ZWaveCmd tempCmd = (ZWaveCmd)tempClass.cmd[cmdKey];
                CmdParam tempParam = (CmdParam)tempCmd.cmdParams[paramKey];
                tempParam.paramAttribs[index] = details;

            }

            public void AddAttrib(byte classKey, byte cmdKey, byte paramKey, byte index, object details, bool isBitFlag)
            {
                if (isBitFlag)
                {
                    ZWaveClass tempClass = (ZWaveClass)classes.ZwClasses[classKey];
                    ZWaveCmd tempCmd = (ZWaveCmd)tempClass.cmd[cmdKey];
                    CmdParam tempParam = (CmdParam)tempCmd.cmdParams[paramKey];
                    if (tempParam.paramAttribs[index] == null)
                    {
                        tempParam.paramAttribs[index] = new ArrayList();
                        ((ArrayList)tempParam.paramAttribs[index]).Add(details);

                    }
                    else
                    {
                        ((ArrayList)tempParam.paramAttribs[index]).Add(details);
                    }
                }
                else
                {
                    AddAttrib(classKey, cmdKey, paramKey, index, details);
                }
            }
            #endregion

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

            /// <summary>
            /// Adds the encap attrib.
            /// </summary>
            /// <param name="classKey">The class key.</param>
            /// <param name="cmdKey">The CMD key.</param>
            /// <param name="paramKey">The param key.</param>
            /// <param name="index">The index.</param>
            /// <param name="details">The details.</param>
            /// <param name="variantKey">The variant key.</param>
            public void AddEncapAttrib(byte classKey, byte cmdKey, byte paramKey, byte index, object details, byte variantKey)
            {
                ZWaveClass tempClass = (ZWaveClass)classes.ZwClasses[classKey];
                ZWaveCmd tempCmd = (ZWaveCmd)tempClass.cmd[cmdKey];
                Variant_Group tempVarGrp = (Variant_Group)tempCmd.variantGroups[variantKey];
                CmdParam tempParam = (CmdParam)tempVarGrp.grpParams[paramKey];
                tempParam.paramAttribs[index] = details;

            }

            public void AddEncapAttrib(byte classKey, byte cmdKey, byte paramKey, byte index, object details, bool isBitFlag, byte variantKey)
            {
                if (isBitFlag)
                {
                    ZWaveClass tempClass = (ZWaveClass)classes.ZwClasses[classKey];
                    ZWaveCmd tempCmd = (ZWaveCmd)tempClass.cmd[cmdKey];
                    Variant_Group tempVarGrp = (Variant_Group)tempCmd.variantGroups[variantKey];
                    CmdParam tempParam = (CmdParam)tempVarGrp.grpParams[paramKey]; 
                    if (tempParam.paramAttribs[index] == null)
                    {
                        tempParam.paramAttribs[index] = new ArrayList();
                        ((ArrayList)tempParam.paramAttribs[index]).Add(details);

                    }
                    else
                    {
                        ((ArrayList)tempParam.paramAttribs[index]).Add(details);
                    }
                }
                else
                {
                    AddEncapAttrib(classKey, cmdKey, paramKey, index, details, variantKey);
                }
            }
            #endregion

            /// <summary>
            /// 
            /// </summary>
            /// <param name="cmdClass"></param>
            /// <returns></returns>
            public string GetClass(byte cmdClass)
            {
                if (classes.ZwClasses.Contains(cmdClass)) // if class command exist
                {
                    ZWaveClass tempClass = (ZWaveClass)classes.ZwClasses[cmdClass];
                    return tempClass.cmdClassHelp;
                }
                else
                {
                    return "Unknown Class";
                }
            }
            /// <summary>
            /// 
            /// </summary>
            /// <param name="cmdClass"></param>
            /// <returns></returns>
            public ZWaveClass _GetClass(byte cmdClass)
            {
                ZWaveClass tempClass;

                if (classes.ZwClasses.Contains(cmdClass)) // if class command exist
                    tempClass = (ZWaveClass)classes.ZwClasses[cmdClass];
                else
                {
                    tempClass = new ZWaveClass();
                    tempClass.cmd = null;
                    tempClass.cmdClassHelp = null;
                    tempClass.cmdClassName = null;
                }
                return tempClass;
            }
            /// <summary>
            /// 
            /// </summary>
            /// <param name="cmdClass"></param>
            /// <param name="cmd"></param>
            /// <returns></returns>
            public ZWaveCmd _GetCmd(byte cmdClass, byte cmd)
            {
                ZWaveClass tempClass = (ZWaveClass)classes.ZwClasses[cmdClass];
                ZWaveCmd temp = new ZWaveCmd();
                if (tempClass.cmd.Contains(cmd)) // if command exist
                {
                    return (ZWaveCmd)tempClass.cmd[cmd];
                }
                else
                {
                    temp.CmdHelp = "";
                    temp.cmdName = "";
                    temp.cmdParams = null;
                    return temp;
                }

            }
            /// <summary>
            /// 
            /// </summary>
            /// <param name="cmdClass"></param>
            /// <param name="cmd"></param>
            /// <returns></returns>

            public string GetCmd(byte cmdClass, byte cmd)
            {

                if (classes.ZwClasses.ContainsKey(cmdClass))
                {
                    ZWaveClass tempClass = (ZWaveClass)classes.ZwClasses[cmdClass];
                    if (tempClass.cmd.Contains(cmd)) // if command exist
                    {
                        ZWaveCmd tempCmd = (ZWaveCmd)tempClass.cmd[cmd];
                        return tempCmd.CmdHelp;
                    }
                    else
                    {
                        if (cmdClass < (byte)ZWaveProtocolCmdClass.ZWAVE_CMD_CLASS_APPL_MIN)
                        {
                            if (cmdClassesType != ZWaveCmdClsType.ZW_CLASS_PROTOCOL)
                            {
                                return tempClass.cmdClassHelp;
                            }
                        }
                        return String.Format(CultureInfo.InvariantCulture, "Unknown Cmd 0x{0:X} in {1}", cmd, tempClass.cmdClassHelp);
                    }

                }
                if (cmdClass < (byte)ZWaveProtocolCmdClass.ZWAVE_CMD_CLASS_APPL_MIN)
                {
                    if (cmdClassesType == ZWaveCmdClsType.ZW_CLASS_PROTOCOL)
                    {
                        return String.Format(CultureInfo.InvariantCulture, "Unknown CmdClass 0x{0:X}, Cmd 0x{1:X}", cmdClass, cmd);
                    }
                    else
                    {
                        return "Z-Wave protocol cmd";
                    }

                }
                return String.Format(CultureInfo.InvariantCulture, "Unknown CmdClass 0x{0:X}, Cmd 0x{1:X}", cmdClass, cmd);
            }
            /// <summary>
            /// 
            /// </summary>
            /// <param name="classKey"></param>
            /// <param name="cmdKey"></param>
            /// <param name="paramKey"></param>
            /// <returns></returns>
            public string GetParam(byte classKey, byte cmdKey, byte paramKey)
            {
                ZWaveCmd tempCmd = _GetCmd(classKey, cmdKey);
                if (tempCmd.cmdParams != null)
                {
                    if (tempCmd.cmdParams.Contains(paramKey))
                    {
                        return ((CmdParam)tempCmd.cmdParams[paramKey]).paramName;
                    }
                    else
                    {
                        return "Unknown Parameter";
                    }
                }
                else
                {
                    return String.Format(CultureInfo.InvariantCulture, " Unknown Param:{2} to Cmd:{1} in CmdClass:{0} ", paramKey, cmdKey, classKey);
                }
            }

            /// <summary>
            /// 
            /// </summary>
            /// <param name="classKey"></param>
            /// <param name="cmdKey"></param>
            /// <param name="paramKey"></param>
            /// <returns></returns>
            public CmdParam _GetParam(byte classKey, byte cmdKey, byte paramKey)
            {
                ZWaveCmd tempCmd = _GetCmd(classKey, cmdKey);
                if (tempCmd.cmdParams.Contains(paramKey))
                {
                    return (CmdParam)tempCmd.cmdParams[paramKey];
                }
                else
                {
                    return new CmdParam();
                }

            }
            /// <summary>
            /// Gets the params.
            /// </summary>
            /// <param name="cmdClass">The CMD class.</param>
            /// <param name="cmd">The CMD.</param>
            /// <param name="payload">The payload.</param>
            /// <returns></returns>
            public ArrayList[] getParams(byte cmdClass, byte cmd, byte[] payload)
            {

                if (!classes.ZwClasses.ContainsKey(cmdClass))
                {
                    ArrayList paramDetails = new ArrayList();
                    ArrayList[] cmdParams = new ArrayList[1];
                    paramDetails.Add("Class:" + cmdClass.ToString() + "|" + cmd.ToString() + "|" + payload.ToString());
                    cmdParams[0] = paramDetails;
                    return cmdParams;
                }

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

                if (!tempClass.cmd.ContainsKey(cmd))
                {
                    ArrayList paramDetails = new ArrayList();
                    ArrayList[] cmdParams = new ArrayList[1];
                    paramDetails.Add("Command Unknown:" + cmdClass.ToString() + "|" + cmd.ToString());
                    cmdParams[0] = paramDetails;
                    return cmdParams;
                }

                ZWaveCmd tempCmd = (ZWaveCmd)tempClass.cmd[cmd];

⌨️ 快捷键说明

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