diff --git a/src/drivers/iridiumsbd/IridiumSBD.cpp b/src/drivers/iridiumsbd/IridiumSBD.cpp index d3345159d3..46ecc5c55e 100644 --- a/src/drivers/iridiumsbd/IridiumSBD.cpp +++ b/src/drivers/iridiumsbd/IridiumSBD.cpp @@ -276,7 +276,7 @@ void IridiumSBD::standby_loop(void) // check for incoming SBDRING, handled inside read_at_command() read_at_command(); - if (param_read_interval_s != 0 && (hrt_absolute_time() - last_read_time) / 1000000 > param_read_interval_s) { + if (param_read_interval_s != 0 && ((int64_t)(hrt_absolute_time() - last_read_time) > param_read_interval_s * 1000000)) { rx_session_pending = true; } @@ -456,7 +456,7 @@ ssize_t IridiumSBD::write(struct file *filp, const char *buffer, size_t buflen) { if (verbose) { PX4_INFO("WRITE: LEN %d, TX WRITTEN: %d", buflen, tx_buf_write_idx); } - if (buflen > SATCOM_TX_BUF_LEN - tx_buf_write_idx) { + if ((ssize_t)buflen > SATCOM_TX_BUF_LEN - tx_buf_write_idx) { return PX4_ERROR; } diff --git a/src/drivers/iridiumsbd/IridiumSBD.h b/src/drivers/iridiumsbd/IridiumSBD.h index 809280c46b..3389a6603a 100644 --- a/src/drivers/iridiumsbd/IridiumSBD.h +++ b/src/drivers/iridiumsbd/IridiumSBD.h @@ -99,7 +99,7 @@ public: bool task_should_exit = false; int uart_fd = -1; - int param_read_interval_s; + int32_t param_read_interval_s; hrt_abstime last_signal_check = 0; uint8_t signal_quality = 0;