CodingRider for python / System
Modified : 2024.5.23
System과 관련된 정의를 소개합니다.
- ModelNumber
- DeviceType
- ModeControlFlight
- ModeSystem
- ModeFlight
- ModeUpdate
- ErrorFlagsForSensor
- ErrorFlagsForState
- FlightEvent
- Direction
- Rotation
- SensorOrientation
- Headless
- TrimDirection
- ModeMovement
ModelNumber
모델 번호
장치의 모델 번호입니다. 현재는 펌웨어 업데이트 시 제품을 확인하는 용도로 사용합니다.
class ModelNumber(Enum):
None_ = 0x00000000
# AAAABBCC, AAAA(Project Number), BB(Device Type), CC(Revision)
Drone_11_Drone_P0 = 0x000B1000 # reserve
Drone_11_Drone_P1 = 0x000B1001 # 65 no coding
Drone_11_Drone_P2 = 0x000B1002 # fixWing
Drone_11_Drone_P3 = 0x000B1003 # 65 coding
Drone_11_Drone_P4 = 0x000B1004 # 95 battle drone
Drone_11_Drone_P5 = 0x000B1005 # skykick evolution drone
Drone_11_Drone_P6 = 0x000B1006 # reserve
Drone_11_Drone_P7 = 0x000B1007 # reserve
Drone_11_Drone_P8 = 0x000B1008 # reserve
Drone_11_Drone_P9 = 0x000B1009 # reserve
Drone_11_Controller_P0 = 0x000B2000 # 65 Drone, No USB, Fixed Wing, Return
Drone_11_Controller_P1 = 0x000B2001 # 65 drone, USB
Drone_11_Controller_P2 = 0x000B2002 # 65 drone, No USB
Drone_11_Controller_P3 = 0x000B2003 # Bird Wing, Fixed Wing, NoReturn
Drone_11_Controller_P4 = 0x000B2004 # Battle drone, USB
Drone_11_Controller_P5 = 0x000B2005 # skykick evolution controller
Drone_11_Controller_P6 = 0x000B2006 # reserve
Drone_11_Controller_P7 = 0x000B2007 # reserve
Drone_11_Controller_P8 = 0x000B2008 # reserve
Drone_11_Controller_P9 = 0x000B2009 # reserve
Drone_11_Link_P0 = 0x000B3000 # Drone_11_Link_P0 RoboRobo
Drone_11_Link_P1 = 0x000B3001 # reserve
# Drone_12 chip
Drone_12_Drone_P0 = 0x000C1000 # coding drone stm32f401rc + xn297
Drone_12_Drone_P1 = 0x000C1001 # coding drone STM32F407VE + nrf24l01
Drone_12_Drone_P2 = 0x000C1002 # reserve
Drone_12_Controller_P0 = 0x000C2000 # coding drone stm32f401rc + xn297
Drone_12_Controller_P1 = 0x000C2001 # coding drone STM32F407VE + nrf24l01
Drone_12_Controller_P2 = 0x000C2002 # reserve
Drone_12_Link_P0 = 0x000C3000 # Drone_12_Link_P0
Drone_12_Link_P1 = 0x000C3001 # reserve
Drone_12_Tester_P0 = 0x000CA000 # Drone All Tester
Drone_12_Tester_P1 = 0x000CA001 # reserve
DeviceType
장치 타입
주로 데이터 송수신 시 데이터를 보낸 곳과 받을 곳을 지정할 때 사용합니다.
class DeviceType(Enum):
None_ = 0x00
Drone = 0x10 # 드론(Server)
Controller = 0x20 # 조종기(Client)
LinkClient = 0x30 # 링크 모듈(Client)
LinkServer = 0x31 # 링크 모듈(Server)
BleClient = 0x32 # BLE 클라이언트
BleServer = 0x33 # BLE 서버
Range = 0x40 # 거리 센서 모듈
Base = 0x70 # 베이스
ByScratch = 0x80 # 바이스크래치
Scratch = 0x81 # 스크래치
Entry = 0x82 # 네이버 엔트리
Tester = 0xA0 # 테스터
Monitor = 0xA1 # 모니터
Updater = 0xA2 # 펌웨어 업데이트 도구
Encrypter = 0xA3 # 암호화 도구
EndOfType = 0xA4
Whispering = 0xFE # 바로 인접한 장치까지만 전달(받은 장치는 자기 자신에게 보낸 것처럼 처리하고 타 장치에 전달하지 않음)
Broadcasting = 0xFF # 연결된 모든 장치에 전달
ModeControlFlight
비행 제어 모드
CodingRider에서는 Attitude와 Position만 지원합니다. 다른 모드로 변경할 경우 무시합니다.
class ModeControlFlight(Enum):
None_ = 0x00
Attitude = 0x10 # 자세 - X,Y는 각도(deg)로 입력받음, Z,Yaw는 속도(m/s)로 입력 받음
Position = 0x11 # 위치 - X,Y,Z,Yaw는 속도(m/s)로 입력 받음
EndOfType = 0x14
ModeSystem
System 동작 모드
class ModeSystem(Enum):
None_ = 0x00
Boot = 0x10
Start = 0x11
Running = 0x12
ReadyToReset = 0x13
Error = 0xA0
EndOfType = 0x06
ModeFlight
비행 제어기 동작 모드
class ModeFlight(Enum):
None_ = 0x00 # 없음
Ready = 0x10 # 준비
Start = 0x11 # 이륙 준비
Takeoff = 0x12 # 이륙 (Flight로 자동전환)
Flight = 0x13 # 비행
Landing = 0x14 # 착륙
Flip = 0x15 # 회전
Reverse = 0x16 # 뒤집기
Stop = 0x20 # 강제 정지
Accident = 0x30 # 사고 (Ready로 자동전환)
Error = 0x31 # 오류
Test = 0x40 # 테스트 모드
EndOfType = 0x41
ModeUpdate
업데이트 동작 모드
class ModeUpdate(Enum):
None_ = 0x00
Ready = 0x01 # 업데이트 가능 상태
Update = 0x02 # 업데이트 중
Complete = 0x03 # 업데이트 완료
Failed = 0x04 # 업데이트 실패(업데이트 완료까지 갔으나 body의 CRC16이 일치하지 않는 경우 등)
NotAvailable = 0x05 # 업데이트 불가능 상태(Debug 모드 등)
RunApplication = 0x06 # 어플리케이션 동작 중
NotRegistered = 0x07 # 등록되지 않음
EndOfType = 0x08
ErrorFlagsForSensor
센서 오류 플래그
class ErrorFlagsForSensor(Enum):
None_ = 0x00000000
Motion_NoAnswer = 0x00000001 # Motion 센서 응답 없음
Motion_WrongValue = 0x00000002 # Motion 센서 잘못된 값
Motion_NotCalibrated = 0x00000004 # Gyro Bias 보정이 완료되지 않음
Motion_Calibrating = 0x00000008 # Gyro Bias 보정 중
Pressure_NoAnswer = 0x00000010 # 압력 센서 응답 없음
Pressure_WrongValue = 0x00000020 # 압력 센서 잘못된 값
RangeGround_NoAnswer = 0x00000100 # 바닥 거리 센서 응답 없음
RangeGround_WrongValue = 0x00000200 # 바닥 거리 센서 잘못된 값
Flow_NoAnswer = 0x00001000 # Flow 센서 응답 없음
Flow_WrongValue = 0x00002000 # Flow 잘못된 값
Flow_CannotRecognizeGroundImage = 0x00004000 # 바닥 이미지를 인식할 수 없음
ErrorFlagsForState
상태 오류 플래그
class ErrorFlagsForState(Enum):
None_ = 0x00000000
NotRegistered = 0x00000001 # 장치 등록이 안됨
FlashReadLock_UnLocked = 0x00000002 # 플래시 메모리 읽기 Lock이 안 걸림
BootloaderWriteLock_UnLocked = 0x00000004 # 부트로더 영역 쓰기 Lock이 안 걸림
TakeoffFailure_CheckPropellerAndMotor = 0x00000010 # 이륙 실패
CheckPropellerVibration = 0x00000020 # 프로펠러 진동발생
Attitude_NotStable = 0x00000040 # 자세가 많이 기울어져 있거나 뒤집어져 있을때
CanNotFlip_LowBattery = 0x00000100 # 배터리가 30이하
CanNotFlip_TooHeavy = 0x00000200 # 기체가 무거움
FlightEvent
비행 이벤트
class FlightEvent(Enum):
None_ = 0x00 # 없음
Stop = 0x10 # 정지
Takeoff = 0x11 # 이륙
Landing = 0x12 # 착륙
Reverse = 0x13 # 뒤집기
FlipFront = 0x14 # 회전
FlipRear = 0x15 # 회전
FlipLeft = 0x16 # 회전
FlipRight = 0x17 # 회전
Return = 0x18 # Return
ResetHeading = 0xA0 # 헤딩 리셋(헤들리스 모드 일 때 현재 heading을 0도로 변경)
EndOfType = 0xA1
Direction
방향
class Direction(Enum):
None_ = 0x00
Left = 0x01
Front = 0x02
Right = 0x03
Rear = 0x04
Top = 0x05
Bottom = 0x06
Center = 0x07
EndOfType = 0x08
Rotation
회전 방향
모터를 작동시킬 때 회전 방향을 지정하는데 사용합니다.
CodingRider에는 총 4개의 모터가 있으며, 왼쪽 앞 모터부터 각각 0, 1, 2, 3번으로 번호가 부여되어 있습니다.
드론 비행 시에 0번과 2번 모터는 시계방향(Clockwise), 1번과 3번 모터는 반시계방향(Counterclockwise)으로 회전합니다.
CodingRider는 회전 방향이 각각 기본 방향으로 고정되어 있어서 정해진 방향이 아니면 동작하지 않습니다.
class Rotation(Enum):
None_ = 0x00
Clockwise = 0x01
Counterclockwise = 0x02
EndOfType = 0x03
SensorOrientation
센서 방향
드론이 뒤집어졌을 때 상태를 확인하는 용도입니다.
class SensorOrientation(Enum):
None_ = 0x00
Normal = 0x01
ReverseStart = 0x02
Reversed = 0x03
EndOfType = 0x04
Headless
Headless모드
Headless를 선택할 경우, 드론이 이륙할 때 바라보는 방향이나 사용자가 방향을 초기화 할 때 드론이 바라보는 방향을 앞으로 지정합니다. 이 방향을 기준으로 전후좌우 방향이 고정되어 드론이 어느 쪽으로 바라보더라도 지정한 방향을 기준으로 움직입니다.
Normal을 선택할 경우, 드론이 바라보는 방향을 기준으로 전후좌우로 움직입니다.
class Headless(Enum):
None_ = 0x00
Headless = 0x01 # Headless
Normal = 0x02 # Normal
EndOfType = 0x03
TrimDirection
트림
트림 설정 값을 한 단계씩 올리거나 낮출 때 사용합니다.
class TrimDirection(Enum):
None_ = 0x00 # 없음
RollIncrease = 0x01 # Roll 증가
RollDecrease = 0x02 # Roll 감소
PitchIncrease = 0x03 # Pitch 증가
PitchDecrease = 0x04 # Pitch 감소
YawIncrease = 0x05 # Yaw 증가
YawDecrease = 0x06 # Yaw 감소
ThrottleIncrease = 0x07 # Throttle 증가
ThrottleDecrease = 0x08 # Throttle 감소
Reset = 0x09 # 전체 트림 리셋
EndOfType = 0x0A
ModeMovement
이동 상태
드론의 현재 이동 상태를 나타냅니다.
class ModeMovement(Enum):
None_ = 0x00
Ready = 0x01 # Ready
Hovering = 0x02 # Hovering
Moving = 0x03 # Moving
ReturnHome = 0x04 # Return Home
EndOfType = 0x05