using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace VIZ.Framework.Core
{
    /// <summary>
    /// GPIO 引脚
    /// </summary>
    public static class GPIOPin
    {
        /// <summary>
        /// PIN 0
        /// </summary>
        public const uint PIN_0 = 0b0000000000000001;

        /// <summary>
        /// PIN 1
        /// </summary>
        public const uint PIN_1 = 0b0000000000000010;

        /// <summary>
        /// PIN 2
        /// </summary>
        public const uint PIN_2 = 0b0000000000000100;

        /// <summary>
        /// PIN 3
        /// </summary>
        public const uint PIN_3 = 0b0000000000001000;

        /// <summary>
        /// PIN 4
        /// </summary>
        public const uint PIN_4 = 0b0000000000010000;

        /// <summary>
        /// PIN 5
        /// </summary>
        public const uint PIN_5 = 0b0000000000100000;

        /// <summary>
        /// PIN 6
        /// </summary>
        public const uint PIN_6 = 0b0000000001000000;

        /// <summary>
        /// PIN 7
        /// </summary>
        public const uint PIN_7 = 0b0000000010000000;

        /// <summary>
        /// PIN 8
        /// </summary>
        public const uint PIN_8 = 0b0000000100000000;

        /// <summary>
        /// PIN 9
        /// </summary>
        public const uint PIN_9 = 0b0000001000000000;

        /// <summary>
        /// PIN 10
        /// </summary>
        public const uint PIN_10 = 0b0000010000000000;

        /// <summary>
        /// PIN 11
        /// </summary>
        public const uint PIN_11 = 0b0000100000000000;

        /// <summary>
        /// PIN 12
        /// </summary>
        public const uint PIN_12 = 0b0001000000000000;

        /// <summary>
        /// PIN 13
        /// </summary>
        public const uint PIN_13 = 0b0010000000000000;

        /// <summary>
        /// PIN 14
        /// </summary>
        public const uint PIN_14 = 0b0100000000000000;

        /// <summary>
        /// PIN 15
        /// </summary>
        public const uint PIN_15 = 0b1000000000000000;

        /// <summary>
        /// PIN 0 ~ 7
        /// </summary>
        public const uint PIN_0_TO_7 = 0b0000000011111111;

        /// <summary>
        /// PIN 8 ~ 15
        /// </summary>
        public const uint PIN_8_TO_15 = 0b1111111100000000;

        /// <summary>
        /// PIN 0 ~ 15
        /// </summary>`
        public const uint PIN_0_TO_15 = 0b1111111111111111;

        /// <summary>
        /// PIN 的默认值
        /// </summary>
        public const uint PIN_DEFAULT_VALUE = 0b1111111111111111;
    }
}
