Add Debug page and fix BLE communication issues

Major changes:
- Added Debug tab with real-time message logging and hex viewer
- Implemented timed data logging ($UMTDL command) per API v1.3
- Fixed BLE message parsing to handle notifications without line endings
- Added Schema 2 support (22-field timed logging packets)
- Updated Maglink BLE UUIDs (fff0/fff1/fff2)
- Added connection timeout (10s) to prevent hanging on unavailable devices
- Added connection status display and manual push-button logging trigger
- Improved retry logging with attempt numbers and delays
- Added console window allocation for Windows debug output
- Added BLE disconnect on app close

Bug fixes:
- Fixed device name filtering for Maglink (ML-* prefix)
- Fixed RtkGps enum reference in DeviceScanViewModel
- Fixed DebugMessage namespace (moved to Models)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
brentperteet
2026-07-06 17:32:00 -05:00
parent b602b762c9
commit 299ec3875d
19 changed files with 608 additions and 27 deletions

View File

@@ -0,0 +1,24 @@
namespace FieldLogger.Models;
public class DebugMessage
{
public DateTime Timestamp { get; set; }
public string Direction { get; set; } = "";
public string RawMessage { get; set; } = "";
public string Type { get; set; } = "";
public string? ParsedData { get; set; }
public string TypeColor { get; set; } = "Gray";
public bool HasParsedData => !string.IsNullOrEmpty(ParsedData);
public string HexBytes
{
get
{
if (string.IsNullOrEmpty(RawMessage))
return "[empty]";
var bytes = System.Text.Encoding.ASCII.GetBytes(RawMessage);
return BitConverter.ToString(bytes).Replace("-", " ");
}
}
}