zcmdclass.cs

来自「zwave 无线通讯协议 PC controller 控制器源码」· CS 代码 · 共 1,827 行 · 第 1/5 页

CS
1,827
字号

        /// <summary>
        /// ZW_MANUFACTURER_SPECIFIC_GET_FRAME
        /// </summary>
        /// <returns></returns>
        public static byte[] ZW_ManufacturerSpecificGetFrame()
        {
            return FillCmd((byte)cmdClass.COMMAND_CLASS_MANUFACTURER_SPECIFIC, (byte)cmdManufacturerSpecific.MANUFACTURER_SPECIFIC_GET);
        }

        /// <summary>
        /// ZW_MANUFACTURER_SPECIFIC_REPORT_FRAME
        /// </summary>
        /// <param name="mid1"></param>
        /// <param name="mid2"></param>
        /// <param name="ptyp1"></param>
        /// <param name="ptyp2"></param>
        /// <param name="pid1"></param>
        /// <param name="pid2"></param>
        /// <returns></returns>
        public static byte[] ZW_ManufacturerSpecificReportFrame(byte mid1, byte mid2, byte ptyp1, byte ptyp2, byte pid1, byte pid2)
        {
            return FillCmd((byte)cmdClass.COMMAND_CLASS_MANUFACTURER_SPECIFIC, (byte)cmdManufacturerSpecific.MANUFACTURER_SPECIFIC_REPORT, mid1, mid2, ptyp1, ptyp2, pid1, pid2);
        }

        /// <summary>
        /// POWERLEVEL_SET
        /// </summary>
        /// <param name="level"></param>
        /// <param name="timeout"></param>
        /// <returns></returns>
        public static byte[] ZW_PowerLevelSetFrame(byte level, byte timeout)
        {
            return FillCmd((byte)cmdClass.COMMAND_CLASS_POWERLEVEL, (byte)cmdPowerlevel.POWERLEVEL_SET, level, timeout);
        }

        /// <summary>
        /// POWERLEVEL_GET
        /// </summary>
        /// <returns></returns>
        public static byte[] ZW_PowerLevelGetFrame()
        {
            return FillCmd((byte)cmdClass.COMMAND_CLASS_POWERLEVEL, (byte)cmdPowerlevel.POWERLEVEL_GET);
        }

        /// <summary>
        /// POWERLEVEL_REPORT
        /// </summary>
        /// <param name="level"></param>
        /// <param name="timeout"></param>
        /// <returns></returns>
        public static byte[] ZW_PowerLevelReportFrame(byte level, byte timeout)
        {
            return FillCmd((byte)cmdClass.COMMAND_CLASS_POWERLEVEL, (byte)cmdPowerlevel.POWERLEVEL_REPORT, level, timeout);
        }

        /// <summary>
        /// MULTI_INSTANCE_GET
        /// </summary>
        /// <param name="classToGet"></param>
        /// <returns></returns>
        public static byte[] ZW_MultiInstanceGetFrame(byte classToGet)
        {
            return FillCmd((byte)cmdClass.COMMAND_CLASS_MULTI_INSTANCE, (byte)cmdMultiInstance.MULTI_INSTANCE_GET, classToGet);
        }
        /// <summary>
        /// MULTI_INSTANCE_REPORT
        /// </summary>
        /// <param name="classReported"></param>
        /// <param name="count">is Number of instances that support this commandclass</param>
        /// <returns></returns>
        public static byte[] ZW_MultiInstanceReportFrame(byte classReported, byte count)
        {
            return FillCmd((byte)cmdClass.COMMAND_CLASS_MULTI_INSTANCE, (byte)cmdMultiInstance.MULTI_INSTANCE_REPORT, classReported, count);
        }

        #region Simple AV Control Command Class
        /// <summary>
        /// ZW_SIMPLE_AV_CONTROL_SET
        /// </summary>
        /// <param name="sequenceNumber"></param>
        /// <param name="keyAttributes"></param>
        /// <param name="itemID"></param>
        /// <param name="commands"></param>
        /// <returns></returns>
        public static byte[] ZW_SimpleAVControlSetFrame(byte sequenceNumber, byte keyAttributes, byte itemIDMSB, byte itemIDLSB, byte[] commands)
        {
            return FillCmd(commands, (byte)cmdClass.COMMAND_CLASS_SIMPLE_AV_CONTROL, (byte)cmdSimpleAvControl.SIMPLE_AV_CONTROL_SET, sequenceNumber, keyAttributes, itemIDMSB, itemIDLSB);
        }

        public static byte[] ZW_SimpleAVControlGetFrame()
        {
            return FillCmd((byte)cmdClass.COMMAND_CLASS_SIMPLE_AV_CONTROL, (byte)cmdSimpleAvControl.SIMPLE_AV_CONTROL_GET);
        }

        public static byte[] ZW_SimpleAVControlReportFrame(byte numberOfReports)
        {
            return FillCmd((byte)cmdClass.COMMAND_CLASS_SIMPLE_AV_CONTROL, (byte)cmdSimpleAvControl.SIMPLE_AV_CONTROL_REPORT, numberOfReports);
        }

        public static byte[] ZW_SimpleAVControlSupportedGetFrame(byte reportNo)
        {
            return FillCmd((byte)cmdClass.COMMAND_CLASS_SIMPLE_AV_CONTROL, (byte)cmdSimpleAvControl.SIMPLE_AV_CONTROL_SUPPORTED_GET, reportNo);
        }

        public static byte[] ZW_SimpleAVControlSupportedReportFrame(byte reportNo, byte[] bitmask)
        {
            return FillCmd(bitmask, (byte)cmdClass.COMMAND_CLASS_SIMPLE_AV_CONTROL, (byte)cmdSimpleAvControl.SIMPLE_AV_CONTROL_SUPPORTED_REPORT, reportNo);
        }
        #endregion

        #region AV Content Directory Meta Data Command Class
        public static byte[] ZW_AVContentBrowseMediaMDGet(byte objectIDMSB, byte objectIDLSB, byte startingIndexMSB, byte startingIndexLSB, byte requedstedCount)
        {
            return FillCmd((byte)cmdClass.COMMAND_CLASS_AV_CONTENT_DIRECTORY_MD, (byte)cmdAvContentDirectoryMd.AV_CONTENT_BROWSE_MEDIA_MD_GET, objectIDMSB, objectIDLSB, startingIndexMSB, startingIndexLSB, requedstedCount);
        }

        public static byte[] ZW_AVContentBrowseMediaMDReportFirst(byte objectIDMSB, byte objectIDLSB, byte reportsToFollow, byte foundObjectsMSB, byte foundObjectsLSB, byte parentIDMSB, byte parentIDLSB, byte childCountMSB, byte childCountLSB, byte objectType, byte numericalPresOfChar, byte[] chars)
        {
            return FillCmd(chars, (byte)cmdClass.COMMAND_CLASS_AV_CONTENT_DIRECTORY_MD, (byte)cmdAvContentDirectoryMd.AV_CONTENT_BROWSE_MEDIA_MD_REPORT, objectIDMSB, objectIDLSB, reportsToFollow, foundObjectsMSB, foundObjectsLSB, parentIDMSB, parentIDLSB, childCountMSB, childCountLSB, objectType, numericalPresOfChar);
        }

        public static byte[] ZW_AVContentBrowseMediaMDReportCont(byte objectIDMSB, byte objectIDLSB, byte reportsToFollow, byte[] chars)
        {
            return FillCmd(chars, (byte)cmdClass.COMMAND_CLASS_AV_CONTENT_DIRECTORY_MD, (byte)cmdAvContentDirectoryMd.AV_CONTENT_BROWSE_MEDIA_MD_REPORT, objectIDMSB, objectIDLSB, reportsToFollow);
        }

        public static byte[] ZW_AVContentMatchItemToRendererMDGet(byte objectIDMSB, byte objectIDLSB)
        {
            return FillCmd((byte)cmdClass.COMMAND_CLASS_AV_CONTENT_DIRECTORY_MD, (byte)cmdAvContentDirectoryMd.AV_MATCH_ITEM_TO_RENDERER_MD_GET, objectIDMSB, objectIDLSB);
        }

        public static byte[] ZW_AVContentMatchItemToRendererMDReport2Byte(byte objectIDMSB, byte objectIDLSB, byte rendererID1, byte rendererID2)
        {
            return FillCmd((byte)cmdClass.COMMAND_CLASS_AV_CONTENT_DIRECTORY_MD, (byte)cmdAvContentDirectoryMd.AV_MATCH_ITEM_TO_RENDERER_MD_REPORT, objectIDMSB, objectIDLSB, rendererID1, rendererID2);
        }
        #endregion

        #region AV Content Search Meta Data Command Class
        public static byte[] ZW_AVContentSearchMDGet(byte mediaType, byte searchType, byte objectIDMSB, byte objectIDLSB, byte sortOrder, byte numericalPresOfAChar, byte[] searchString)
        {
            return FillCmd(searchString, (byte)cmdClass.COMMAND_CLASS_AV_CONTENT_SEARCH_MD, (byte)cmdAvContentSearchMd.AV_CONTENT_SEARCH_MD_GET, mediaType, searchType, objectIDMSB, objectIDLSB, sortOrder, numericalPresOfAChar);
        }

        public static byte[] ZW_AVContentSearchMDReport(byte errorCode, byte foundObjectsMSB, byte foundObjectsLSB, byte objectIDMSB, byte objectIDLSB)
        {
            return FillCmd((byte)cmdClass.COMMAND_CLASS_AV_CONTENT_SEARCH_MD, (byte)cmdAvContentSearchMd.AV_CONTENT_SEARCH_MD_REPORT, errorCode, foundObjectsMSB, foundObjectsLSB, objectIDMSB, objectIDLSB);
        }
        #endregion

        #region AV Renderer Status Command Class
        public static byte[] ZW_AVRendererStatusGet(byte rendererID)
        {
            return FillCmd((byte)cmdClass.COMMAND_CLASS_AV_RENDERER_STATUS, (byte)cmdAvRendererStatus.AV_RENDERER_STATUS_GET, rendererID);
        }

        public static byte[] ZW_AVRendererStatusReport(byte rendererID, byte status, byte activeObjectIDMSB, byte activeObjectIDLSB, byte objectType)
        {
            return FillCmd((byte)cmdClass.COMMAND_CLASS_AV_RENDERER_STATUS, (byte)cmdAvRendererStatus.AV_RENDERER_STATUS_REPORT, rendererID, status, activeObjectIDMSB, activeObjectIDLSB, objectType);
        }
        #endregion
    }



    /// <summary>
    ///GenericController is specified by the following enums
    /// </summary>
    public enum GenericController
    {
        /// <summary>
        ///SPECIFIC_TYPE_NOT_USED = 0x00
        /// </summary>
        SPECIFIC_TYPE_NOT_USED = 0x00,

        /// <summary>
        ///  SPECIFIC_TYPE_PORTABLE_REMOTE_CONTROLLER = 0x01,
        /// </summary>
        SPECIFIC_TYPE_PORTABLE_REMOTE_CONTROLLER = 0x01,

        /// <summary>
        ///  SPECIFIC_TYPE_PORTABLE_SCENE_CONTROLLER = 0x02,
        /// </summary>
        SPECIFIC_TYPE_PORTABLE_SCENE_CONTROLLER = 0x02,
    }
    /// <summary>
    ///StaticController is specified by the following enums
    /// </summary>
    public enum StaticController
    {
        /// <summary>
        ///SPECIFIC_TYPE_NOT_USED = 0x00
        /// </summary>
        SPECIFIC_TYPE_NOT_USED = 0x00,

        /// <summary>
        ///  SPECIFIC_TYPE_PC_CONTROLLER = 0x01,
        /// </summary>
        SPECIFIC_TYPE_PC_CONTROLLER = 0x01,

        /// <summary>
        ///  SPECIFIC_TYPE_SCENE_CONTROLLER = 0x02,
        /// </summary>
        SPECIFIC_TYPE_SCENE_CONTROLLER = 0x02,
    }
    /// <summary>
    ///Display is specified by the following enums
    /// </summary>
    public enum Display
    {
        /// <summary>
        ///SPECIFIC_TYPE_NOT_USED = 0x00
        /// </summary>
        SPECIFIC_TYPE_NOT_USED = 0x00,

        /// <summary>
        ///  SPECIFIC_TYPE_SIMPLE_DISPLAY = 0x01,
        /// </summary>
        SPECIFIC_TYPE_SIMPLE_DISPLAY = 0x01,
    }
    /// <summary>
    ///GarageDoor is specified by the following enums
    /// </summary>
    public enum GarageDoor
    {
        /// <summary>
        ///SPECIFIC_TYPE_NOT_USED = 0x00
        /// </summary>
        SPECIFIC_TYPE_NOT_USED = 0x00,

        /// <summary>
        ///  SPECIFIC_TYPE_SIMPLE_GARAGE_DOOR = 0x01,
        /// </summary>
        SPECIFIC_TYPE_SIMPLE_GARAGE_DOOR = 0x01,
    }
    /// <summary>
    ///Thermostat is specified by the following enums
    /// </summary>
    public enum Thermostat
    {
        /// <summary>
        ///SPECIFIC_TYPE_NOT_USED = 0x00
        /// </summary>
        SPECIFIC_TYPE_NOT_USED = 0x00,

        /// <summary>
        ///  SPECIFIC_TYPE_THERMOSTAT_HEATING = 0x01,
        /// </summary>
        SPECIFIC_TYPE_THERMOSTAT_HEATING = 0x01,

        /// <summary>
        ///  SPECIFIC_TYPE_THERMOSTAT_GENERAL = 0x02,
        /// </summary>
        SPECIFIC_TYPE_THERMOSTAT_GENERAL = 0x02,
    }
    /// <summary>
    ///WindowCovering is specified by the following enums
    /// </summary>
    public enum WindowCovering
    {
        /// <summary>
        ///SPECIFIC_TYPE_NOT_USED = 0x00
        /// </summary>
        SPECIFIC_TYPE_NOT_USED = 0x00,

        /// <summary>
        ///  SPECIFIC_TYPE_SIMPLE_WINDOW_COVERING = 0x01,
        /// </summary>
        SPECIFIC_TYPE_SIMPLE_WINDOW_COVERING = 0x01,
    }
    /// <summary>
    ///RepeaterSlave is specified by the following enums
    /// </summary>
    public enum RepeaterSlave
    {
        /// <summary>
        ///SPECIFIC_TYPE_NOT_USED = 0x00
        /// </summary>
        SPECIFIC_TYPE_NOT_USED = 0x00,

        /// <summary>
        ///  SPECIFIC_TYPE_REPEATER_SLAVE = 0x01,
        /// </summary>
        SPECIFIC_TYPE_REPEATER_SLAVE = 0x01,
    }
    /// <summary>
    ///SwitchBinary is specified by the following enums
    /// </summary>
    public enum SwitchBinary
    {
        /// <summary>
        ///SPECIFIC_TYPE_NOT_USED = 0x00
        /// </summary>
        SPECIFIC_TYPE_NOT_USED = 0x00,

        /// <summary>
        ///  SPECIFIC_TYPE_POWER_SWITCH_BINARY = 0x01,
        /// </summary>
        SPECIFIC_TYPE_POWER_SWITCH_BINARY = 0x01,

        /// <summary>
        ///  SPECIFIC_TYPE_POWER_SWITCH_BINARY_V2 = 0x03,
        /// </summary>
        SPECIFIC_TYPE_POWER_SWITCH_BINARY_V2 = 0x03,

        /// <summary>
        ///  SPECIFIC_TYPE_SCENE_SWITCH_BINARY = 0x02,
        /// </summary>
        SPECIFIC_TYPE_SCENE_SWITCH_BINARY = 0x02,
    }
    /// <summary>
    ///SwitchMultilevel is specified by the following enums
    /// </summary>
    public enum SwitchMultilevel
    {
        /// <summary>
        ///SPECIFIC_TYPE_NOT_USED = 0x00
        /// </summary>
        SPECIFIC_TYPE_NOT_USED = 0x00,

        /// <summary>
        ///  SPECIFIC_TYPE_POWER_SWITCH_MULTILEVEL = 0x01,
        /// </summary>
        SPECIFIC_TYPE_POWER_SWITCH_MULTILEVEL = 0x01,

        /// <summary>
        ///  SPECIFIC_TYPE_MOTOR_MULTIPOSITION = 0x03,
        /// </summary>
        SPECIFIC_TYPE_MOTOR_MULTIPOSITION = 0x03,

        /// <summary>
        ///  SPECIFIC_TYPE_SCENE_SWITCH_MULTILEVEL = 0x02,
        /// </summary>
        SPECIFIC_TYPE_SCENE_SWITCH_MULTILEVEL = 0x02,
    }
    /// <summary>
    ///SwitchRemote is specified by the following enums
    /// </summary>
    public enum SwitchRemote
    {
        /// <summary>
        ///SPECIFIC_TYPE_NOT_USED = 0x00
        /// </summary>
        SPECIFIC_TYPE_NOT_USED = 0x00,

        /// <summary>
        ///  SPECIFIC_TYPE_SWITCH_REMOTE_TOGGLE_MULTILEVEL = 0x04,
        /// </summary>
        SPECIFIC_TYPE_SWITCH_REMOTE_TOGGLE_MULTILEVEL = 0x04,

        /// <summary>
        ///  SPECIFIC_TYPE_SWITCH_REMOTE_BINARY = 0x01,
        /// </summary>
        SPECIFIC_TYPE_SWITCH_REMOTE_BINARY = 0x01,

        /// <summary>
        ///  SPECIFIC_TYPE_SWITCH_REMOTE_TOGGLE_BINARY = 0x03,
        /// </summary>
        SPECIFIC_TYPE_SWITCH_REMOTE_TOGGLE_BINARY = 0x03,

        /// <summary>
        ///  SPECIFIC_TYPE_SWITCH_REMOTE_MULTILEVEL = 0x02,
        /// </summary>
        SPECIFIC_TYPE_SWITCH_REMOTE_MULTILEVEL = 0x02,
    }
    /// <summary>

⌨️ 快捷键说明

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