CODING RIDER / Protocol / Structs / Light

Modified : 2023.7.10


LED 제어와 관련된 정의 및 구조체들을 소개합니다.




Definitions


Light::Drone::Mode::Type

드론 LED 동작 모드

namespace Light
{
    namespace Drone
    {
        namespace Mode
        {
            enum Type
            {
                None,
                
                // Team (Forward, Rear를 동시에 제어)
                TeamRgbNone				= 0x10,
                TeamRgbManual			= 0x11,		// 수동 제어
                TeamRgbHold				= 0x12,		// 지정한 색상을 계속 켬
                TeamRgbFlicker			= 0x13,		// 깜빡임			
                TeamRgbFlickerDouble	= 0x14,		// 깜빡임(두 번 깜빡이고 깜빡인 시간만큼 꺼짐)			
                TeamRgbDimming			= 0x15,		// 밝기 제어하여 천천히 깜빡임
                TeamRgbSunrise			= 0x16,		// 꺼진 상태에서 점점 밝아짐
                TeamRgbSunset			= 0x17,		// 켜진 상태에서 점점 어두워짐
                TeamRgbRainbow			= 0x18,		// 무지개색
                TeamRgbRainbow2			= 0x19,		// 무지개색
                TeamRgbRedBlue			= 0x1A,		// Red-Blue
                
                TeamFlowForward			= 0x1E,		// 앞으로 흐름 
                TeamWarning				= 0x1F,		// 경고
                
                // Body
                BodyNone				= 0x20,		
                BodyManual				= 0x21,		// 수동 제어
                BodyHold				= 0x22,		// 지정한 색상을 계속 켬
                BodyFlicker				= 0x23,		// 깜빡임			
                BodyFlickerDouble		= 0x24,		// 깜빡임(두 번 깜빡이고 깜빡인 시간만큼 꺼짐)			
                BodyDimming				= 0x25,		// 밝기 제어하여 천천히 깜빡임
                BodySunrise				= 0x26,		// 꺼진 상태에서 점점 밝아짐
                BodySunset				= 0x27,		// 켜진 상태에서 점점 어두워짐
                BodyRainbow				= 0x28,		// 무지개색
                BodyRainbow2			= 0x29,		// 무지개색
                BodyRedBlue				= 0x2A,		// Red-Blue
                BodyCard				= 0x2B,		// 카드 색상 표시(이벤트용)
                BodyWarning				= 0x2F,		// 경고
                
                // Link
                LinkNone				= 0x30,		
                LinkManual				= 0x31,		// 수동 제어
                LinkHold				= 0x32,		// 지정한 색상을 계속 켬
                LinkFlicker				= 0x33,		// 깜빡임			
                LinkFlickerDouble		= 0x34,		// 깜빡임(두 번 깜빡이고 깜빡인 시간만큼 꺼짐)			
                LinkDimming				= 0x35,		// 밝기 제어하여 천천히 깜빡임
                LinkSunrise				= 0x36,		// 꺼진 상태에서 점점 밝아짐
                LinkSunset				= 0x37,		// 켜진 상태에서 점점 어두워짐
                
                EndOfType
            };
        }
    }
}



Light::Drone::Flags::Type

드론 LED Flag

namespace Light
{
    namespace Drone
    {
        namespace Flags
        {
            enum Type
            {
                None			= 0x0000,
                
                BodyRed			= 0x0001,
                BodyGreen		= 0x0002,
                BodyBlue		= 0x0004,
                
                TeamRed			= 0x0008,
                TeamBlue		= 0x0010,
                
                Link			= 0x0080,
            };
        }
    }
}



Light::Controller::Mode::Type

조종기 LED 동작 모드

namespace Light
{
    namespace Controller
    {
        namespace Mode
        {
            enum Type
            {
                None,
                
                // Team
                TeamNone						= 0x10,
                TeamManual						= 0x11,		// 수동 제어
                TeamHold						= 0x12,		// 지정한 색상을 계속 켬
                TeamFlicker						= 0x13,		// 깜빡임			
                TeamFlickerDouble				= 0x14,		// 깜빡임(두 번 깜빡이고 깜빡인 시간만큼 꺼짐)			
                TeamDimming						= 0x15,		// 밝기 제어하여 천천히 깜빡임
                TeamSunrise						= 0x16,		// 꺼진 상태에서 점점 밝아짐
                TeamSunset						= 0x17,		// 켜진 상태에서 점점 어두워짐
                TeamRedBlue						= 0x1A,		// Red-Blue
                
                // Array 6
                Array6None						= 0x30,
                Array6Manual					= 0x31,		// 수동 제어
                Array6Hold						= 0x32,		// [전체] 지정한 색상을 계속 켬
                Array6Flicker					= 0x33,		// [전체] 깜빡임			
                Array6FlickerDouble				= 0x34,		// [전체] 깜빡임(두 번 깜빡이고 깜빡인 시간만큼 꺼짐)		
                Array6Dimming					= 0x35,		// [전체] 밝기 제어하여 천천히 깜빡임
                
                // Array 6 Value
                Array6ValueNone					= 0x40,		// [개별] 0 ~ 255 사이의 값 표시
                Array6ValueHold					= 0x42,		// [개별] 0 ~ 255 사이의 값 표시
                Array6ValueFlicker				= 0x43,		// [개별] 0 ~ 255 사이의 값 표시
                Array6ValueFlickerDouble		= 0x44,		// [개별] 0 ~ 255 사이의 값 표시
                Array6ValueDimming				= 0x45,		// [개별] 0 ~ 255 사이의 값 표시
                
                // Array 6 Function
                Array6FunctionNone				= 0x50,
                Array6Pendulum					= 0x51,
                Array6FlowLeft					= 0x52,		// [개별] 왼쪽으로 흐름
                Array6FlowRight					= 0x53,		// [개별] 오른쪽으로 흐름
                /*
                Array6StackLeftIncrease			= 0x54,		// [개별] 
                Array6StackLeftDecrease			= 0x55,		// [개별] 
                Array6StackRightIncrease		= 0x56,		// [개별] 
                Array6StackRightDecrease		= 0x57,		// [개별] 
                // */
                
                EndOfType
            };
        }
    }
}



Light::Controller::Flags::Type

드론 LED Flag

namespace Light
{
    namespace Controller
    {
        namespace Flags
        {
            enum Type
            {
                None		= 0x0000,
                
                TeamRed		= 0x0001,
                TeamBlue	= 0x0002,
                
                E0			= 0x0004,
                E1			= 0x0008,
                E2			= 0x0010,
                E3			= 0x0020,
                E4			= 0x0040,
                E5			= 0x0080,
            };
        }
    }
}



Light::Colors::Type

LED 팔레트 인덱스

드론과 조종기 내부에 정의된 팔레트의 색상 인덱스입니다. 의도보다 색상이 더 밝게 표현되기 때문에 테스트 후 사용하기를 권해드립니다.

namespace Light
{
    namespace Colors
    {
        enum Type
        {
            AliceBlue,              // 0x00
            AntiqueWhite,           // 0x01
            Aqua,                   // 0x02
            Aquamarine,             // 0x03
            Azure,                  // 0x04
            Beige,                  // 0x05
            Bisque,                 // 0x06
            Black,                  // 0x07
            BlanchedAlmond,         // 0x08
            Blue,                   // 0x09
            BlueViolet,             // 0x0A
            Brown,                  // 0x0B
            BurlyWood,              // 0x0C
            CadetBlue,              // 0x0D
            Chartreuse,             // 0x0E
            Chocolate,              // 0x0F
            Coral,                  // 0x10
            CornflowerBlue,         // 0x11
            Cornsilk,               // 0x12
            Crimson,                // 0x13
            Cyan,                   // 0x14
            DarkBlue,               // 0x15
            DarkCyan,               // 0x16
            DarkGoldenRod,          // 0x17
            DarkGray,               // 0x18
            DarkGreen,              // 0x19
            DarkKhaki,              // 0x1A
            DarkMagenta,            // 0x1B
            DarkOliveGreen,         // 0x1C
            DarkOrange,             // 0x1D
            DarkOrchid,             // 0x1E
            DarkRed,                // 0x1F
            DarkSalmon,             // 0x20
            DarkSeaGreen,           // 0x21
            DarkSlateBlue,          // 0x22
            DarkSlateGray,          // 0x23
            DarkTurquoise,          // 0x24
            DarkViolet,             // 0x25
            DeepPink,               // 0x26
            DeepSkyBlue,            // 0x27
            DimGray,                // 0x28
            DodgerBlue,             // 0x29
            FireBrick,              // 0x2A
            FloralWhite,            // 0x2B
            ForestGreen,            // 0x2C
            Fuchsia,                // 0x2D
            Gainsboro,              // 0x2E
            GhostWhite,             // 0x2F
            Gold,                   // 0x30
            GoldenRod,              // 0x31
            Gray,                   // 0x32
            Green,                  // 0x33
            GreenYellow,            // 0x34
            HoneyDew,               // 0x35
            HotPink,                // 0x36
            IndianRed,              // 0x37
            Indigo,                 // 0x38
            Ivory,                  // 0x39
            Khaki,                  // 0x3A
            Lavender,               // 0x3B
            LavenderBlush,          // 0x3C
            LawnGreen,              // 0x3D
            LemonChiffon,           // 0x3E
            LightBlue,              // 0x3F
            LightCoral,             // 0x40
            LightCyan,              // 0x41
            LightGoldenRodYellow,   // 0x42
            LightGray,              // 0x43
            LightGreen,             // 0x44
            LightPink,              // 0x45
            LightSalmon,            // 0x46
            LightSeaGreen,          // 0x47
            LightSkyBlue,           // 0x48
            LightSlateGray,         // 0x49
            LightSteelBlue,         // 0x4A
            LightYellow,            // 0x4B
            Lime,                   // 0x4C
            LimeGreen,              // 0x4D
            Linen,                  // 0x4E
            Magenta,                // 0x4F
            Maroon,                 // 0x50
            MediumAquaMarine,       // 0x51
            MediumBlue,             // 0x52
            MediumOrchid,           // 0x53
            MediumPurple,           // 0x54
            MediumSeaGreen,         // 0x55
            MediumSlateBlue,        // 0x56
            MediumSpringGreen,      // 0x57
            MediumTurquoise,        // 0x58
            MediumVioletRed,        // 0x59
            MidnightBlue,           // 0x5A
            MintCream,              // 0x5B
            MistyRose,              // 0x5C
            Moccasin,               // 0x5D
            NavajoWhite,            // 0x5E
            Navy,                   // 0x5F
            OldLace,                // 0x60
            Olive,                  // 0x61
            OliveDrab,              // 0x62
            Orange,                 // 0x63
            OrangeRed,              // 0x64
            Orchid,                 // 0x65
            PaleGoldenRod,          // 0x66
            PaleGreen,              // 0x67
            PaleTurquoise,          // 0x68
            PaleVioletRed,          // 0x69
            PapayaWhip,             // 0x6A
            PeachPuff,              // 0x6B
            Peru,                   // 0x6C
            Pink,                   // 0x6D
            Plum,                   // 0x6E
            PowderBlue,             // 0x6F
            Purple,                 // 0x70
            RebeccaPurple,          // 0x71
            Red,                    // 0x72
            RosyBrown,              // 0x73
            RoyalBlue,              // 0x74
            SaddleBrown,            // 0x75
            Salmon,                 // 0x76
            SandyBrown,             // 0x77
            SeaGreen,               // 0x78
            SeaShell,               // 0x79
            Sienna,                 // 0x7A
            Silver,                 // 0x7B
            SkyBlue,                // 0x7C
            SlateBlue,              // 0x7D
            SlateGray,              // 0x7E
            Snow,                   // 0x7F
            SpringGreen,            // 0x80
            SteelBlue,              // 0x81
            Tan,                    // 0x82
            Teal,                   // 0x83
            Thistle,                // 0x84
            Tomato,                 // 0x85
            Turquoise,              // 0x86
            Violet,                 // 0x87
            Wheat,                  // 0x88
            White,                  // 0x89
            WhiteSmoke,             // 0x8A
            Yellow,                 // 0x8B
            YellowGreen,            // 0x8C
            
            EndOfType
        };
    }
}



Structs



Light::Color

RGB LED 색상 설정

0일 때 꺼지고 255일 때 가장 밝습니다.

namespace Light
{
    struct Color
    {
        u8 r;           // Red
        u8 g;           // Green
        u8 b;           // Blue
    };
}
변수 이름 형식 크기 범위 설명
r uint8_t 1 Byte 0 ~ 255 Red
g uint8_t 1 Byte 0 ~ 255 Green
b uint8_t 1 Byte 0 ~ 255 Blue



Protocol::Light::Manual

LED 수동 제어

flag로 지정한 LED의 밝기를 변경합니다. 지정하지 않은 LED의 밝기는 그대로 유지됩니다. 밝기 값은 0일 때 꺼지며 값이 커질수록 밝아집니다.

namespace Protocol
{
    namespace Light
    {
        struct Manual
        {
            u16 flags;         // Flags 열거형을 조합한 값
            u8  brightness;    // 밝기
        };
    }
}
변수 이름 형식 크기 범위 설명
flags Light::Drone::Flags 2 Byte 0b0000000000000000 ~ 0b1111111111111111 드론 LED 선택 플래그 조합
  Light::Controller::Flags   0b0000000000000000 ~ 0b1111111111111111 조종기 LED 선택 플래그 조합
brightness uint8_t 1 Byte 0 ~ 255 밝기



Protocol::Light::ModeColor

LED 모드 변경(RGB)

RGB 색상을 직접 지정하여 LED 동작 모드를 변경합니다.

namespace Protocol
{
    namespace Light
    {
        struct ModeColor
        {
            Protocol::Light::Mode   mode;
            Light::Color            color;
        };
    }
}
변수 이름 형식 크기 범위 설명
mode Protocol::Light::Mode 3 Byte - LED 동작 모드
color Light::Color 3 Byte - LED RGB 색상



Protocol::Light::EventColor

LED 이벤트(RGB)

namespace Protocol
{
    namespace Light
    {
        struct EventColor
        {
            Protocol::Light::Event  event;
            Light::Color            color;
        };
    }
}
변수 이름 형식 크기 범위 설명
event Protocol::Light::Event 4 Byte - LED 이벤트
color Light::Color 3 Byte - LED RGB 색상




CODING RIDER

  1. Intro
  2. Typedef
  3. DataType
  4. Definitions
  5. Structs
  6. Structs - Light


Index