📄 zw_cmd_classes.cs
字号:
/// <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 + -