1 contributor
66 lines | 2.618kb
//
//  LiveView.swift
//  USB Meter
//
//  Created by Bogdan Timofte on 09/03/2020.
//  Copyright © 2020 Bogdan Timofte. All rights reserved.
//

import SwiftUI

struct LiveView: View {
    
    @EnvironmentObject private var meter: Meter

    var body: some View {
        VStack {
            Text("Live Data")
                .font(.headline)
            HStack {
                VStack (alignment: .leading) {
                    Text("Voltage:")
                    Text("Current:")
                    Text("Power:")
                    Text("Load")
                    Text("Temperature:")
                    if meter.supportsFahrenheit {
                        Text("")
                    }
                    Text("USB Data+:")
                    Text("USB Data-:")
                    if meter.supportsChargerDetection {
                        Text("Charger:")
                    }
                }
                VStack (alignment: .trailing) {
                    HStack {
                        Text("\(meter.measurements.voltage.context.minValue.format(decimalDigits: 3))V")
                        Text("\(meter.voltage.format(decimalDigits: 3))V")
                        Text("\(meter.measurements.voltage.context.maxValue.format(decimalDigits: 3))V")
                    }
                    HStack {
                        Text("\(meter.measurements.current.context.minValue.format(decimalDigits: 3))A")
                        Text("\(meter.current.format(decimalDigits: 3))A")
                        Text("\(meter.measurements.current.context.maxValue.format(decimalDigits: 3))A")
                    }
                    HStack {
                        Text("\(meter.measurements.power.context.minValue.format(decimalDigits: 3))W")
                        Text("\(meter.power.format(decimalDigits: 3))W")
                        Text("\(meter.measurements.power.context.maxValue.format(decimalDigits: 3))W")
                    }
                    Text("\(meter.loadResistance.format(decimalDigits: 1))Ω")
                    Text("\(meter.temperatureCelsius)℃")
                    if meter.supportsFahrenheit {
                        Text("\(meter.temperatureFahrenheit)℉")
                    }
                    Text("\(meter.usbPlusVoltage.format(decimalDigits: 2))V")
                    Text("\(meter.usbMinusVoltage.format(decimalDigits: 2))V")
                    if meter.supportsChargerDetection {
                        Text(meter.chargerTypeDescription)
                    }
                }
            }
            .font(.footnote)
        }
    }
}