StatusUpdateManager.swift
Purpose
StatusUpdateManager.swift is a centralized singleton manager that tracks and serializes runtime sensor status for MetaWear and Sensoria devices. It serves as a bridge between native sensor handlers and Flutter, helping present real-time device status.
Singleton Pattern
static let shared = StatusUpdateManager()
Used app-wide to access live status data from any part of the iOS native layer.
Key Properties
var metaWearData = StatusUpdateMetaWearData()
var sensoriaData = StatusUpdatSensoriaData()
metaWearData: Holds live status fields for MetaWear devices.sensoriaData: Same for Sensoria smart garments.
Core Methods
getMetaWearCurrentStatus(deviceIndex:)
func getMetaWearCurrentStatus(deviceIndex: Int) -> String
Returns a JSON string representing the device’s current runtime state.
Delegates JSON building to
StatusUpdateMetaWearData.
getSensoriaCurrentStatus(deviceIndex:)
func getSensoriaCurrentStatus(deviceIndex: Int) -> String
Mirrors the MetaWear version for Sensoria garments.
JSON Utility
static func serializeToJson(_ statusMap: [String: Any]) -> String
Converts a key-value
statusMapinto a well-formed JSON string.Logs serialized output for debugging.
Returns a JSON string or error message if serialization fails.
Example:
{
"battery": 92,
"streaming": true,
"lastUpdate": "2025-07-17T18:00:00Z"
}
Integration
Sensor handlers populate
metaWearDataandsensoriaDatafields.When Flutter queries for status, these methods provide serialized snapshots.
Ensures real-time visibility and fault tracing for BLE sensors.