diff --git a/quad/src/virt_quad/hw_impl_unix.c b/quad/src/virt_quad/hw_impl_unix.c index d3607f17e16deffee36a4cefe64a6b0a55f15943..e1dbcf9e2469368ce7d14fc0b2bd8ed857f790bf 100644 --- a/quad/src/virt_quad/hw_impl_unix.c +++ b/quad/src/virt_quad/hw_impl_unix.c @@ -28,6 +28,7 @@ struct RCReceiverDriver create_unix_rc_receiver() { struct I2CDriver create_unix_i2c() { struct I2CDriver i2c; i2c.state = NULL; + i2c.busId = 0; i2c.reset = unix_i2c_reset; i2c.write = unix_i2c_write; i2c.read = unix_i2c_read; diff --git a/quad/src/virt_quad/main.c b/quad/src/virt_quad/main.c index 0937f9f9a299c6e14cda1a6f2e48948ab17effeb..9b0c676afb405b3adee7b1adeb6eefc549c66644 100644 --- a/quad/src/virt_quad/main.c +++ b/quad/src/virt_quad/main.c @@ -32,6 +32,7 @@ void help_sub_command(char *argv[]); */ int setup_hardware(hardware_t *hardware) { hardware->i2c_0 = create_unix_i2c(); + hardware->i2c_1 = create_unix_i2c(); hardware->rc_receiver = create_unix_rc_receiver(); hardware->motors = create_unix_motors(); hardware->uart = create_unix_uart(); @@ -40,7 +41,7 @@ int setup_hardware(hardware_t *hardware) { hardware->mio7_led = create_unix_mio7_led(); hardware->sys = create_unix_system(); hardware->imu = create_unix_imu(&hardware->i2c_0); - hardware->lidar = create_unix_lidar(&hardware->i2c_0); + hardware->lidar = create_unix_lidar(&hardware->i2c_1); hardware->of = create_unix_optical_flow(&hardware->i2c_0); return 0; } @@ -121,6 +122,7 @@ void open_new_shm_io() { pthread_mutex_init(&virt_quad_io->led_lock, &attr); pthread_mutex_init(&virt_quad_io->motors_lock, &attr); pthread_mutex_init(&virt_quad_io->rc_lock, &attr); + pthread_mutex_init(&virt_quad_io->i2c_lock, &attr); } void open_existing_shm_io() {