Browse Source

AP_DAL: added standalone link test

useful to check for clean linking of EKF2/EKF3

Co-authored-by: Peter Barker <pbarker@barker.dropbear.id.au>
c415-sdk
Andrew Tridgell 4 years ago
parent
commit
fa75824948
  1. 67
      libraries/AP_DAL/examples/AP_DAL_Standalone/main.cpp
  2. 24
      libraries/AP_DAL/examples/AP_DAL_Standalone/wscript

67
libraries/AP_DAL/examples/AP_DAL_Standalone/main.cpp

@ -0,0 +1,67 @@ @@ -0,0 +1,67 @@
//
// Ensure that AP_NavEKF3 can be compiled when not linked to anything
// except the DAL.
//
#include <AP_DAL/AP_DAL.h>
#include <AP_NavEKF3/AP_NavEKF3.h>
#include <AP_Logger/AP_Logger.h>
void AP_Param::setup_object_defaults(void const*, AP_Param::GroupInfo const*) {}
int AP_HAL::Util::vsnprintf(char*, unsigned long, char const*, va_list) { return -1; }
void *nologger = nullptr;
AP_Logger &AP::logger() {
return *((AP_Logger*)nologger); // this is not usually a good idea...
}
void AP_Logger::WriteBlock(void const*, unsigned short) {}
class AP_HAL_DAL_Standalone : public AP_HAL::HAL {
public:
AP_HAL_DAL_Standalone() :
AP_HAL::HAL(
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr
) {}
void run(int argc, char* const argv[], Callbacks* callbacks) const override {}
void setup() { }
void loop() { }
};
AP_HAL_DAL_Standalone _hal;
const AP_HAL::HAL &hal = _hal;
NavEKF2 navekf2;
NavEKF3 navekf3;
int main(int argc, const char *argv[])
{
navekf2.InitialiseFilter();
navekf3.InitialiseFilter();
navekf2.UpdateFilter();
navekf3.UpdateFilter();
return navekf2.healthy() && navekf3.healthy()?0:1;
}

24
libraries/AP_DAL/examples/AP_DAL_Standalone/wscript

@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
#!/usr/bin/env python
# encoding: utf-8
def build(bld):
bld.ap_stlib(
name='AP_DAL' + '_libs',
ap_vehicle='AP_DAL_Standalone',
ap_libraries=[
'AP_NavEKF2',
'AP_NavEKF3',
'AP_NavEKF',
'AP_Common',
'AP_Math',
'AP_DAL',
'AP_InternalError',
'AP_Declination',
'AP_RTC',
],
)
bld.ap_program(
program_groups=['examples'],
use='AP_DAL_libs',
)
Loading…
Cancel
Save