E-DRONE / Protocol / DataType

Modified : 2019.2.11


데이터 타입을 소개합니다.



Protocol::DataType::Type

데이터 타입

namespace Protocol
{
    namespace DataType
    {
        enum Type
        {
            None                        = 0x00,     // 없음
            Ping                        = 0x01,     // 통신 확인
            Ack                         = 0x02,     // 데이터 수신에 대한 응답
            Error                       = 0x03,     // 오류(reserve, 비트 플래그는 추후에 지정)
            Request                     = 0x04,     // 지정한 타입의 데이터 요청
            Message                     = 0x05,     // 문자열 데이터
            Address                     = 0x06,     // 장치 주소(MAC이 있는 경우 MAC) 혹은 고유번호(MAC이 없는 경우 UUID)
            Information                 = 0x07,     // 펌웨어 및 장치 정보
            Update                      = 0x08,     // 펌웨어 업데이트
            UpdateLocation              = 0x09,     // 펌웨어 업데이트 위치 정정
            Encrypt                     = 0x0A,     // 펌웨어 암호화
            SystemCount                 = 0x0B,     // 시스템 카운트
            SystemInformation           = 0x0C,     // 시스템 정보
            Registration                = 0x0D,     // 제품 등록(암호화 데이터 및 등록 데이터를 데이터 길이로 구분)
            Administrator               = 0x0E,     // 관리자 권한 획득
            Monitor                     = 0x0F,     // 디버깅용 값 배열 전송. 첫번째 바이트에 타입, 두 번째 바이트에 페이지 지정(수신 받는 데이터의 저장 경로 구분)
            Control                     = 0x10,     // 조종

            Command                     = 0x11,     // 명령
            Pairing                     = 0x12,     // 페어링
            Rssi                        = 0x13,     // RSSI
            TimeSync                    = 0x14,     // 시간 동기화

            // Light
            LightManual                 = 0x20,     // LED 수동 제어
            LightMode                   = 0x21,     // LED 모드 지정
            LightEvent                  = 0x22,     // LED 이벤트
            LightDefault                = 0x23,     // LED 기본 색상

            // 센서 RAW 데이터
            RawMotion                   = 0x30,     // Motion 센서 데이터 RAW 값
            RawFlow,                                // Flow 센서 데이터 RAW 값

            // 상태,  센서
            State                       = 0x40,     // 드론의 상태(비행 모드, 방위기준, 배터리량)
            Attitude,                               // 드론의 자세(Angle)(Attitude)
            Position,                               // 위치
            Altitude,                               // 높이, 고도
            Motion,                                 // Motion 센서 데이터 처리한 값(IMU)
            Range,                                  // 거리센서 데이터

            // 설정
            Count                       = 0x50,     // 카운트
            Bias,                                   // 엑셀, 자이로 바이어스 값
            Trim,                                   // 트림
            Weight,                                 // 무게 설정
            LostConnection,                         // 연결이 끊긴 후 반응 시간 설정

            // Devices
            Motor                       = 0x60,     // 모터 제어 및 현재 제어값 확인
            MotorSingle,                            // 한 개의 모터 제어
            Buzzer,                                 // 부저 제어
            Vibrator,                               // 진동 제어

            // Input
            Button                      = 0x70,     // 버튼 입력
            Joystick,                               // 조이스틱 입력
                
            // Display
            DisplayClear                = 0x80,     // 화면 지우기
            DisplayInvert,                          // 화면 반전
            DisplayDrawPoint,                       // 점 그리기
            DisplayDrawLine,                        // 선 그리기
            DisplayDrawRect,                        // 사각형 그리기
            DisplayDrawCircle,                      // 원 그리기
            DisplayDrawString,                      // 문자열 쓰기
            DisplayDrawStringAlign,                 // 문자열 쓰기
            DisplayDrawImage,                       // 그림 그리기

            // Information Assembled
            InformationAssembledForController       = 0xA0,     // 데이터 모음
            InformationAssembledForEntry            = 0xA1,     // 데이터 모음
            InformationAssembledForByBlocks         = 0xA2,     // 데이터 모음

            EndOfType
        };
    }
}



아래는 각 DataType와 연관된 구조체들을 링크로 연결해두었습니다.

이름 대상 설명 구조체
None 0x00 - 없음  
Ping 0x01 A 통신 확인 Protocol::Ping
Ack 0x02 A 데이터 수신에 대한 응답 Protocol::Ack
Error 0x03 A 오류 Protocol::Error
Request 0x04 A 지정한 타입의 데이터 요청 Protocol::Request
Message 0x05 - 문자열 데이터  
Address 0x06 A 주소 Protocol::Address
Information 0x07 A 펌웨어 및 장치 정보 Protocol::Information
Update 0x08 A 펌웨어 업데이트  
UpdateLocation 0x09 A 펌웨어 업데이트 위치  
Encrypt 0x0A A 펌웨어 암호화  
SystemCount 0x0B A 시스템 카운터  
SystemInformation 0x0C A 시스템 정보  
Registration 0x0D - 제품 등록  
Administrator 0x0E - 관리자  
Monitor 0x0F - 디버깅 데이터  
Control 0x10 D 조종 Control::Quad8,
Control::Quad8AndRequestData,
Control::Position
Command 0x11 A 명령 Protocol::Command::Command,
Protocol::Command::LightEvent,
Protocol::Command::LightEventColor,
Protocol::Command::LightEventColors
Pairing 0x12 A 페어링 Protocol::Pairing
Rssi 0x13 A RSSI Protocol::Rssi
TimeSync 0x14 A TimeSync  
LightManual 0x20 A LED 수동 제어 Protocol::Light::Manual
LightMode 0x21 D LED 모드 지정 Protocol::Light::Mode,
Protocol::Light::ModeColor,
Protocol::Light::ModeColors
LightEvent 0x22 D LED 이벤트 Protocol::Light::Event,
Protocol::Light::EventColor,
Protocol::Light::EventColors
LightDefault 0x23 D LED 초기색 Protocol::Light::ModeColor,
Protocol::Light::ModeColors
RawMotion 0x30 D Motion Raw 데이터(Accel, Gyro) Protocol::RawMotion
RawFlow 0x31 D Flow Raw 데이터 Protocol::RawFlow
State 0x40 D 드론의 상태 Protocol::State
Attitude 0x41 D 드론의 자세(Angle) Protocol::Attitude
Position 0x42 D 위치 Protocol::Position
Altitude 0x43 D 높이, 고도 Protocol::Altitude
Motion 0x44 D Motion 센서(Accel, Gyro, Angle) Protocol::Motion
Range 0x45 D Range 센서 Protocol::Range
Count 0x50 D 카운트 Protocol::Count
Bias 0x51 D Accel, Gyro 바이어스 값 Protocol::Bias
Trim 0x52 D Trim Protocol::Trim
Weight 0x53 D 무게 Protocol::Weight
LostConnection 0x54 D 연결이 끊긴 후 반응 시간 설정 Protocol::LostConnection
Motor 0x60 D 모터 제어 및 현재 제어값 확인 Protocol::Motor
MotorSingle 0x61 D 한 개의 모터 제어 Protocol::MotorSingle
Buzzer 0x62 C 버저 제어 Protocol::Buzzer
Vibrator 0x63 C 진동 제어 Protocol::Vibrator
Button 0x70 A 버튼 입력 Protocol::Button
Joystick 0x71 C 조이스틱 입력 Protocol::Joystick
DisplayClear 0x80 C 화면 지우기 Protocol::Display::ClearAll,
Protocol::Display::Clear
DisplayInvert 0x81 C 화면 반전 Protocol::Display::Invert
DisplayDrawPoint 0x82 C 점 그리기 Protocol::Display::DrawPoint
DisplayDrawLine 0x83 C 선 그리기 Protocol::Display::DrawLine
DisplayDrawRect 0x84 C 사각형 그리기 Protocol::Display::DrawRect
DisplayDrawCircle 0x85 C 원 그리기 Protocol::Display::DrawCircle
DisplayDrawString 0x86 C 문자열 쓰기 Protocol::Display::DrawString
DisplayDrawStringAlign 0x87 C 문자열 정렬하여 쓰기 Protocol::Display::DrawStringAlign
DisplayDrawImage 0x88 C 이미지 그리기 Protocol::Display::DrawImage
InformationAssembledForController 0xA0 D 자주 갱신되는 데이터 모음(조종기) Protocol::InformationAssembledForController
InformationAssembledForEntry 0xA1 D 자주 갱신되는 데이터 모음(엔트리) Protocol::InformationAssembledForEntry
InformationAssembledForByBlocks 0xA2 D 자주 갱신되는 데이터 모음(바이블럭) Protocol::InformationAssembledForByBlocks


  • A: 모든 장치(All)
  • C: 조종기(Controller)
  • D: 드론(Drone)



E-DRONE

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


Index