PETRONE_V2 / Protocol / Definitions
Modified : 2018.10.8
Introduce Petrone V2 base protocol definition.
Protocol::CommandType::Type
Command Type
namespace Protocol
{
namespace CommandType
{
enum Type
{
None = 0,
// 설정
ModeVehicle = 0x10, // Vehicle Mode change
// 제어
Coordinate = 0x20, // Vehicle coordinate
Trim, // Vehicle trim change
FlightEvent, // Vehicle flight event
DriveEvent, // Vehicle drive event
Stop, // Vehicle stop
ClearTrim = 0x50, // Vehicle trim clear
ClearGyroBias, // Vehicle gyro bias and trim reset
DataStorageWrite = 0x80, // Save to database if changes are mode
EndOfType
};
}
}
Protocol::DeviceType::Type
Device Type enum
namespace Protocol
{
namespace DeviceType
{
enum Type
{
None = 0,
Drone = 0x30, // Drone
Controller, // Controller
Link, // LINK Module
Tester, // Tester
Monitor, // Monitor
Updater, // Firmware Updater
Encrypter, // Encrypter
Scratch, // Scratch
Entry, // NAVER Entry
ByScratch, // ByScratch
EndOfType,
Broadcasting = 0xFF
};
}
}
ErrorFlagsForSensor::Type
Sensor error flag
namespace ErrorFlagsForSensor
{
enum Type
{
None = 0x00000000,
Imu_NoAnswer = 0x00000001, // IMU is not response
Imu_WrongValue = 0x00000002,
Imu_NotCalibrated = 0x00000004, // Gyro Bias is not calibrate
Imu_Calibrating = 0x00000008, // Gyro Bias calibrating.
Pressure_NoAnswer = 0x00000010, // Pressure sensor not response
Pressure_WrongValue = 0x00000020,
RangeGround_NoAnswer = 0x00000100, // Range sensor not response
RangeGround_WrongValue = 0x00000200,
Camera_NoAnswer = 0x00001000, // Camera not response
OpticalFlow_WrongValue = 0x00002000,
Battery_NoAnswer = 0x00010000, // Battery not response
Battery_WrongValue = 0x00020000,
Battery_NotCalibrated = 0x00040000, // Battery in/output no calibrated.
};
}
ErrorFlagsForState::Type
State error flag
namespace ErrorFlagsForState
{
enum Type
{
None = 0x00000000,
NotTested = 0x00000001, // not tested
};
}
Mode::Vehicle::Type
Vehicle mode enum
namespace Mode
{
namespace Vehicle
{
enum Type
{
None = 0,
Flight = 0x10, // Flight mode with guard
FlightNoGuard, // Flight mode without guard
FlightFPV, // Flight FPV mode
Drive = 0x20, // Drive mode
DriveFPV, // Drive FPV mode
Test = 0x30, // Test
EndOfType
};
}
}
Mode::System::Type
Indicates the system behavior drone status.
namespace Mode
{
namespace System
{
enum Type
{
None = 0,
Boot, // booting
Start, // start code
Running, // running main code
ReadyToReset, // ready for reset ( Reset in 1 second )
Error, // error
EndOfType
};
}
}
Mode::Flight::Type
Indicates the operational status of the flight mode.
namespace Mode
{
namespace Flight
{
enum Type
{
None = 0,
Ready = 0x10, // Ready
TakeOff, // TakeOff (Automatically transferred to flight status)
Flight, // Flight
Landing, // Landing
Flip, // Flip
Reverse, // Reverse
Stop = 0x20, // Force stop
Accident = 0x30, // Accident (Automatically transferred to Ready status)
Error, // Error
Test = 0x40, // test mode
EndOfType
};
}
}
Mode::Drive::Type
Indicates the operational status of the drive mode.
namespace Mode
{
namespace Drive
{
enum Type
{
None = 0,
Ready = 0x10, // Ready
Start, // Start
Drive, // Drive
Stop = 0x20, // Force stop
Accident = 0x30, // Accident (Automatically transferred to Ready status)
Error, // Error
Test = 0x40, // test mode
EndOfType
};
}
}
Mode::Update::Type
Update state
namespace Mode
{
namespace Update
{
enum Type
{
None,
Ready, // Ready for update
Update, // Updating.
Complete, // Update complete
Failed, // Update Failed( Ex: Update has reached completion but firmware data body CRC16 does not match, etc.)
NotAvailable, // Cannot available update(Debug mode, etc.)
RunApplication, // application is running
EndOfType
};
}
}
SensorOrientation::Type
Sensor Orientation
namespace SensorOrientation
{
enum Type
{
None = 0,
Normal, // Normal
ReverseStart, // Reverse Start
Reversed, // Reversed
EndOfType
};
}
Direction::Type
Direction
namespace Direction
{
enum Type
{
None = 0,
Left,
Front,
Right,
Rear,
Top,
Bottom,
EndOfType
};
}
Coordinate::Type
Control coordinate.
- World mode : The Absolute mode. The reference directions is fixed in the direction of view when the drones are takeoff.
- Local : Moves on the direction the drone is looking. On the controller, 'World' is display ' Headless ON ' and Local is display ' Headless OFF '. The default setting is Local. 조종기 상에서는 World를 'Headless ON', Local을 'Headless OFF'로 표현하고 있습니다. 기본 설정은 Local입니다.
namespace Coordinate
{
enum Type
{
None = 0,
World, // Absolute(Headless/Absolute)
Local, // Normal(Normal)
EndOfType
};
}
Trim::Type
Trim
If PETRONE flows in one direction. Adjust the orientation to allow hovering. The value changes for each transfer.
namespace Trim
{
enum Type
{
None = 0,
RollIncrease, // Roll Increase
RollDecrease, // Roll Decrease
PitchIncrease, // Pitch Increase
PitchDecrease, // Pitch Decrease
YawIncrease, // Yaw Increase
YawDecrease, // Yaw Decrease
ThrottleIncrease, // Throttle Increase
ThrottleDecrease, // Throttle Decrease
Reset, // reset all trim
EndOfType
};
}
Rotation::Type
Motor Rotation control
PETRONE V2 has total 4 motors, From the front left motor, numbers are 0, 1, 2 and 3. During drone flight 0 and 2 motors rotate clockwise and motors 1 and 3 rotate counterclockwise. Motors 0 and 1 operate both clockwise and counterclockwise to restore the drones to their original state when turned.
namespace Rotation
{
enum Type
{
None = 0,
Clockwise, // Clockwise direction
Counterclockwise, // Counterclockwise direction
EndOfType
};
}
Motor::Part::Type
Motor number
namespace Rotation
{
namespace Part
{
enum Type
{
M1, // Front Left
M2, // Front Right
M3, // Rear Right
M4, // Rear Left
EndOfPart,
All
};
}
}
FlightEvent::Type
PETRONE Flight event
namespace FlightEvent
{
enum Type
{
None = 0, // none
Stop = 0x10, // Force stop
TakeOff, // takeoff
Landing, // landing
Reverse, // reverse
FlipFront, // flip front(Not Yet)
FlipRear, // flip rear(Not Yet)
FlipLeft, // flip left(Not Yet)
FlipRight, // flip right(Not Yet)
Shot, // IR shot action
UnderAttack, // IR shot recieve action
ResetHeading = 0xA0, // reset heading(Change the current heading to 0 degrees when in absolute mode)
EndOfType
};
}
DriveEvent::Type
PETRONE Drive event
namespace DriveEvent
{
enum Type
{
None = 0, // None
Stop = 0x10, // Force stop
Shot, // IR shot action
UnderAttack, // IR shot recieve action
EndOfType
};
}
Button::Event::Type
Button event
namespace Button
{
namespace Event
{
enum Type
{
None,
Down, // Press down start
Press, // Press In
Up, // Button Up
EndContinuePress // End of press
};
}
}
Joystick::Direction::Type
Joystick direction
namespace Joystick
{
// Joystick direction
namespace Direction
{
enum Type
{
None = 0, // Undefined Area (Ignore)
VT = 0x10, // Top(Vertical)
VM = 0x20, // Middle(Vertical)
VB = 0x40, // Bottom(Vertical)
HL = 0x01, // Left(Horizontal)
HM = 0x02, // Middle(Horizontal)
HR = 0x04, // Right(Horizontal)
TL = 0x11, TM = 0x12, TR = 0x14,
ML = 0x21, CN = 0x22, MR = 0x24,
BL = 0x41, BM = 0x42, BR = 0x44
};
}
}
Joystick::Event::Type
Joystick event
namespace Joystick
{
// Joystick event
namespace Event
{
enum Type
{
None = 0, // no event
In, // Specific area in
Stay, // Stay in a specific area
Out, // Specific area out
EndOfType
};
}
}
Buzzer::Mode::Type
Buzzer mode
namespace Buzzer
{
namespace Mode
{
enum Type
{
Stop = 0, // Stop in Mode is used to turn off the buzzer when received from communication, call in a set only
MuteInstantly = 1, // Mute Instantly
MuteContinually = 2, // Mute Continually
ScaleInstantly = 3, // Scale Instantly
ScaleContinually = 4, // Scale Continually
HzInstantly = 5, // Hz Instantly
HzContinually = 6, // Hz Continually
EndOfType
};
}
}
Buzzer::Scale::Type
Buzzer scale
namespace Buzzer
{
namespace Scale
{
enum Type
{
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,
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, // Mute
Fin = 0xFF // The end of music
};
}
}
Vibrator::Mode::Type
Vibrator mode
namespace Vibrator
{
namespace Mode
{
enum Type
{
Stop = 0, // Stop
Instantly = 1, // Instantly vibrate.
Continually = 2, // Continualy vibrate.
EndOfType
};
}
}
PETRONE V2
- Intro
- Typedef
- DataType
- Definitions
- Structs
- Structs - Light
- Structs - Display