Commit Graph

30721 Commits

Author SHA1 Message Date
Supernovae 91afa19543 SRV_Channels.cpp: small correction
it's not only Auxilary o/p but affects the main o/p as well.
2022-09-15 10:49:32 +10:00
yaapu 28f2adf1b2 AP_OSD: added missing parameter meta information for OSD_TYPE=5 2022-09-15 10:17:52 +10:00
murata 7ef7db717c AP_Airspeed: Delete unused definitions 2022-09-15 09:52:54 +10:00
Michael du Breuil 18e374e687 AP_Logger: Fix an error in the doc string for the MAVC message 2022-09-15 09:45:33 +10:00
Peter Barker 2e8939222d AP_Notify: move defaulting of HAL_DSHOT_ALARM into hwdef 2022-09-15 09:18:04 +10:00
Peter Barker 0f49b7f3ab AP_HAL: move defaulting of HAL_DSHOT_ALARM into hwdef 2022-09-15 09:18:04 +10:00
Peter Barker 28a0336423 AP_HAL_ChibiOS: move defaulting of HAL_DSHOT_ALARM into hwdef 2022-09-15 09:18:04 +10:00
Andrew Tridgell 3d63a968cf AP_Motors: added a SPIN_MIN check
and check SPIN_ARM <= SPIN_MIN
2022-09-14 21:45:20 +01:00
Peter Barker fb3a7d0d10 AP_HAL_SITL: do not return from reboot command
This structure was set up to mimic the should_exit code originally from the Linux HAL.  It runs contrary to the intent of the HAL reboot call, which is not expected to return.  This oddity leads us to emit wo acks sequentially, one success, one failure, which is just weird.
2022-09-14 21:23:18 +10:00
Peter Barker c8a1fff8ae GCS_MAVLink: populate sysid/compid in reboot ACK 2022-09-14 20:16:38 +10:00
HefnySco 2a0b103c2c AP_Proximity: change PROXIMITY_GND_DETECT_THRESHOLD to param 2022-09-14 19:40:35 +10:00
Andrew Tridgell 178e683e02 hwdef: rename board at request of vendor
there are multiple AtomRCF405 boards
2022-09-14 19:39:49 +10:00
yaapu ca588b2eed AP_OSD: Fixed UART thread ownership for the MSP DisplayPort OSD Backend 2022-09-14 18:47:01 +10:00
Henry Wurzburg 0654ed74e3 SRV_Channel: change sw and output names to match new MOUNT params 2022-09-14 18:29:33 +10:00
Henry Wurzburg ac1b1c5a93 RC_Channel: change sw and output names to match new MOUNT params 2022-09-14 18:29:33 +10:00
Andrew Tridgell 7c25b34f56 AP_BoardConfig: load CUAVv6X defaults when detected 2022-09-14 18:04:46 +10:00
Andrew Tridgell 39fdc38c71 AP_Param: make load_defaults_file() available on ChibiOS 2022-09-14 18:04:46 +10:00
Andrew Tridgell 8e102ecfcc hwdef: added CUAV_V6X default parameters 2022-09-14 18:04:46 +10:00
Andy Piper 9d3f4d1906 AP_RPM: fix reporting of RPM from the harmonic notch 2022-09-14 17:45:57 +10:00
Andrew Tridgell d06600aca1 SITL: fixed tailsitter airspeed in RF9 2022-09-14 16:49:20 +10:00
Iampete1 7700e60261 AP_Scripting: revert logger acsess changes for applets 2022-09-14 13:59:40 +10:00
Iampete1 954ade3437 AP_Scripting: move ship landing example to applet 2022-09-14 13:59:40 +10:00
Iampete1 89311b4227 AP_Scripting: convert all examples to new parameter constructior 2022-09-14 13:59:40 +10:00
Iampete1 41e36e3128 AP_Scripting: Parameter helper: allow optional param name in constructior 2022-09-14 13:59:40 +10:00
Iampete1 e51c42f8a5 AP_Scripting: enfoce skip check on correct types update description to match 2022-09-13 18:43:13 +01:00
Andrew Tridgell 0d082043ba AP_UAVCAN: support sending pulses as PWM for DroneCAN actuators 2022-09-13 16:23:44 +10:00
Peter Barker 65b5e0455b GCS_MAVLink: warn if GCS send MISSION_ITEM rather than MISSION_ITEM_INT 2022-09-13 11:50:54 +10:00
Peter Barker 406c94cdbf GCS_MAVLink: satisfy TODO; rename packet to mission_item_int 2022-09-13 11:50:54 +10:00
Peter Barker e065f6c629 GCS_MAVLink: remove incorrect and superfluous comment 2022-09-13 11:50:54 +10:00
Peter Barker 8cdb304871 GCS_MAVLink: warn if MISSION_REQUEST is used 2022-09-13 11:50:54 +10:00
Michael du Breuil 98c4f1b323 AP_Arming: Expose ARMING_OPTIONS to all vehicles 2022-09-13 11:18:22 +10:00
Iampete1 3d98122179 AP_Param: move complex AP_ParamT functions to cpp 2022-09-13 09:09:33 +10:00
Andrew Tridgell 5ad860a22d AP_Scripting: added set_rpm_scale example 2022-09-13 07:48:19 +10:00
Andrew Tridgell 1768149a72 AP_Scripting: added set_rpm_scale API 2022-09-13 07:48:19 +10:00
Andrew Tridgell 3512ea792f AP_ESC_Telem: support set_rpm_scale() call for scripting 2022-09-13 07:48:19 +10:00
Iampete1 d066588c91 AC_Fence: always clear breaches 2022-09-12 08:57:42 +09:00
olliw42 64b1277a66 AP_Mount: storm integrates find_by_mavtype_and_compid
Note that this forces users to set their gimbal's component id while before any component id was acceptable
2022-09-12 08:44:38 +09:00
Randy Mackay 7c9b487779 AP_Mount: gremsy integrates find_by_mavtype_and_compid 2022-09-12 08:44:38 +09:00
olliw42 c034f8a099 GCS_MAVLink: add find_by_mavtype_and_compid 2022-09-12 08:44:38 +09:00
Iampete1 64d9413871 hwdef: Hitec-Airspeed: disable UART to save flash 2022-09-11 14:02:18 +10:00
Andrew Tridgell a0530a4816 hwdef: fixed FlyingmoonF427 servo rail voltage 2022-09-11 08:29:12 +10:00
Andrew Tridgell ee5fc4ad8e AP_Airspeed: use row_times_mat 2022-09-11 07:57:16 +10:00
Andrew Tridgell 0d7da89ef1 SITL: fixed rotation of airspeed in tailsitters in FlightAxis 2022-09-11 07:57:16 +10:00
Andrew Tridgell 5470c6435e AP_Math: rename * operator for vector3f * matrix3f 2022-09-11 07:57:16 +10:00
Michael du Breuil 5282dba42a GCS_MAVLink: Rate limit blocking accel calibrations
This allows us to drop any queued commands that may have arrived while
we were calibrating. Rather then entering a second and unexpected
calibration.
2022-09-09 08:52:14 +10:00
Andrew Tridgell dd89d68107 hwdef: added AtomRC F405 board 2022-09-09 07:14:51 +10:00
Iampete1 f3dc805978 AP_Motors: Block Spoolup: stop advance from ground idle 2022-09-07 17:03:03 +01:00
Andy Piper 2de992dcf1 AP_ESC_Telem: avoid FPE on macos
use floats for rpm in API calls
2022-09-07 17:03:03 +01:00
Randy Mackay ff91bbd762 AP_Motors: add spoolup block 2022-09-07 17:03:03 +01:00
Andy Piper b9280630f5 AP_ESC_Telem: add are_motors_running() based on rpm feedback
add spin armed rpm to SITL
use floats for rpm in API calls
implement is_telemetry_active()
simulate ESC telemetry in SITL
2022-09-07 17:03:03 +01:00
Andy Piper ab64480d2b SITL: add spin armed rpm 2022-09-07 17:03:03 +01:00
Iampete1 e72e5a2751 AP_Motors: add pre-arm check 2022-09-07 17:54:16 +10:00
Michael du Breuil ff94ef1c60 GCS_MAVLink: Check for mission space before sending items 2022-09-07 17:52:23 +10:00
Randy Mackay 152ef7f78f AP_Mission: do-gimbal-manager-pitchyaw command supports multiple gimbals 2022-09-07 16:09:07 +09:00
Randy Mackay f932add7ea AP_Mount: mav-cmd-do-gimbal-manager-pitchyaw supports multiple gimbals 2022-09-07 16:09:07 +09:00
Randy Mackay 73d817b985 AP_Mount: add access for primary instance 2022-09-07 16:09:07 +09:00
Randy Mackay 76096899ac AP_Mount: add 2nd instance 2022-09-07 16:09:07 +09:00
Michael du Breuil 0c73da5e79 AP_Logger: Strictly handle NACK/ACK
This is a change in bevaiour. The previous behaviour was to check for a
NACK, and if it wasn't a NACK it was assumed to be an ACK. This is a bad
assumption to let people get away with, because in the future if we ever
add other options to the enum we are more likely to have to cope with
bad implementation in the wild
2022-09-07 10:25:30 +10:00
Randy Mackay 93f62e5abe Tools: SilentWings param file MNT updates
These parameters have been renamed but they were always the defaults
2022-09-06 13:53:25 +09:00
Randy Mackay c072a201bc AP_Mount: param conversion for MNT to MNT1 2022-09-06 13:53:25 +09:00
Randy Mackay 66a8775895 AP_Mount: remove param set of MNT1_TYPE to 1 if servo outputs defined 2022-09-06 13:53:25 +09:00
Randy Mackay c20ec27c54 AP_Mount: parameter angles in degrees
Also MNTx_RC_RATE param per backend
2022-09-06 13:53:25 +09:00
Randy Mackay ac769baa3c AP_Mount: Servo mount's STAB params replaced by BrushlessPWM type 2022-09-06 13:53:25 +09:00
Randy Mackay 0d9526f1c5 AP_Mount: replace RC input params with RC options 2022-09-06 13:53:25 +09:00
Randy Mackay cc67d6f73c RC_Channel: define mount roll, pitch and yaw inputs 2022-09-06 13:53:25 +09:00
chobitsfan 43105249cb PrecLand: support LANDING_TARGET ext field 2022-09-06 12:10:21 +09:00
Andrew Tridgell b7b02bd369 AP_Rangefinder: fixed out of range issue with benewake uart lidars
this impacts the TF03 180m lidar
2022-09-06 12:34:41 +10:00
Shiv Tyagi 7d3f013695 AR_PosControl: add accessor for reversed 2022-09-06 11:23:51 +09:00
Shiv Tyagi d982c28ef2 AR_WPNav: add accessors for accel and jerk limits 2022-09-06 11:23:51 +09:00
Andrew Tridgell e1c006c25d AP_Math: added double_to_int32 and double_to_uint32 2022-09-06 10:49:50 +10:00
Andrew Tridgell 3c232d1f67 SITL: fixes from --ubsan autotest 2022-09-06 10:49:50 +10:00
Andrew Tridgell 53997a284b AP_HAL_SITL: fixes from --ubsan autotest 2022-09-06 10:49:50 +10:00
Andrew Tridgell b44a084a1e AP_Frsky_Telem: fixes from --ubsan autotest 2022-09-06 10:49:50 +10:00
Andrew Tridgell c2b29a92c7 AP_ExternalAHRS: fixes from --ubsan autotest 2022-09-06 10:49:50 +10:00
Andrew Tridgell 286ea7499b AP_MSP: use BIT_IS_SET_64()
the bitmask is 64 bits wide
2022-09-06 10:49:50 +10:00
Andrew Tridgell cda3fb6368 AP_Common: added BIT_IS_SET_64() 2022-09-06 10:49:50 +10:00
Andrew Tridgell 4ed55d9e21 Filter: fixed out of bound access in ModeFilter 2022-09-06 10:49:50 +10:00
Iampete1 60a75a0973 AP_Scripting: examaples move to : acsess 2022-09-06 10:39:35 +10:00
Iampete1 5b2236e88c AP_Scripting: Manual bindings: allow both : and . acsess 2022-09-06 10:39:35 +10:00
Henry Wurzburg 2c8c037b93 SRV_Channel:Correct metadata mistake in PR #21347 2022-09-06 10:35:14 +10:00
Willian Galvani 5ed2785dfa AP_HAL_Linux: create GPIO_Navigator 2022-09-06 09:34:07 +10:00
Willian Galvani 710cbacef7 RCOutput_PC9685: refactor write/write_gpio 2022-09-06 09:34:07 +10:00
Willian Galvani 603bc5ecce RCOutput_PCA9685: implement gpio methods 2022-09-06 09:34:07 +10:00
Willian Galvani 018ab14814 RC_Output.h: add gpio methods 2022-09-06 09:34:07 +10:00
Andy Piper d82ba1b7a3 AP_HAL_ChibiOS: use faster SPI clock for BMI270 on MambaH743 and KakuteH7v2 2022-09-06 09:31:21 +10:00
Andy Piper fcbaa0969e AP_InertialSensor: synchronize BMI70 on fifo reads 2022-09-06 09:31:21 +10:00
Henry Wurzburg d31f6c2f57 AP_GPS: remove incorrect build option on GPS_DRV_OPTIONS param 2022-09-05 12:48:51 +10:00
AerofoxTech b9b158216b hwdef: add AeroFox Airspeed periph 2022-09-05 12:36:11 +10:00
Andrew Tridgell f8b1169165 HAL_ChibiOS: rename ecc_raw to apsec_data 2022-09-05 12:35:37 +10:00
Andrew Tridgell 36e9f9b7d1 AP_CheckFirmware: rename secure data to apsec_data 2022-09-05 12:35:37 +10:00
Andrew Tridgell f899a47429 HAL_ChibiOS: removed debug msg 2022-09-05 12:35:37 +10:00
Andrew Tridgell 30ed94c73c hwdef: disable UARTS in MatekL431 bootloader
this saves a lot of flash, and UARTs are not needed in the
bootloader. It means we can fit a bootloader with signing for ESC
based RemoteID support
2022-09-05 12:35:37 +10:00
Andrew Tridgell 39595d36be AP_CheckFirmware: allow an unsigned bootloader to boot a signed firmware
this is important to provide an upgrade path for AP_Periph from
unsigned to signed. It means a bootloader with no public keys can
still check the board ID and CRCs of the signed firmware
2022-09-05 12:35:37 +10:00
Andrew Tridgell bf511640cf AP_CheckFirmware: added check_signed_bootloader() 2022-09-05 12:35:37 +10:00
Andrew Tridgell b79f3caf86 GCS_MAVLINK: report on unsigned bootloader flash attempt 2022-09-05 12:35:37 +10:00
Andrew Tridgell b74c9b5862 HAL_ChibiOS: protect against flashing bootloader without public keys 2022-09-05 12:35:37 +10:00
Andrew Tridgell a6c5e38c5a AP_HAL: added NOT_SIGNED error code 2022-09-05 12:35:37 +10:00
Andrew Tridgell 2c6418a920 AP_HAL: fixed linux build 2022-09-05 12:35:37 +10:00
Andrew Tridgell 1f4db8204b AP_CheckFirmware: support updating or removing public keys
this supports fetching, updating and removing public keys using the
SECURE_COMMAND mavlink operations. This will allow for vendors to
remotely hand over management of RemoteID security to new vendors
2022-09-05 12:35:37 +10:00
Andrew Tridgell 611f26f16c GCS_MAVLink: support SECURE_COMMAND 2022-09-05 12:35:37 +10:00
Andrew Tridgell 029947efc7 AP_CheckFirmware: allow for boot if no public keys
this will allow for SECURE_UPDATE command to unlock bootloader
2022-09-05 12:35:37 +10:00
Jeffrey Laut 3133aff352 SITL: fix simulated RC failure while receiving RC overrides 2022-09-02 12:08:34 +10:00
Peter Barker b580c873a8 AP_IOMCU: log number of errors reading status page 2022-09-02 11:16:52 +10:00
Peter Barker 605f42947e AP_IOMCU: log regardless of success reading status page 2022-09-02 11:16:52 +10:00
Peter Barker 0be9c83692 AP_IOMCU: break logging out as a method 2022-09-02 11:16:52 +10:00
Leonard Hall f3cd5a9a38 AC_PosControl: Fix slow target decay decay problem 2022-09-02 09:02:46 +09:00
Leonard Hall af54acd202 AC_WPNav: AC_Loiter: Fix loiter level bug 2022-09-02 09:02:46 +09:00
Leonard Hall 4a12faea92 AC_PosControl: Make get_z_accel_cmss public 2022-08-31 19:19:04 -04:00
Mohammad Hefny a8bf2c0141 fix: baro same driver multi-definition 2022-09-01 08:39:43 +10:00
Peter Barker 1fea941fdb AC_Fence: correct compilation when fence compiled out 2022-09-01 08:25:55 +10:00
Peter Barker a9a3de8f20 AP_Logger: correct compilation when fence compiled out 2022-09-01 08:25:55 +10:00
TunaLobster f28f5a1ad5 SRV_Channel: Add SRV fucntions for scaled RC passthrough 2022-08-31 17:05:39 +10:00
Iampete1 da5ec973c5 AP_Scripting: add error message buffer semaphore 2022-08-31 17:04:24 +10:00
Iampete1 e3931a6f56 AP_Scripting: add debug option to disable pre-arm 2022-08-31 17:04:24 +10:00
Iampete1 bbcb7b5827 AP_Scripting: move to common status text "Scripting:" prefix to save flash 2022-08-31 17:04:24 +10:00
Iampete1 e2c29b09ab AP_Scripting: add arming check for failed scripts 2022-08-31 17:04:24 +10:00
Iampete1 c5c09860da AP_Arming: move scripting checks to scripting 2022-08-31 17:04:24 +10:00
Andrew Tridgell d7710e5ccf HAL_ChibiOS: make it easy to debug secure boot on Nucleo-G491 2022-08-31 10:14:25 +10:00
Shiv Tyagi 8bd26dffac AC_PrecLand: rotate target vector based on sensor orient
Since, the frontend takes care of rotating sensor frame target vector to body frame, the  sitl backend should return unit
vector in sensor frame instead of body frame. This is to have homogeneity among backends.
2022-08-30 03:44:26 -04:00
Shiv Tyagi bc3ff20871 AC_PrecLand: add _ORIENT param to precland library
The orient parameter will help us construct a direction of approach vector in vehicle body frame. This vector would help
us rotate the target vector from sensor frame to body frame and determine the horizontal position error of vehicle for
more orientations than just PITCH_270
2022-08-30 03:44:26 -04:00
esaldiran bbeef1a5cd AC_CustomControl: add README 2022-08-30 13:10:09 +10:00
esaldiran 618164fea4 AC_CustomControl: add PID backend 2022-08-30 13:10:09 +10:00
esaldiran 8eeb4227f7 RC_Channel: add custom controller aux func 2022-08-30 13:10:09 +10:00
esaldiran 4abb6725a8 AC_CustomControl: add empty controller backend as a template 2022-08-30 13:10:09 +10:00
esaldiran c5787a0165 AC_CustomControl: add custom controller support 2022-08-30 13:10:09 +10:00
Andrew Tridgell 13453f705e AP_RPM: added AP_Generator support
useful for notch filtering of generator vibration
2022-08-30 10:53:45 +10:00
Andrew Tridgell a06d163ef0 GCS_MAVLink: refuse DFU for secure firmware 2022-08-30 10:51:06 +10:00
Andrew Tridgell b808351f2a hwdef: enable DFU on some boards 2022-08-30 10:51:06 +10:00
bugobliterator cee8a638f8 AP_HAL: set default HAL_ENABLE_DFU_BOOT 2022-08-30 10:51:06 +10:00
bugobliterator eb116849c6 AP_HAL_ChibiOS: add LED Bootloader in CubeOrange and related boards 2022-08-30 10:51:06 +10:00
bugobliterator f31d915e14 GCS_MAVLink: add support for booting into dfu 2022-08-30 10:51:06 +10:00
bugobliterator 441ce2e593 AP_HAL: add util method boot_to_dfu() 2022-08-30 10:51:06 +10:00
Andrew Tridgell c70643f0e7 AP_CheckFirmware: added monocypher 2022-08-30 10:51:06 +10:00
bugobliterator d434038b26 AP_CheckFirmare: add support for signed firmwares 2022-08-30 10:51:06 +10:00
bugobliterator 0c78f8bac2 AP_HAL_ChibiOS: add support for booting into DFU 2022-08-30 10:51:06 +10:00
Henry Wurzburg d420ba0edd HWDEF: correct default params file and readme for SPR H7 2022-08-30 10:27:25 +10:00
Randy Mackay 2bcb503170 AP_Mount: allow users to disable yaw on 3-axis gimbals
Also fixes 3-axis gimbal support for SToRM32 serial and MAVLink gimbals
2022-08-30 10:05:09 +10:00
Andy Piper a560d1f2cc AP_Vehicle: update notch count. 2022-08-30 10:03:31 +10:00
Andy Piper 28d0086a97 AP_ESC_Telem: don't provide zero udpates for ESCs that have never been used 2022-08-30 10:03:31 +10:00
Andy Piper acb318fcab AP_HAL_ChibiOS: rename KakuteH7Miniv2 to kakuteH7Mini-Nand 2022-08-30 09:52:41 +10:00
Joshua Henderson a93b887f5f AP_BattMonitor: move read_block up to SMBus base class 2022-08-30 09:09:54 +10:00
Iampete1 fb86318848 AC_Fence: always declare AC_PolyFenceItem 2022-08-30 09:07:27 +10:00
Iampete1 fc2bc2822e AP_Logger: MessageWriter: convert enums to enum class's 2022-08-30 09:07:27 +10:00
Iampete1 3d5bbb72ab AC_PolyFence_loader: log fence on sucsesful write 2022-08-30 09:07:27 +10:00
Iampete1 d020dd2923 AC_Fence: add log structure 2022-08-30 09:07:27 +10:00
Iampete1 47853383b1 AP_Logger: add fence message writer 2022-08-30 09:07:27 +10:00
bugobliterator c7ebd00ff9 AP_HAL_ChibiOS: disable RCIN and RCOUT threads on HiTec-Airspeed 2022-08-28 11:43:01 +10:00
Andrew Tridgell df56d8a8dd AP_ESC_Telem: don't default ESC telem on for AP_Periph
require it to be enabled specifically. Otherwise we end up with ESC
status msgs in GPS modules
2022-08-28 11:43:01 +10:00
Henry Wurzburg 83a45661f1 AP_SerialManager: generalize EFI serial protocol name 2022-08-28 08:12:48 +10:00
Joshua Henderson bbbf0b9718 AP_Scripting: VTOL-quiktune add back param for AUTO_FILTER 2022-08-26 16:45:45 +10:00
Joshua Henderson 82ece34981 AP_Scripting: VTOL-quiktune add param for RC script function 2022-08-26 16:45:45 +10:00
Randy Mackay 83c9a76260 AP_Mount: send warning to GCS on invalid GPS or angle targets
This hopefully will help catch cases where the GCS relied on a bug in 4.2 (and earlier's) handling of MAV_CMD_DO_MOUNT_CONTROL
2022-08-25 20:28:06 -04:00
Randy Mackay 022d610519 AP_Mount: separate handling of mount-control and do-mount-control 2022-08-25 20:28:06 -04:00
Randy Mackay ff1624d4a0 GCS_MAVLink: MOUNT_CONFIGURE and MOUNT_CONTROL send deprecation warnings 2022-08-25 20:28:06 -04:00
Peter Barker 46aebe3020 AP_OpticalFlow: allow use of OpticalFlow on SimOnHardWare 2022-08-24 18:27:32 +10:00
rishabsingh3003 6926466d88 AP_Proximity: Fix comments 2022-08-24 18:26:27 +10:00
rishabsingh3003 6e603418eb AP_Proximity: Remove primary_instance 2022-08-24 18:26:27 +10:00
rishabsingh3003 3a347374c8 AP_Proximity: Cycle through all drivers to check for upward distance 2022-08-24 18:26:27 +10:00
rishabsingh3003 5d29dd98c1 AP_Proximity: Make new Utils file for PRX utility functions 2022-08-24 18:26:27 +10:00
rishabsingh3003 7cd77f266e AP_Arming: shift pre-arm check to AP_Proximity 2022-08-24 18:26:27 +10:00
rishabsingh3003 f0f24dde99 AP_Proximity: Make sure all sensors are used for pre arm check 2022-08-24 18:26:27 +10:00
rishabsingh3003 b0108f2c0c AP_Proximity: Increase number of available proximity sensor 2022-08-24 18:26:27 +10:00
Randy Mackay 0cbba4fdd0 AP_Proximity: distance_min/max checks all backends 2022-08-24 18:26:27 +10:00
Randy Mackay 1f0a633425 AP_Proximity: fixup handle_msg comment 2022-08-24 18:26:27 +10:00
Randy Mackay 7dbbca8d58 AP_Proximity: remove public get_orientation and get_yaw_correction
this are only used by backends
2022-08-24 18:26:27 +10:00
Randy Mackay 965cdd7e72 AP_Proximity: fixup detection of serial drivers 2022-08-24 18:26:27 +10:00
Randy Mackay 826cf558eb AP_Proximity: log if any drivers created
allows logging even if only 2nd proximity sensor is configured
2022-08-24 18:26:27 +10:00
Randy Mackay 436f77d673 AP_Proximity: boundary uses shortest dist from multiple backends
Co-authored-by: Rishabh <f20171602@hyderabad.bits-pilani.ac.in>
2022-08-24 18:26:27 +10:00
Randy Mackay 3941598a10 GCS_MAVlink: integrate proximity-distance-array scope change 2022-08-24 18:26:27 +10:00
Randy Mackay 7432a20394 AP_Proximity: move boundary to frontend
Co-authored-by: Rishabh <f20171602@hyderabad.bits-pilani.ac.in>
2022-08-24 18:26:27 +10:00
Randy Mackay eff86c88ab AP_Proximity: reorder method declarations and implementations 2022-08-24 18:26:27 +10:00
Randy Mackay b6d133e285 AP_Proximity: reduce ignore areas to 4 per backend 2022-08-24 18:26:27 +10:00
Randy Mackay 5fbaa4f136 SITL: integrate PRX parameter rename 2022-08-24 18:26:27 +10:00
Randy Mackay 6025b1dcaa AP_Proximity: move params to separate class
simplies increasing the maximum number of backends
2022-08-24 18:26:27 +10:00
Andrew Tridgell c05b7271c4 AP_OpenDroneID: fixed cpp check for cygwin 2022-08-24 18:08:40 +10:00
Randy Mackay 119c8b7363 AP_Mount: get_angle_target_to_location checks for valid location 2022-08-24 18:07:08 +10:00
Andy Piper 41c319e257 AP_Declination: avoid undefined floating point exceptions on macOS when using implicit casts 2022-08-24 17:34:17 +10:00
Andy Piper 16b1a28cc9 AP_HAL_ChibiOS: bdshot version of MatekF405-Wing 2022-08-24 17:20:15 +10:00
Henry Wurzburg 61b0f23ee2 SRV_Channel: add ARM/MOTOR_EMERGENCY_STOP Aux Switch 2022-08-24 16:03:52 +10:00
Henry Wurzburg 451ed0aede RC_Channel: add ARM/MOTOR_EMERGENCY_STOP Aux Switch 2022-08-24 16:03:52 +10:00
Andrew Tridgell 8014f96235 AP_GPS: fixed handling of DroneCAN GPS without vertical velocity
detect first vertical velocity to set flag
2022-08-23 11:17:06 +10:00
Andrew Tridgell 3fdae69413 AP_Arming: allow arming with BRD_IO_ENABLE=0 2022-08-23 10:46:29 +10:00
Andrew Tridgell 9d1adae141 HAL_ChibiOS: fixed safety control with BRD_IO_ENABLE=0 2022-08-23 10:46:29 +10:00
Iampete1 08b458c995 AP_Scripting: add Quadplane low altitude forward flight mode aplet 2022-08-23 10:17:48 +10:00
rishabsingh3003 5af59abb8f AP_Proximity: Add orientation param to Cygbot 2022-08-22 19:12:45 -04:00
Peter Barker c0ae7fa5f6 SITL: examples: sitl-on-hw.sh add -m for more defaults 2022-08-23 09:01:30 +10:00
Peter Barker d7d7bb6e77 SITL: allow sitl-on-hw.sh to be invoked from any directory 2022-08-23 09:01:30 +10:00
Randy Mackay adac463154 AR_Motors: remove arming check to allow ackerman and skid-steering 2022-08-22 07:46:50 -04:00
Peter Barker 0665f9c32b AP_NavEKF3: store and use lastKnownPositionD
When returning our last-known-position we were supplying lat/lng but not
altitude.

This usually really doesn't matter as this result generally isn't used,
especially for altitude.  OTOH, it may prevent a bug into the future.
2022-08-22 19:48:03 +10:00
Henry Wurzburg c5451260ac SRV_Channel: add airbrake option metadata omitted in prev commits 2022-08-21 17:34:03 -07:00
Henry Wurzburg 7014fde866 RC_Channel: add airbrake option metadata omitted in prev commits 2022-08-21 17:34:03 -07:00
Andrew Tridgell 9a453bfc82 APM_Control: removed use of "blended" earth frame accel 2022-08-21 18:51:59 +10:00
Andrew Tridgell 56bb13420d AC_AttitudeControl: removed use of "blended" earth frame accel 2022-08-21 18:51:59 +10:00
Andrew Tridgell f80ba734c8 AP_AHRS: removed use of "blended" accel values
calculate a single EF accel based on primary IMU
2022-08-21 18:51:59 +10:00
Andrew Tridgell 924759510d AP_AHRS: fixed use of filtered gyro with DCM active
we need to overwrite _omega with the filtered gyro value, so we get
both the low pass filter and the notch filters. Otherwise we will fly
with very high noise gyro data

this also fixes the accel_ef_blended to use the filtered accel. It is
not blended, and removing "_blended" from the API will be worthwhile
as a followup
2022-08-21 18:51:59 +10:00
Peter Barker 19973f783b AP_Module: correct ModuleTest example for lack of GCS object 2022-08-19 18:34:19 +10:00
Peter Barker f0fc23bdcb AP_Scheduler: fix examples 2022-08-19 18:33:58 +10:00
Peter Barker 402d9708a5 AP_RCProtocol: fix examples 2022-08-19 18:33:58 +10:00
Peter Barker 03ce5f62d2 AP_RangeFinder: fix examples 2022-08-19 18:33:58 +10:00
Peter Barker 8a035590cd AP_FlashIface: fix examples 2022-08-19 18:33:58 +10:00
Steve Borenstein 95370ce74f Outgoing ARM message over MAVLINK 2022-08-19 11:36:14 +10:00
Iampete1 b399ed3044 AP_Scripting: unint32: remove integer range check 2022-08-19 10:29:39 +10:00
Peter Barker 6756c295df AP_Mission: add AP_Mission_config.h 2022-08-18 22:49:10 +10:00
Peter Barker 1e8e100409 AP_Terrain: rename HAL_MISSION_ENABLED to AP_MISSION_ENABLED 2022-08-18 22:49:10 +10:00
Peter Barker f9b409ce01 AP_Mission: rename HAL_MISSION_ENABLED to AP_MISSION_ENABLED 2022-08-18 22:49:10 +10:00
Peter Barker bf5817e108 AP_Logger: rename HAL_MISSION_ENABLED to AP_MISSION_ENABLED 2022-08-18 22:49:10 +10:00
Peter Barker e4bc7a0ef5 AP_HAL_ChibiOS: rename HAL_MISSION_ENABLED to AP_MISSION_ENABLED 2022-08-18 22:49:10 +10:00
Peter Barker 936fef11e2 AP_Filesystem: rename HAL_MISSION_ENABLED to AP_MISSION_ENABLED 2022-08-18 22:49:10 +10:00
Shiv Tyagi 5ff268fa97 AC_PrecLand: return target distance if enabled from SIM_Precland
For rover, we cant measure distance towards target using a rangefinder. Hence, we should must return target distance if enabled through SIM_Precland.
2022-08-18 22:47:43 +10:00
Shiv Tyagi 8411b2ec03 SITL: add param in SIM_Precland to enable return dist to target 2022-08-18 22:47:43 +10:00
nrt c3d8f0fa45 AP_AHRS: added a getter function to get active source set once the ekf3 filter is started 2022-08-18 02:05:27 -04:00
nrt 5decc08dd4 AP_NavEKF: added a getter function for active source set 2022-08-18 02:05:27 -04:00
nrt 0c65cd1b47 AP_NavEKF3: added a getter function to infer the source index used by ekf3 2022-08-18 02:05:27 -04:00
nrt 2c58206a75 AP_Scripting: added Lua example demonstrating the use of active source set 2022-08-18 02:05:27 -04:00
Peter Barker 35ab667e74 RC_Channel: rename OpticalFlow class to AP_OpticalFlow
Brings us in-line with other classes in ArduPilot.

Removes ambiguity with AP_HAL::OpticalFlow which can cause compilation errors as we start to make code more portable across targets
2022-08-18 14:24:01 +10:00
Peter Barker cd98fcec87 GCS_MAVLink: rename OpticalFlow class to AP_OpticalFlow
Brings us in-line with other classes in ArduPilot.

Removes ambiguity with AP_HAL::OpticalFlow which can cause compilation errors as we start to make code more portable across targets
2022-08-18 14:24:01 +10:00
Peter Barker 20f73ad55e AP_Scripting: rename OpticalFlow class to AP_OpticalFlow
Brings us in-line with other classes in ArduPilot.

Removes ambiguity with AP_HAL::OpticalFlow which can cause compilation errors as we start to make code more portable across targets
2022-08-18 14:24:01 +10:00
Peter Barker e45f938056 AP_OpticalFlow: rename OpticalFlow class to AP_OpticalFlow
Brings us in-line with other classes in ArduPilot.

Removes ambiguity with AP_HAL::OpticalFlow which can cause compilation errors as we start to make code more portable across targets
2022-08-18 14:24:01 +10:00
Peter Barker c95ff4b82b AP_MSP: rename OpticalFlow class to AP_OpticalFlow
Brings us in-line with other classes in ArduPilot.

Removes ambiguity with AP_HAL::OpticalFlow which can cause compilation errors as we start to make code more portable across targets
2022-08-18 14:24:01 +10:00
Peter Barker 4139b7a548 AP_AHRS: rename OpticalFlow class to AP_OpticalFlow
Brings us in-line with other classes in ArduPilot.

Removes ambiguity with AP_HAL::OpticalFlow which can cause compilation errors as we start to make code more portable across targets
2022-08-18 14:24:01 +10:00
Peter Barker 9b1b06fd95 hwdef: remove ICEngine support from many boards
Ran out of room on omnibusf4pro-bdshot.

Removed ICEngine in the same place we were removing OpticalFlow
2022-08-17 17:40:21 +10:00
Peter Barker dc8862822f AP_HAL_ChibiOS: remove unused HAL_RCIN_PULSE_PPM_ONLY define 2022-08-17 17:39:15 +10:00
Peter Barker b76e2316bb AP_HAL: do not gate AP_CRASHDUMP_ENABLED on bootloader
Also rename from HAL_CRASHDUMP_ENABLE

Removes code based on define rather than creating empty functions.  Makes it clearer what's going on in the callers.
2022-08-17 17:34:00 +10:00
Peter Barker 4ca0f35943 AP_HAL_ChibiOS: do not gate AP_CRASHDUMP_ENABLED on bootloader
Also rename from HAL_CRASHDUMP_ENABLE

Removes code based on define rather than creating empty functions.  Makes it clearer what's going on in the callers.
2022-08-17 17:34:00 +10:00
Peter Barker 680d158f59 AP_Filesystem: do not gate AP_CRASHDUMP_ENABLED on bootloader
Also rename from HAL_CRASHDUMP_ENABLE

Removes code based on define rather than creating empty functions.  Makes it clearer what's going on in the callers.
2022-08-17 17:34:00 +10:00
Iampete1 259e70b2b1 AC_Fence: add options param on plane 2022-08-17 17:21:30 +10:00
Iampete1 e7cb949f5f AC_Fence: plane needs larger circle backup distance 2022-08-17 17:21:30 +10:00
Iampete1 df6a5f0e0d AP_Scripting: reuse uint32 dev operation for idiv 2022-08-17 17:18:26 +10:00
Iampete1 2c8a11885f AP_Scripting: Boxed numerics and maunal bindings use generated arg checker 2022-08-17 17:18:26 +10:00
Randy Mackay 63db93c6d7 AP_Proximity: minor format fix 2022-08-17 10:46:57 +09:00
Randy Mackay 1dd2fb695c AP_Proximity: minor format fix 2022-08-17 10:46:56 +09:00
murata f3da373beb SRV_Channel: Change the minimum value of minimum PWM for servo output 2022-08-17 09:58:52 +10:00
Henry Wurzburg db496cf256 AP_Airspeed: correct metadata in libraries failing checks on emitter 2022-08-16 11:50:11 +10:00
Henry Wurzburg eb3f80da7c AP_ADSB: correct metadata in libraries failing checks on emitter 2022-08-16 11:50:11 +10:00
Henry Wurzburg ec95f10b81 AC_WPNav: correct metadata in libraries failing checks on emitter 2022-08-16 11:50:11 +10:00
Henry Wurzburg 33ececf782 AC_AttitudeControl: correct metadata in libraries failing checks on emitter 2022-08-16 11:50:11 +10:00
Randy Mackay 1a54236862 GCS_MAVLink: forward mav-cmd-do-gimbal-manager-pitchyaw to AP_Mount 2022-08-15 20:29:25 -04:00
Randy Mackay c8996c04e1 GCS_MAVLink: replace send-mount-status with send-gimbal-device-attitude-status 2022-08-15 20:29:25 -04:00
Randy Mackay b4979e2cfa AP_Mount: replace send-mount-status with send-gimbal-device-attitude-status 2022-08-15 20:29:25 -04:00
Peter Barker e948f79db8 AP_Vehicle: move call to compass cal update up to AP_Vehicle 2022-08-16 10:06:44 +10:00
Michael du Breuil f5ca2c9e7a AP_Mission: Support storing VTOL_LAND options 2022-08-15 17:05:00 -07:00
Peter Barker 6fc7209c69 AP_OSD: add required include
Was getting APM_BUILD_COPTER_OR_HELI  transitively
2022-08-16 09:45:51 +10:00
Peter Barker a4186f6884 AP_Arming: remove intermediate method check_severity
this was using an undeclared dependency on GCS_MAVLINK.h
2022-08-16 09:45:51 +10:00
Peter Barker 1b13dd053b AP_NavEKF3: use send_mesage for sending status report 2022-08-16 09:45:51 +10:00
Peter Barker 35c2653a87 GCS_MAVLink: stop using GCS_MAVLINK.h in header files
... by passing through a reference to a link object instead
2022-08-16 09:45:51 +10:00
Peter Barker 0443c8561b AP_NavEKF3: stop using GCS_MAVLINK.h in header files
... by passing through a reference to a link object instead
2022-08-16 09:45:51 +10:00
Peter Barker c46a50f428 AP_NavEKF2: stop using GCS_MAVLINK.h in header files
... by passing through a reference to a link object instead
2022-08-16 09:45:51 +10:00
Peter Barker 74e651e5d7 AP_ExternalAHRS: stop using GCS_MAVLINK.h in header files
... by passing through a reference to a link object instead
2022-08-16 09:45:51 +10:00
Peter Barker a840af1ff5 AP_Airspeed: stop using GCS_MAVLINK.h in header files 2022-08-16 09:45:51 +10:00
Peter Barker cfb391dc2c AP_AHRS: stop using GCS_MAVLINK.h in header files
... by passing through a reference to a link object instead
2022-08-16 09:45:51 +10:00
Peter Barker 59c6207a47 AP_HAL_ChibiOS: enable hardware debugging pins in SimOnHardware parameters 2022-08-16 09:39:03 +10:00
Peter Barker be0ce8c90a hwdef: make NucleoH743 SimOnHW by default
A user doesn't necessarily want to attach an IMU/baro to use their nucleo
2022-08-16 09:39:03 +10:00
Peter Barker 441d83f05e hwdef: split SimOnHW.inc from CubeOrange-SimOnHW config
makes this easier to reuse on other boards
2022-08-16 09:39:03 +10:00
TunaLobster 01035b81b3 AP_HAL_ChibiOS: Add macros for Fuel options
Adds macros for FuelFlow, FuelLevel_PWM, and FuelLevel_Analog. The features are enabled on all 2MB boards.
2022-08-16 09:36:31 +10:00
TunaLobster aa2c6b8d17 AP_BattMonitor: Add macros for Fuel options
Adds macros for FuelFlow, FuelLevel_PWM, and FuelLevel_Analog. The features are enabled on all 2MB boards.
2022-08-16 09:36:31 +10:00
TunaLobster 6733f75542 AP_BattMonitor: Add Fuel Level Analog driver 2022-08-16 09:36:31 +10:00
Peter Barker ecde9f8c3f AP_HAL_ChibiOS: make HAL_FLASH_PROTECTION a boolean, stop checking for definition 2022-08-16 08:10:16 +10:00
Andrew Tridgell b6186db24e AP_OpenDroneID: report if we lose operator location 2022-08-15 12:45:06 +10:00
Andrew Tridgell a9d97d90c4 hwdef: removed APP_DESCRIPTOR settings
not needed
2022-08-15 09:18:34 +10:00
Andrew Tridgell 8b9570975b hwdef: added AP_OPENDRONEID_ENABLED to hwdef-bl.dat 2022-08-15 09:18:34 +10:00
Andrew Tridgell a8ab7c3865 HAL_ChibiOS: auto-define AP_CHECK_FIRMWARE_ENABLED for AP_Periph 2022-08-15 09:18:34 +10:00
Andrew Tridgell f7e4b5c72d AP_Vehicle: use AP_CheckFirmware 2022-08-15 09:18:34 +10:00
Andrew Tridgell aeb6d2ab89 AP_CheckFirmware: added library for checking firmware ID and CRC 2022-08-15 09:18:34 +10:00
Andrew Tridgell 68f05c7386 AP_OpenDroneID: added AP_OpenDroneID_config.h 2022-08-15 09:18:34 +10:00
Andrew Tridgell 673fed92c7 AP_OpenDroneID: fixed checking of payload space
this fixes DroneCAN operation without a mavlink channel set
2022-08-15 08:54:48 +10:00
Peter Barker d092e767ea AP_Common: correct gtests
AFAIK it's invalid to new a zero-length array.
2022-08-15 07:39:39 +10:00
Andrew Tridgell 2a95ced697 GCS_MAVLINK: pass OPEN_DRONE_ID_SYSTEM_UPDATE to library 2022-08-14 22:02:43 +10:00
Andrew Tridgell b52c280704 AP_OpenDroneID: check available tx space and fixed message rates
ensure we don't lose messages due to lack of serial TX space, and
fixed update rate of LOCATION and SYSTEM_UPDATE msgs
2022-08-14 22:02:43 +10:00
Andrew Tridgell 0fc6c813a1 AP_OpenDroneID: implement OPEN_DRONE_ID_SYSTEM_UPDATE
this is a bandwidth efficient way to update the OPEN_DRONE_ID_SYSTEM message data when there is limited uplink bandwidth. Testing on real vehicles shows that with RFD900x radios at an air data rate of 125kbit/s with OPEN_DRONE_ID messages with 1Hz update (as required by FAA RemoteID standard) that there is significant impact on the ability of the GCS to give commands to the flight controller. For example, I got a high degree of packet loss in downloading parameter pre-flight, and many/most in-flight commands failed from the GCS.
By using this message we can use the minimum required bandwidth for updating operator location while remaining FAA RemoteID standard compliant
2022-08-14 22:02:43 +10:00
Peter Barker 26d3ffc27d GCS_MAVLink: correct INS_generic example
segfaults due to lack of singletoin objects in examples
2022-08-13 20:53:29 +10:00
Peter Barker a4773413e4 AP_InertialSensor: correct INS_generic example
segfaults due to lack of singletoin objects in examples
2022-08-13 20:53:29 +10:00
Andy Piper 3521090dd5 AP_HAL_ChibiOS: correct HAL_SPI_CHECK_CLOCK_FREQ build error 2022-08-12 20:53:36 +10:00
Andy Piper a6312ac893 AP_InertialSensor: correctly detect bad frames on regular ICM42xxx 2022-08-12 20:53:36 +10:00
Andy Piper 2b7bb84838 AP_HAL_ChibiOS: increase ICM42xxx SPI clock to 16Mhz on MatekH743 2022-08-12 20:53:36 +10:00
Andy Piper 221ab9752e AP_InertialSensor: synchronise fifo reads on the ICM42xxx 2022-08-12 20:53:36 +10:00
Peter Barker 48fd37cd25 AP_DroneID: add missing element to constructor 2022-08-11 21:06:04 +01:00
Peter Barker 67a87800f9 AP_OpenDroneID: correct compilation under gcc 7.5.0 2022-08-11 13:31:59 +10:00
Peter Barker f345c16fda AP_Math: add dignostic message for SCurve internal error 2022-08-10 22:18:42 +10:00
Peter Barker 5b3a6daa7b AP_Mission: rename contains_terrain_relative->contains_terrain_alt_items
can we rename "constains_terrain_relative" to "contains_terrain_alt"? No big deal of course but "terrain_alt" is what we use in Copter so it's more likely to show up in searches.
2022-08-10 18:04:22 +10:00
Peter Barker 6709c6d72d AP_Arming: rename contains_terrain_relative->contains_terrain_alt_items
can we rename "constains_terrain_relative" to "contains_terrain_alt"? No big deal of course but "terrain_alt" is what we use in Copter so it's more likely to show up in searches.
2022-08-10 18:04:22 +10:00
Peter Barker 1c7e2f5094 AP_HAL_SITL: correct bind-value SIM_RC_FAIL handling
If SITL is not receiving any sitl rc input (so _sitl_rc_in.recv(...) is allways returns -1 then the bind-values code would never be crossed so the RC input values would remain at their initialisation values rather than honouring the SIM_RC_FAIL setting which says they should go to bind values (notably throttle-to-950)
2022-08-10 17:14:21 +10:00
bugobliterator fce49232b2 hwdef: disable power reset on peripheral line 2022-08-10 17:06:29 +10:00
Andrew Tridgell cdf8cad801 AP_GPS: fixed undulation for DroneCAN GPS 2022-08-10 05:04:18 +10:00
Andrew Tridgell 74a66ede95 AP_OpenDroneID: prevent sending of lost transmitter msg too fast 2022-08-10 05:04:18 +10:00
Andrew Tridgell 0e037c99f3 hwdef: support moving baseline yaw with Holybro G4 CAN GPS 2022-08-09 21:05:08 +10:00
Andrew Tridgell 6c3de20569 hwdef: support moving baseline GPS yaw on MatekL431-Periph 2022-08-09 21:04:37 +10:00
Shiv Tyagi 998119d011 SITL: fix var naming for precland device center 2022-08-09 18:00:11 +10:00
Andrew Tridgell 23744819dc hwdef: added two OpenDroneID enabled builds 2022-08-09 14:37:08 +10:00
Andrew Tridgell 9ce11159b0 AP_UAVCAN: support OpenDroneID 2022-08-09 14:37:08 +10:00
Joshua Henderson ed47b10e0c AP_Arming: add OpenDroneID Mandatory Arming Check 2022-08-09 14:37:08 +10:00
Roel Schiphorst 3bd792295c GCS_MAVLINK: add OpenDroneID messages 2022-08-09 14:37:08 +10:00
Joshua Henderson c52ae2edb4 AP_Vehicle: add OpenDroneID library 2022-08-09 14:37:08 +10:00
Roel Schiphorst d346633996 AP_OpenDroneID: add OpenDrone ID library 2022-08-09 14:37:08 +10:00
Joshua Henderson 378dff5568 AP_GPS: added get_undulation support 2022-08-09 14:37:08 +10:00
Peter Barker 541cfa022b AP_Terrain: fix bad prearms-pass-when-they-shouldn't issue
The squares surrounding the current location were only checked when we went to send a terrain request.  This means it was possible that:
 - the number of pending requests could go to zero
 - prearm checks would pass
 - vehicle arm is attempted by the user (or a script, or ....)
 - the code would call AP_Terrain::send_requests which would create more pending requests
 - the arming sequence would fail

It's also possible for the arming to succeed, and then we're flying in violation of the intended prearm checks.

Doing things in the update function has the additional advantage of making things more efficient as we can push out terrain requests more often.
2022-08-09 14:31:14 +10:00
Peter Barker c2d91a3bdb AP_Mission: mark mission as changed upon mission clear 2022-08-09 14:31:14 +10:00
Peter Barker 50fb56a74f AP_Mission: memoise result of contains_terrain_relative
527 items takes ~2200us on CubeOrange which is way too long
2022-08-09 14:31:14 +10:00
Peter Barker 4c674b64fb AP_Terrain: correct wait-for-terrain prearm check
looking at pending is insufficient as we may have more mission items to check to see if they need other pieces of terrain.  That is, terr_pending can go to zero momentarily and then go back to a non-zero number as Terrain's update method checks the mission and rally libraries for more terrain requirements.

Without this patch the prearm checks can momentarily pass, allowing the vehicle to arm.  The vehicle could hit a terrain failsafe later if it doesn't manage to get the data while in flight.
2022-08-09 14:31:14 +10:00
Peter Barker d688e6068b AP_Terrain: move terrain prearm checks to AP_Terrain 2022-08-09 14:31:14 +10:00
Peter Barker 96ef34acac AP_Arming: move terrain prearm checks to AP_Terrain 2022-08-09 14:31:14 +10:00