记录无人机的外设模拟


(gdb) p hal_sitl_inst
$7 = {<AP_HAL::HAL> = {_vptr.HAL = 0x555555ad9690 <vtable for HAL_SITL+16>,
    i2c_mgr = 0x555555b1d410 <i2c_mgr_instance>, spi = 0x555555b1d418 <spi_mgr_instance>,
    wspi = 0x555555b006c0 <wspi_mgr_instance>, analogin = 0x555555b1c630 <sitlAnalogIn>,
    storage = 0x555555b17ea0 <sitlStorage>, console = 0x555555b1c660 <sitlSerial0Driver>, gpio = 0x555555b1c610 <sitlGPIO>,
    rcin = 0x555555b1c588 <sitlRCInput>, rcout = 0x555555b1c5a0 <sitlRCOutput>,
    scheduler = 0x555555b1c540 <sitlScheduler>, util = 0x555555b1d420 <utilInstance>,
    opticalflow = 0x555555b006b0 <emptyOpticalFlow>, flash = 0x555555b006b8 <emptyFlash>,
    dsp = 0x555555b006a8 <dspDriver>, can = {0x0, 0x0}, static num_serial = 10 '\n', serial_array = {
      0x555555b1c660 <sitlSerial0Driver>, 0x555555b1c7c0 <sitlSerial1Driver>, 0x555555b1c920 <sitlSerial2Driver>,
      0x555555b1ca80 <sitlSerial3Driver>, 0x555555b1cbe0 <sitlSerial4Driver>, 0x555555b1cd40 <sitlSerial5Driver>,
      0x555555b1cea0 <sitlSerial6Driver>, 0x555555b1d000 <sitlSerial7Driver>, 0x555555b1d160 <sitlSerial8Driver>,
      0x555555b1d2c0 <sitlSerial9Driver>}, simstate = 0x555555b1c640 <xsimstate>},
  _sitl_state = 0x555555b1c040 <sitlState>, storage_posix_enabled = true, storage_flash_enabled = false,
  storage_fram_enabled = false, wipe_storage = false}

sitlRCOutput

 (gdb) p *hal_sitl_inst.rcout
$9 = {_vptr.RCOutput = 0x555555ad9898 <vtable for HALSITL::RCOutput+16>, static DSHOT_ZERO_THROTTLE = 48 '0',
  static ALL_CHANNELS = 255, static DSHOT_BIT_WIDTH_TICKS_DEFAULT = 8, static DSHOT_BIT_0_TICKS_DEFAULT = 3,
  static DSHOT_BIT_1_TICKS_DEFAULT = 6, static DSHOT_BIT_WIDTH_TICKS_S = 11, static DSHOT_BIT_0_TICKS_S = 4,
  static DSHOT_BIT_1_TICKS_S = 8, static NEOP_BIT_WIDTH_TICKS = 8, static NEOP_BIT_0_TICKS = 2,
  static NEOP_BIT_1_TICKS = 6, static PROFI_BIT_0_TICKS = 7, static PROFI_BIT_1_TICKS = 14,
  static PROFI_BIT_WIDTH_TICKS = 20, static LED_OUTPUT_PERIOD_US = 10000, _esc_pwm_min = 1000, _esc_pwm_max = 2000}

/////////////////////////

Old value = 1000
New value = 1001
SRV_Channel::set_output_pwm (this=0x555555b0a1b8 <copter+36952>, pwm=1001, force=false) at ../../libraries/SRV_Channel/SRV_Channel.cpp:251
251             have_pwm_mask |= (1U<<ch_num);
(gdb) bt
#0  SRV_Channel::set_output_pwm (this=0x555555b0a1b8 <copter+36952>, pwm=1001, force=false)
    at ../../libraries/SRV_Channel/SRV_Channel.cpp:251
#1  0x0000555555728796 in SRV_Channels::set_output_pwm (function=SRV_Channel::k_motor1, value=1001)
    at ../../libraries/SRV_Channel/SRV_Channel_aux.cpp:360
#2  0x0000555555819260 in AP_Motors::rc_write (this=0x555555bad4f0, chan=0 '\000', pwm=1001)
    at ../../libraries/AP_Motors/AP_Motors_Class.cpp:103
#3  0x000055555581a249 in AP_MotorsMatrix::output_to_motors (this=0x555555bad4f0)
    at ../../libraries/AP_Motors/AP_MotorsMatrix.cpp:181
#4  0x000055555581cc5f in AP_MotorsMulticopter::output (this=0x555555bad4f0)
    at ../../libraries/AP_Motors/AP_MotorsMulticopter.cpp:287
#5  0x00005555555e68e5 in Mode::output_to_motors (this=0x555555b0e888 <copter+55080>) at ../../ArduCopter/mode.cpp:1003
#6  0x000055555560578e in Copter::motors_output (this=0x555555b01160 <copter>, full_push=true)
    at ../../ArduCopter/motors.cpp:108
#7  0x00005555556057fd in Copter::motors_output_main (this=0x555555b01160 <copter>) at ../../ArduCopter/motors.cpp:125
#8  0x00005555555d2319 in Functor<void>::method_wrapper<Copter, &Copter::motors_output_main> (

////////

核心状态量(24 状态)

struct state_elements {
    QuaternionF quat;        // 姿态四元数 (4)
    Vector3F velocity;       // NED 速度 (3)
    Vector3F position;       // NED 位置 (3)
    Vector3F gyro_bias;      // 陀螺零偏 (3)
    Vector3F accel_bias;     // 加计零偏 (3)
    Vector3F earth_magfield; // 地球磁场 NED (3)
    Vector3F body_magfield;  // 机体磁场 XYZ (3)
    Vector2F wind_vel;       // 风速 NE (2)
};

(gdb) p dal
$38 = (AP_DAL &) @0x555555b4b920: {_RFRH = {time_us = 106937208, time_flying_ms = 54505, _end = 0 '\000'}, _RFRF = {frame_types = 8 '\b',
    core_slow = 0 '\000', _end = 0 '\000'}, _RFRN = {lat = -353632621, lng = 149165237

(gdb) p hal
$37 = (const AP_HAL::HAL &) @0x555555b1c920: {_vptr.HAL = 0x555555ad8690 <vtable for HAL_SITL+16>, i2c_mgr = 0x555555b1c410 <i2c_mgr_instance>,
  spi = 0x555555b1c418 <spi_mgr_instance>, wspi = 0x555555aff6c0 <wspi_mgr_instance>, analogin = 0x55

(gdb) p AP_GPS::get_singleton()->state[0].location.alt
$55 = 68406

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值