From edf16d432b4928b0d287cb970429be929d063a25 Mon Sep 17 00:00:00 2001
From: Stephen D <webmaster@scd31.com>
Date: Sat, 2 Dec 2023 15:44:06 -0400
Subject: [PATCH] show node info

---
 Cargo.lock  |  2 +-
 src/util.rs | 43 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 44 insertions(+), 1 deletion(-)

diff --git a/Cargo.lock b/Cargo.lock
index 28f8dd1..16cf146 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -631,7 +631,7 @@ dependencies = [
 [[package]]
 name = "ham-cats"
 version = "0.1.0"
-source = "git+https://gitlab.scd31.com/cats/ham-cats#25ed83d5eb68cd54f438f487c37f9059cd464e87"
+source = "git+https://gitlab.scd31.com/cats/ham-cats#2662fd88ededffad2598ece932a58e1049325aaa"
 dependencies = [
  "arrayvec",
  "bitvec",
diff --git a/src/util.rs b/src/util.rs
index 2f8fd9a..bded3e2 100644
--- a/src/util.rs
+++ b/src/util.rs
@@ -71,6 +71,49 @@ pub fn print_packet(pkt: &Packet<MAX_PACKET_LEN>, rssi: Option<f64>) {
             gps.heading()
         );
     }
+
+    if let Some(info) = pkt.node_info() {
+        match (info.hardware_id(), info.software_id()) {
+            (Some(hw), Some(sw)) => {
+                println!(
+                    "{} \t{hw:#06x} {} {sw:#04x}",
+                    "HW:".color(color),
+                    "SW:".color(color)
+                );
+            }
+            (Some(hw), None) => {
+                println!("{} \t{hw:#06x}", "SW:".color(color));
+            }
+            (None, Some(sw)) => {
+                println!("{} \t{sw:#04x}", "SW:".color(color));
+            }
+            (None, None) => {}
+        }
+
+        if let Some(uptime) = info.uptime() {
+            println!("{} \t{} s", "UTIME:".color(color), uptime);
+        }
+
+        if let Some(a_height) = info.antenna_height() {
+            println!("{} \t{} m", "VERT:".color(color), a_height);
+        }
+
+        if let Some(a_gain) = info.antenna_gain() {
+            println!("{} \t{} dBi", "GAIN:".color(color), a_gain);
+        }
+
+        if let Some(power) = info.tx_power() {
+            println!("{} \t{} dBm", "TXP:".color(color), power);
+        }
+
+        if let Some(volts) = info.voltage() {
+            println!("{} \t{} V", "VOLTS:".color(color), volts);
+        }
+
+        if let Some(temp) = info.xcvr_temperature() {
+            println!("{} \t{} C", "TEMP:".color(color), temp);
+        }
+    }
 }
 
 pub fn attempt_decode<'a>(
-- 
GitLab