diff --git a/monitor/broadcom.c b/monitor/broadcom.c
index d2304e2..475a248 100644
--- a/monitor/broadcom.c
+++ b/monitor/broadcom.c
packet_print_handle(handle);
}
+static void print_rssi(int8_t rssi)
+{
+ packet_print_rssi(rssi);
+}
+
static void print_sco_routing(uint8_t routing)
{
const char *str;
print_clock_setting(clock);
}
+static void read_raw_rssi_cmd(const void *data, uint8_t size)
+{
+ uint16_t handle = get_le16(data);
+
+ print_handle(handle);
+}
+
+static void read_raw_rssi_rsp(const void *data, uint8_t size)
+{
+ uint8_t status = get_u8(data);
+ uint16_t handle = get_le16(data + 1);
+ int8_t rssi = get_s8(data + 3);
+
+ print_status(status);
+ print_handle(handle);
+ print_rssi(rssi);
+}
+
static void write_ram_cmd(const void *data, uint8_t size)
{
uint32_t addr = get_le32(data);
{ 0x045, "Write UART Clock Setting",
write_uart_clock_setting_cmd, 1, true,
status_rsp, 1, true },
+ { 0x048, "Read Raw RSSI",
+ read_raw_rssi_cmd, 2, true,
+ read_raw_rssi_rsp, 4, true },
{ 0x04c, "Write RAM",
write_ram_cmd, 4, false,
status_rsp, 1, true },
diff --git a/monitor/packet.c b/monitor/packet.c
index 942470f..7705d2e 100644
--- a/monitor/packet.c
+++ b/monitor/packet.c
print_handle_native(handle);
}
+void packet_print_rssi(int8_t rssi)
+{
+ print_rssi(rssi);
+}
+
void packet_print_ad(const void *data, uint8_t size)
{
print_eir(data, size, true);
diff --git a/monitor/packet.h b/monitor/packet.h
index e957384..03279e1 100644
--- a/monitor/packet.h
+++ b/monitor/packet.h
void packet_print_company(const char *label, uint16_t company);
void packet_print_addr(const char *label, const void *data, bool random);
void packet_print_handle(uint16_t handle);
+void packet_print_rssi(int8_t rssi);
void packet_print_ad(const void *data, uint8_t size);
void packet_print_features_lmp(const uint8_t *features, uint8_t page);
void packet_print_features_ll(const uint8_t *features);