CodingDrone / Protocol / DataType
Modified : 2024.6.19
데이터 타입을 소개합니다.
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, // 시간 동기화
TransmissionPower = 0x15, // 전송 출력
Configuration = 0x16, // 설정
Echo = 0x17, // 반향(정상적으로 송수신 되는 데이터 길이 확인용, 받은 데이터를 그대로 반환, RF로 송수신 가능한 데이터 길이를 확인할 목적으로 추가)
// Light
LightManual = 0x20, // LED 수동 제어
LightMode = 0x21, // LED 모드
LightEvent = 0x22, // LED 이벤트
LightDefault = 0x23, // LED 초기 모드
// 센서 RAW 데이터
RawMotion = 0x30, // Motion 센서 데이터 RAW 값
RawFlow = 0x31, // Flow 센서 데이터 RAW 값
// 상태, 센서
State = 0x40, // 드론의 상태(비행 모드 방위기준 배터리량)
Attitude = 0x41, // 드론의 자세(Angle)
Position = 0x42, // 위치
Altitude = 0x43, // 높이, 고도
Motion = 0x44, // Motion 센서 데이터 처리한 값(IMU)
Range = 0x45, // 거리센서 데이터
// 설정
Count = 0x50, // 카운트
Bias = 0x51, // 엑셀, 자이로 바이어스 값
Trim = 0x52, // 트림
Weight = 0x53, // 무게
LostConnection = 0x54, // 연결이 끊긴 후 반응 시간 설정
// Devices
Motor = 0x60, // 모터 제어 및 현재 제어값 확인
MotorSingle = 0x61, // 한 개의 모터 제어
Buzzer = 0x62, // 부저 제어
Vibrator = 0x63, // 진동 제어
// Input
Button = 0x70, // 버튼 입력
Joystick = 0x71, // 조이스틱 입력
// Display
DisplayClear = 0x80, // 화면 지우기
DisplayInvert = 0x81, // 화면 반전
DisplayDrawPoint = 0x82, // 점 그리기
DisplayDrawLine = 0x83, // 선 그리기
DisplayDrawRect = 0x84, // 사각형 그리기
DisplayDrawCircle = 0x85, // 원 그리기
DisplayDrawString = 0x86, // 문자열 쓰기
DisplayDrawStringAlign = 0x87, // 문자열 쓰기
// Card
CardClassify = 0x90, // 카드 색상 분류 기준 설정
CardRange = 0x91, // 카드 색 범위(RAW 데이터의 출력 범위)
CardRaw = 0x92, // 카드 데이터 RAW 값(유선으로만 전송)
CardColor = 0x93, // 카드 데이터
CardList = 0x94, // 카드 리스트 데이터
CardFunctionList = 0x95, // 카드 함수 리스트 데이터
// Information Assembled
InformationAssembledForController = 0xA0, // 자주 갱신되는 데이터 모음
InformationAssembledForEntry = 0xA1, // 자주 갱신되는 데이터 모음
EndOfType = 0xDC,
};
}
}
아래는 각 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 | |
TransmissionPower | 0x15 | A | RF 데이터 송신 세기 | |
Setup | 0x16 | D | 드론 제어기 설정 값 | |
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::StateProtocol::StateController, Protocol::StateLink |
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 |
Flow | 0x46 | D | Optical Flow 센서 데이터 | Protocol::Flow |
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, Protocol::BuzzerMelody |
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 |
CardClassify | 0x90 | D | 카드 색상 분류 기준 설정 | Protocol::Card::Classify |
CardRange | 0x91 | D | 카드 색 범위(RAW 데이터의 출력 범위) | Protocol::Card::Range |
CardRaw | 0x92 | D | 카드 데이터 RAW 값(유선으로만 전송) | Protocol::Card::Raw |
CardColor | 0x93 | D | 카드 데이터 | Protocol::Card::Color |
CardList | 0x94 | D | 카드 리스트 데이터 | Protocol::Card::List |
CardFunctionList | 0x95 | D | 카드 함수 리스트 데이터 | Protocol::Card::FunctionList |
InformationAssembledForController | 0xA0 | D | 자주 갱신되는 데이터 모음(조종기) | Protocol::InformationAssembledForController |
InformationAssembledForEntry | 0xA1 | D | 자주 갱신되는 데이터 모음(엔트리) | Protocol::InformationAssembledForEntry |
- A: 모든 장치(All)
- C: 조종기(Controller)
- D: 드론(Drone)