【Background】
As drones became more common, governments around the world have developed rules to encourage safe and productive drone flights while protecting airplanes and helicopters in the air as well as people and property on the ground. Now, a big part of the new era of drone regulation is about to take effect in the United States – Remote Identification. Remote ID creates a common and consistent way for authorities to monitor airborne drones and identify who is flying them. Similar to a car license plate, this new method of aerial accountability will make the skies safer, improve public acceptance of drones, and open up new possibilities for drone pilots to routinely fly in ways that have until now been restricted for safety and security reasons – like flying at night or directly over people. The FAA’s first Remote ID compliance deadline, for newly manufactured drones that require registration with the FAA, is September 16, 2022, though the FAA announced an extension to enforce it until December 16, 2022. Customers who already own DJI drones do not need to do anything right away, because existing drones are not required to comply with FAA Remote ID regulations until September 16, 2023. DJI will provide firmware updates before that date to bring most modern DJI drones into compliance. Customers can install those updates at their discretion any time before September 16, 2023. We hope this simple guide to the FAA’s Remote ID rules will help answer any questions you have. The FAA Remote ID rule requires most drones operating in US airspace to have Remote ID capability. Think of Remote ID as an electronic license plate system for drones, allowing authorities to identify who is flying them. A physical license plate wouldn’t be much use on a small airborne drone, so Remote ID sends license plate information via radio signals to receivers on the ground. Remote ID will provide information about drones in flight, such as the identity, location, and altitude of the drone and its control station.
【SDK Interface】
Currently MSDK v5 provides IUASRemoteIDManager to meet the requirement of Remote ID. The broadcast of Remote ID has been already developed on the M300RTK latest firmware. The developers are not needed to enable/disable the Remote ID broadcasting. The IUASRemoteIDManager we have provided feedback the information which aircraft is currently broadcasting. You can show the feedback information on the app.
public interface IUASRemoteIDManager {
/**
* All countries must declare which area strategy the aircraft is using depends on where the aircraft flies.
* E.g. You need to set AreaCode.UNITED_STATES_OF_AMERICA if the aircraft is flying in USA.
* E.g. You need to set AreaCode.JAPANif the aircraft is flying in Japan.
*/
@Nullable
IDJIError setAreaCode(AreaCode areaCode);
/**
* 1. France related interfaces
*/
// Enable or disable the electronic ID.
void setElectronicIDEnabled(boolean isEnabled, @NonNull CommonCallbacks.CompletionCallback callback);
// Get the status of the electronic ID.
void getElectronicIDEnabled(@NonNull CommonCallbacks.CompletionCallbackWithParam<Boolean> callback);
// Add the listener for electronic ID status.
void addElectronicIDStatusListener(ElectronicIDStatusListener listener);
// Remove the listener for electronic ID status.
void removeElectronicIDStatusListener(ElectronicIDStatusListener listener);
// Remove all listeners for electronic ID status.
void clearAllElectronicIDStatusListener();
/**
* 2. Japan related interfaces
*/
// Set the related aircraft information such as registration number.
void setUARegistrationNumber(String number, @NonNull CommonCallbacks.CompletionCallback callback);
// Get the related aircraft information such as registration number.
void getUARegistrationNumber(@NonNull CommonCallbacks.CompletionCallbackWithParam<String> callback);
// Add the listener for registration number status.
void addUARegistrationNumberStatusListener(UARegistrationNumberStatusListener listener);
// Remove the listener for registration number status.
void removeUARegistrationNumberStatusListener(UARegistrationNumberStatusListener listener);
// Remove all listeners for registration number status.
void clearAllUARegistrationNumberStatusListener();
UASRemoteIDStatus getUASRemoteIDStatus();
/**
*
* 3. All countries not including France, add and remove the listener for the remote ID status.
* USA and Japan must use it.
*/
void addUASRemoteIDStatusListener(UASRemoteIDStatusListener listener);
void removeUASRemoteIDStatusListener(UASRemoteIDStatusListener listener);
void clearUASRemoteIDStatusListener();
}
【Sample code】
if (AreaCodeManager.getInstance().areaCode.areaCodeEnum == AreaCode.UNITED_STATES_OF_AMERICA) {
UASRemoteIDManager.getInstance().setAreaCode(AreaCode.UNITED_STATES_OF_AMERICA)
UASRemoteIDManager.getInstance().addUASRemoteIDStatusListener { }
} else if (AreaCodeManager.getInstance().areaCode.areaCodeEnum == AreaCode.JAPAN) {
UASRemoteIDManager.getInstance().setAreaCode(AreaCode.JAPAN)
UASRemoteIDManager.getInstance().setUARegistrationNumber()
UASRemoteIDManager.getInstance().addUASRemoteIDStatusListener { }
} else if (AreaCodeManager.getInstance().areaCode.areaCodeEnum == AreaCode.FRANCE) {
UASRemoteIDManager.getInstance().setAreaCode(AreaCode.FRANCE)
UASRemoteIDManager.getInstance().setElectronicIDEnabled()
UASRemoteIDManager.getInstance().addElectronicIDStatusListener()
}
Comments
0 comments
Please sign in to leave a comment.