diff --git a/libraries/SITL/SIM_RF_Ainstein_LR_D1.h b/libraries/SITL/SIM_RF_Ainstein_LR_D1.h index 849979f3dc..8d5b4d3a85 100644 --- a/libraries/SITL/SIM_RF_Ainstein_LR_D1.h +++ b/libraries/SITL/SIM_RF_Ainstein_LR_D1.h @@ -44,6 +44,8 @@ namespace SITL { class RF_Ainstein_LR_D1 : public SerialRangeFinder { public: + static SerialRangeFinder *create() { return NEW_NOTHROW RF_Ainstein_LR_D1(); } + uint32_t packet_for_alt(uint16_t alt_cm, uint8_t *buffer, uint8_t buflen) override; uint16_t reading_interval_ms() const override { return 100; } diff --git a/libraries/SITL/SIM_RF_BLping.h b/libraries/SITL/SIM_RF_BLping.h index 762e5de961..dd1a742f7e 100644 --- a/libraries/SITL/SIM_RF_BLping.h +++ b/libraries/SITL/SIM_RF_BLping.h @@ -36,6 +36,8 @@ namespace SITL { class RF_BLping : public SerialRangeFinder { public: + static SerialRangeFinder *create() { return NEW_NOTHROW RF_BLping(); } + uint32_t packet_for_alt(uint16_t alt_cm, uint8_t *buffer, uint8_t buflen) override; }; diff --git a/libraries/SITL/SIM_RF_Benewake_TF02.h b/libraries/SITL/SIM_RF_Benewake_TF02.h index 3d9604559c..9f89648aec 100644 --- a/libraries/SITL/SIM_RF_Benewake_TF02.h +++ b/libraries/SITL/SIM_RF_Benewake_TF02.h @@ -37,6 +37,8 @@ namespace SITL { class RF_Benewake_TF02 : public RF_Benewake { public: + static SerialRangeFinder *create() { return NEW_NOTHROW RF_Benewake_TF02(); } + // see AP_RangeFinder_Benewake.cpp for definitions uint8_t byte4() const override { return 1; } // strength low-bits uint8_t byte5() const override { return 1; } // strength high-bits diff --git a/libraries/SITL/SIM_RF_Benewake_TF03.h b/libraries/SITL/SIM_RF_Benewake_TF03.h index cd01419e33..8fed67c5e2 100644 --- a/libraries/SITL/SIM_RF_Benewake_TF03.h +++ b/libraries/SITL/SIM_RF_Benewake_TF03.h @@ -36,6 +36,8 @@ namespace SITL { class RF_Benewake_TF03 : public RF_Benewake { public: + static SerialRangeFinder *create() { return NEW_NOTHROW RF_Benewake_TF03(); } + // see AP_RangeFinder_Benewake.cpp for definitions uint8_t byte4() const override { return 0; } // reserved uint8_t byte5() const override { return 0; } // reserved diff --git a/libraries/SITL/SIM_RF_Benewake_TFmini.h b/libraries/SITL/SIM_RF_Benewake_TFmini.h index 5589b5f303..5089af55b2 100644 --- a/libraries/SITL/SIM_RF_Benewake_TFmini.h +++ b/libraries/SITL/SIM_RF_Benewake_TFmini.h @@ -36,6 +36,8 @@ namespace SITL { class RF_Benewake_TFmini : public RF_Benewake { public: + static SerialRangeFinder *create() { return NEW_NOTHROW RF_Benewake_TFmini(); } + // see AP_RangeFinder_Benewake.cpp for definitions uint8_t byte4() const override { return 1; } // strength L uint8_t byte5() const override { return 1; } // strength H diff --git a/libraries/SITL/SIM_RF_GYUS42v2.h b/libraries/SITL/SIM_RF_GYUS42v2.h index 7188cd30f9..2226cb9ff5 100644 --- a/libraries/SITL/SIM_RF_GYUS42v2.h +++ b/libraries/SITL/SIM_RF_GYUS42v2.h @@ -36,6 +36,8 @@ namespace SITL { class RF_GYUS42v2 : public SerialRangeFinder { public: + static SerialRangeFinder *create() { return NEW_NOTHROW RF_GYUS42v2(); } + uint32_t packet_for_alt(uint16_t alt_cm, uint8_t *buffer, uint8_t buflen) override; // TODO: work this out diff --git a/libraries/SITL/SIM_RF_JRE.h b/libraries/SITL/SIM_RF_JRE.h index 4dbdbfe2c0..ae237dc201 100644 --- a/libraries/SITL/SIM_RF_JRE.h +++ b/libraries/SITL/SIM_RF_JRE.h @@ -37,6 +37,8 @@ namespace SITL { class RF_JRE : public SerialRangeFinder { public: + static SerialRangeFinder *create() { return NEW_NOTHROW RF_JRE(); } + uint32_t packet_for_alt(uint16_t alt_cm, uint8_t *buffer, uint8_t buflen) override; private: diff --git a/libraries/SITL/SIM_RF_Lanbao.h b/libraries/SITL/SIM_RF_Lanbao.h index d773287a3e..e55d78d685 100644 --- a/libraries/SITL/SIM_RF_Lanbao.h +++ b/libraries/SITL/SIM_RF_Lanbao.h @@ -36,6 +36,8 @@ namespace SITL { class RF_Lanbao : public SerialRangeFinder { public: + static SerialRangeFinder *create() { return NEW_NOTHROW RF_Lanbao(); } + uint32_t packet_for_alt(uint16_t alt_cm, uint8_t *buffer, uint8_t buflen) override; }; diff --git a/libraries/SITL/SIM_RF_LeddarOne.h b/libraries/SITL/SIM_RF_LeddarOne.h index 21f74ac8a7..e8e55a5821 100644 --- a/libraries/SITL/SIM_RF_LeddarOne.h +++ b/libraries/SITL/SIM_RF_LeddarOne.h @@ -36,6 +36,8 @@ namespace SITL { class RF_LeddarOne : public SerialRangeFinder { public: + static SerialRangeFinder *create() { return NEW_NOTHROW RF_LeddarOne(); } + uint32_t packet_for_alt(uint16_t alt_cm, uint8_t *buffer, uint8_t buflen) override; }; diff --git a/libraries/SITL/SIM_RF_LightWareSerial.h b/libraries/SITL/SIM_RF_LightWareSerial.h index 686b448bcf..ad4a21a952 100644 --- a/libraries/SITL/SIM_RF_LightWareSerial.h +++ b/libraries/SITL/SIM_RF_LightWareSerial.h @@ -36,6 +36,8 @@ namespace SITL { class RF_LightWareSerial : public SerialRangeFinder { public: + static SerialRangeFinder *create() { return NEW_NOTHROW RF_LightWareSerial(); } + uint32_t packet_for_alt(uint16_t alt_cm, uint8_t *buffer, uint8_t buflen) override; void update(float range) override; diff --git a/libraries/SITL/SIM_RF_LightWareSerialBinary.h b/libraries/SITL/SIM_RF_LightWareSerialBinary.h index 0454fb2890..03175cc492 100644 --- a/libraries/SITL/SIM_RF_LightWareSerialBinary.h +++ b/libraries/SITL/SIM_RF_LightWareSerialBinary.h @@ -36,6 +36,8 @@ namespace SITL { class RF_LightWareSerialBinary : public SerialRangeFinder { public: + static SerialRangeFinder *create() { return NEW_NOTHROW RF_LightWareSerialBinary(); } + uint32_t packet_for_alt(uint16_t alt_cm, uint8_t *buffer, uint8_t buflen) override; }; diff --git a/libraries/SITL/SIM_RF_MAVLink.h b/libraries/SITL/SIM_RF_MAVLink.h index 9d901ba75a..31ddf087ed 100644 --- a/libraries/SITL/SIM_RF_MAVLink.h +++ b/libraries/SITL/SIM_RF_MAVLink.h @@ -36,6 +36,8 @@ namespace SITL { class RF_MAVLink : public SerialRangeFinder { public: + static SerialRangeFinder *create() { return NEW_NOTHROW RF_MAVLink(); } + uint32_t packet_for_alt(uint16_t alt_cm, uint8_t *buffer, uint8_t buflen) override; private: diff --git a/libraries/SITL/SIM_RF_MaxsonarSerialLV.h b/libraries/SITL/SIM_RF_MaxsonarSerialLV.h index d23a865f7f..cf0854afc7 100644 --- a/libraries/SITL/SIM_RF_MaxsonarSerialLV.h +++ b/libraries/SITL/SIM_RF_MaxsonarSerialLV.h @@ -36,6 +36,8 @@ namespace SITL { class RF_MaxsonarSerialLV : public SerialRangeFinder { public: + static SerialRangeFinder *create() { return NEW_NOTHROW RF_MaxsonarSerialLV(); } + uint32_t packet_for_alt(uint16_t alt_cm, uint8_t *buffer, uint8_t buflen) override; }; diff --git a/libraries/SITL/SIM_RF_NMEA.h b/libraries/SITL/SIM_RF_NMEA.h index 4ba8feaf61..e2e483453a 100644 --- a/libraries/SITL/SIM_RF_NMEA.h +++ b/libraries/SITL/SIM_RF_NMEA.h @@ -37,6 +37,8 @@ namespace SITL { class RF_NMEA : public SerialRangeFinder { public: + static SerialRangeFinder *create() { return NEW_NOTHROW RF_NMEA(); } + uint32_t device_baud() const override { return 9600; } uint32_t packet_for_alt(uint16_t alt_cm, uint8_t *buffer, uint8_t buflen) override; diff --git a/libraries/SITL/SIM_RF_NoopLoop.h b/libraries/SITL/SIM_RF_NoopLoop.h index 1ee56d1528..f6f075c299 100644 --- a/libraries/SITL/SIM_RF_NoopLoop.h +++ b/libraries/SITL/SIM_RF_NoopLoop.h @@ -25,6 +25,8 @@ namespace SITL { class RF_Nooploop : public SerialRangeFinder { public: + static SerialRangeFinder *create() { return NEW_NOTHROW RF_Nooploop(); } + uint32_t packet_for_alt(uint16_t alt_cm, uint8_t *buffer, uint8_t buflen) override; }; diff --git a/libraries/SITL/SIM_RF_RDS02UF.h b/libraries/SITL/SIM_RF_RDS02UF.h index 17e7e3fe52..ec7d2dc154 100644 --- a/libraries/SITL/SIM_RF_RDS02UF.h +++ b/libraries/SITL/SIM_RF_RDS02UF.h @@ -37,6 +37,8 @@ namespace SITL { class RF_RDS02UF : public SerialRangeFinder { public: + static SerialRangeFinder *create() { return NEW_NOTHROW RF_RDS02UF(); } + uint32_t packet_for_alt(uint16_t alt_cm, uint8_t *buffer, uint8_t buflen) override; }; diff --git a/libraries/SITL/SIM_RF_TeraRanger_Serial.h b/libraries/SITL/SIM_RF_TeraRanger_Serial.h index 31544f9138..2eff5ecbe1 100644 --- a/libraries/SITL/SIM_RF_TeraRanger_Serial.h +++ b/libraries/SITL/SIM_RF_TeraRanger_Serial.h @@ -31,6 +31,8 @@ namespace SITL { class RF_TeraRanger_Serial : public SerialRangeFinder { public: + static SerialRangeFinder *create() { return NEW_NOTHROW RF_TeraRanger_Serial(); } + uint32_t packet_for_alt(uint16_t alt_cm, uint8_t *buffer, uint8_t buflen) override; diff --git a/libraries/SITL/SIM_RF_USD1_v0.h b/libraries/SITL/SIM_RF_USD1_v0.h index 7a3498adb6..e21f8d566b 100644 --- a/libraries/SITL/SIM_RF_USD1_v0.h +++ b/libraries/SITL/SIM_RF_USD1_v0.h @@ -36,6 +36,8 @@ namespace SITL { class RF_USD1_v0 : public RF_USD1 { public: + static SerialRangeFinder *create() { return NEW_NOTHROW RF_USD1_v0(); } + uint32_t packet_for_alt(uint16_t alt_cm, uint8_t *buffer, uint8_t buflen) override; }; diff --git a/libraries/SITL/SIM_RF_USD1_v1.h b/libraries/SITL/SIM_RF_USD1_v1.h index d2982e2cb8..d602618f3e 100644 --- a/libraries/SITL/SIM_RF_USD1_v1.h +++ b/libraries/SITL/SIM_RF_USD1_v1.h @@ -36,6 +36,8 @@ namespace SITL { class RF_USD1_v1 : public RF_USD1 { public: + static SerialRangeFinder *create() { return NEW_NOTHROW RF_USD1_v1(); } + uint32_t packet_for_alt(uint16_t alt_cm, uint8_t *buffer, uint8_t buflen) override; }; diff --git a/libraries/SITL/SIM_RF_Wasp.h b/libraries/SITL/SIM_RF_Wasp.h index a1e9b37acf..4e0ca2c02e 100644 --- a/libraries/SITL/SIM_RF_Wasp.h +++ b/libraries/SITL/SIM_RF_Wasp.h @@ -36,6 +36,8 @@ namespace SITL { class RF_Wasp : public SerialRangeFinder { public: + static SerialRangeFinder *create() { return NEW_NOTHROW RF_Wasp(); } + void update(float range) override; uint32_t packet_for_alt(uint16_t alt_cm, uint8_t *buffer, uint8_t buflen) override;