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