DRONEFIGHTER2017 / Protocol / Definitions
Modified : 2017.10.18
Drone Fighter에서 사용하고 있는 기본 정의들을 소개합니다.
Protocol::CommandType::Type
CommandBase 구조체에서 commandType 변수에 사용합니다.
namespace Protocol
{
namespace CommandType
{
enum Type
{
None = 0, // 이벤트 없음
// 설정
ModeVehicle = 0x10, // Vehicle 동작 모드 전환
// 제어
Coordinate = 0x20, // 방위 기준 변경
Trim, // 트림 변경
FlightEvent, // 비행 이벤트 실행
DriveEvent, // 주행 이벤트 실행
Stop, // 정지
ClearTrim = 0x50, // 트림 초기화
GyroBiasAndTrimReset, // 자이로 바이어스와 트림 리셋
UserInterfacePreset = 0x80, // 사용자 인터페이스 설정
DataStorageWrite, // 변경사항이 있는 경우 데이터 저장소에 기록
// 관리자
ClearCounter = 0xA0, // 카운터 클리어(관리자 권한을 획득했을 경우에만 동작)
EndOfType
};
}
}
Mode::Vehicle::Type
Drone Fighter 동작 모드를 선택합니다.
namespace Mode
{
namespace Vehicle
{
enum Type
{
None = 0, // 없음
Flight = 0x10, // 비행(가드 포함)
FlightNoGuard, // 비행(가드 없음)
FlightFPV, // 비행(FPV)
Drive = 0x20, // 주행
DriveFPV, // 주행(FPV)
Test = 0x30, // 테스트
EndOfType
};
}
}
Mode::System::Type
시스템 동작 상태를 나타냅니다.
namespace Mode
{
namespace System
{
enum Type
{
None = 0, // 없음
Boot, // 부팅
Start, // 시작 코드 실행
Running, // 메인 코드 동작
ReadyToReset, // 리셋 대기(1초 뒤 리셋)
Error, // 오류
EndOfType
};
}
}
Mode::Flight::Type
비행 제어기 동작 상태를 나타냅니다.
namespace Mode
{
namespace Flight
{
enum Type
{
None = 0, // 없음
Ready = 0x10, // 준비
TakeOff, // 이륙 (Flight로 자동전환)
Flight, // 비행
Landing, // 착륙
Flip, // 회전
Reverse, // 뒤집기
Stop = 0x20, // 강제 정지
Accident = 0x30, // 사고 (Ready로 자동전환)
Error, // 오류
Test = 0x40, // 테스트 모드
EndOfType
};
}
}
Mode::Drive::Type
자동차 제어기 동작 상태를 나타냅니다.
namespace Mode
{
namespace Drive
{
enum Type
{
None = 0, // 없음
Ready = 0x10, // 준비
Start, // 출발
Drive, // 주행
Stop = 0x20, // 강제 정지
Accident = 0x30, // 사고 (Ready로 자동전환)
Error, // 오류
Test = 0x40, // 테스트 모드
EndOfType
};
}
}
SensorOrientation::Type
센서 방향을 나타냅니다.
namespace SensorOrientation
{
enum Type
{
None = 0, // 없음
Normal, // 정상
ReverseStart, // 뒤집히기 시작
Reversed, // 뒤집힘
EndOfType
};
}
Direction::Type
방향을 나타냅니다.
namespace Direction
{
enum Type
{
None = 0,
Left,
Front,
Right,
Rear,
Top,
Bottom,
EndOfType
};
}
Coordinate::Type
조종기 방향 기준을 선택합니다. World는 앱솔루트 모드입니다. 드론 외부 세계를 중심으로 좌표를 판단합니다. Local은 일반모드입니다. 드론을 중심으로 좌표를 판단합니다.
namespace Coordinate
{
enum Type
{
None = 0, // 없음
World, // 고정 좌표계(Absolute)
Local, // 상대 좌표계(일반)
EndOfType
};
}
Trim::Type
드론이 한쪽 방향으로 흐를 때 반대 방향을 입력하여 호버링을 할 수 있게 조정합니다. 한 번 전송할 때마다 일정하게 값이 변합니다.
namespace Trim
{
enum Type
{
None = 0, // 없음
RollIncrease, // Roll 증가
RollDecrease, // Roll 감소
PitchIncrease, // Pitch 증가
PitchDecrease, // Pitch 감소
YawIncrease, // Yaw 증가
YawDecrease, // Yaw 감소
ThrottleIncrease, // Throttle 증가
ThrottleDecrease, // Throttle 감소
Reset, // 전체 트림 리셋
EndOfType
};
}
Motor::Direction::Type
모터 회전 방향
namespace Motor
{
namespace Direction
{
enum Type
{
None = 0, // 입력값을 적용하지 않음
Forward, // 정방향
Reverse, // 역방향
EndOfType
};
}
}
Motor::Part::Type
모터 번호
namespace Rotation
{
namespace Part
{
enum Type
{
M1, // Front Left
M2, // Front Right
M3, // Rear Right
M4, // Rear Left
EndOfPart,
All
};
}
}
FlightEvent::Type
비행 이벤트를 실행합니다.
namespace FlightEvent
{
enum Type
{
None = 0, // 없음
Stop = 0x10, // 정지
TakeOff, // 이륙
Landing, // 착륙
Reverse, // 뒤집기
FlipFront, // 회전
FlipRear, // 회전
FlipLeft, // 회전
FlipRight, // 회전
Shot, // 미사일 쏠때 움직임
UnderAttack, // 미사일 맞을때 움직임
ResetHeading = 0xA0, // 헤딩 리셋(앱솔루트 모드 일 때 현재 heading을 0도로 변경)
EndOfType
};
}
Joystick::Direction::Type
조이스틱 방향
namespace Joystick
{
// 조이스틱 방향
namespace Direction
{
enum Type
{
None = 0, // 정의하지 않은 영역(무시함)
VT = 0x10, // 위(세로)
VM = 0x20, // 중앙(세로)
VB = 0x40, // 아래(세로)
HL = 0x01, // 왼쪽(가로)
HM = 0x02, // 중앙(가로)
HR = 0x04, // 오른쪽(가로)
TL = 0x11, TM = 0x12, TR = 0x14,
ML = 0x21, CN = 0x22, MR = 0x24,
BL = 0x41, BM = 0x42, BR = 0x44
};
}
}
Joystick::Event::Type
조이스틱 방향
namespace Joystick
{
// 조이스틱 방향
namespace Event
{
enum Type
{
None = 0, // 이벤트 없음
In, // 특정 영역에 진입
Stay, // 특정 영역에서 상태 유지
Out, // 특정 영역에서 벗어남
EndOfType
};
}
}
Joystick::Command::Type
조이스틱 방향
namespace Joystick
{
// 조이스틱 커맨드
namespace Command
{
enum Type
{
None,
UpDownUpDown, // 위-아래-위-아래
LeftRightLeftRight, // 좌-우-좌-우
TurnLeft, // 좌회전
TurnRight, // 우회전
EndOfType
};
}
}
Buzzer::Mode::Type
버저 모드
namespace Buzzer
{
namespace Mode
{
enum Type
{
Stop = 0, // 정지(Mode에서의 Stop은 통신에서 받았을 때 Buzzer를 끄는 용도로 사용, set으로만 호출)
MuteInstantly = 1, // 묵음 즉시 적용
MuteContinually = 2, // 묵음 예약
ScaleInstantly = 3, // 음계 즉시 적용
ScaleContinually = 4, // 음계 예약
HzInstantly = 5, // 주파수 즉시 적용
HzContinually = 6, // 주파수 예약
EndOfType
};
}
}
Buzzer::Scale::Type
버저 음계
namespace Buzzer
{
namespace Scale
{
enum Type
{
/* 1, 2, 3 옥타브는 Timer tick 사용(소리에 잡음이 섞임) */
C1, CS1, D1, DS1, E1, F1, FS1, G1, GS1, A1, AS1, B1,
C2, CS2, D2, DS2, E2, F2, FS2, G2, GS2, A2, AS2, B2,
C3, CS3, D3, DS3, E3, F3, FS3, G3, GS3, A3, AS3, B3,
/* 4, 5, 6, 7, 8 옥타브는 PWM 사용(정상적인 소리) */
C4, CS4, D4, DS4, E4, F4, FS4, G4, GS4, A4, AS4, B4,
C5, CS5, D5, DS5, E5, F5, FS5, G5, GS5, A5, AS5, B5,
C6, CS6, D6, DS6, E6, F6, FS6, G6, GS6, A6, AS6, B6,
C7, CS7, D7, DS7, E7, F7, FS7, G7, GS7, A7, AS7, B7,
C8, CS8, D8, DS8, E8, F8, FS8, G8, GS8, A8, AS8, B8,
EndOfType,
Mute = 0xEE, // 묵음
Fin = 0xFF // 악보의 끝
};
}
}
Vibrator::Mode::Type
진동 모드
namespace Vibrator
{
namespace Mode
{
enum Type
{
Stop = 0, // 정지
Instantly = 1, // 즉시 적용
Continually = 2, // 예약
EndOfType
};
}
}
UserInterface::Commands::Type
사용자 인터페이스 입력
namespace UserInterface
{
namespace Commands
{
enum Type
{
None,
Setup_Button_FrontLeft_Down,
Setup_Button_FrontRight_Down,
Setup_Button_MidTurnLeft_Down,
Setup_Button_MidTurnRight_Down,
Setup_Button_MidUp_Down,
Setup_Button_MidLeft_Down,
Setup_Button_MidRight_Down,
Setup_Button_MidDown_Down,
Setup_Joystick_Left_Up_In,
Setup_Joystick_Left_Left_In,
Setup_Joystick_Left_Right_In,
Setup_Joystick_Left_Down_In,
Setup_Joystick_Right_Up_In,
Setup_Joystick_Right_Left_In,
Setup_Joystick_Right_Right_In,
Setup_Joystick_Right_Down_In,
EndOfType
};
}
}
UserInterface::Functions::Type
사용자 인터페이스 기능
namespace UserInterface
{
namespace Functions
{
enum Type
{
None,
JoystickCalibration_Reset,
Change_Team_Red,
Change_Team_Blue,
Change_Mode_Vehicle_Flight,
Change_Mode_Vehicle_FlightNoGuard,
Change_Mode_Vehicle_Drive,
Change_Coordinate_Local, // Normal
Change_Coordinate_World, // Absolute
Change_Mode_Control_Mode1,
Change_Mode_Control_Mode2,
Change_Mode_Control_Mode3,
Change_Mode_Control_Mode4,
GyroBias_Reset,
Change_Mode_USB_CDC,
Change_Mode_USB_HID,
EndOfType
};
}
}
UserInterface::Preset::Type
사용자 인터페이스 프리셋
namespace UserInterface
{
namespace Preset
{
enum Type
{
None,
Clear, // 초기화
Custom, // 사용자 설정(기본 설정에서 변경된 상태)
Drone2017, // 기본 설정
Education, // 교육용 설정
EndOfType
};
}
}
DRONE FIGHTER 2017
- Intro
- Typedef
- DataType
- Definitions
- Structs
- Structs - Light