applebikekit
元資料

元資料

結構

/// 支援的部件。
public enum EnablePart: Equatable {
    case hmi
    case controller
    case mainBattery
    case display
    case motor
    case cadenceSensor
    case torqueSensor
    case charger
    case frontLight
    case rearLight
    case throttle
    case eBrake
    case eLock
    case frontDerailleur
    case rearDerailleur
    case IoT
    case hallSensor
    case speedSensor
    case subBattery1
    case subBattery2
    case undefined(Int)
}
 
/// 元資料。
public struct MetaParameter {
    
    public fileprivate(set) var hmiSSN: String?
    public fileprivate(set) var hmiDMID: String?
    public fileprivate(set) var hmiDSN: String?
    public fileprivate(set) var hmiSMID: String?
    public fileprivate(set) var hmiFrame: String?
    public fileprivate(set) var hmiSaleDate: String?
    public fileprivate(set) var hmiFWAppVer: String?
    public fileprivate(set) var hmiFWBtlVer: String?
    public fileprivate(set) var hmiFWSdkVer: String?
    public fileprivate(set) var hmiHWVer: String?
    public fileprivate(set) var hmiParaVer: String?
    public fileprivate(set) var hmiProtocolVer: String?
    public fileprivate(set) var hmiBtDevName: String?
    
    /// 距離單位為公制或英制。
    public fileprivate(set) var hmiDistanceUint: MKDistanceFormatter.Units?
    
    public fileprivate(set) var batterySSN: String?
    public fileprivate(set) var batteryDMID: String?
    public fileprivate(set) var batteryDSN: String?
    public fileprivate(set) var batterySMID: String?
    public fileprivate(set) var batteryFrame: String?
    public fileprivate(set) var batterySaleDate: String?
    public fileprivate(set) var batteryFWAppVer: String?
    public fileprivate(set) var batteryFWBtlVer: String?
    public fileprivate(set) var batteryFWSdkVer: String?
    public fileprivate(set) var batteryHWVer: String?
    public fileprivate(set) var batteryParaVer: String?
    public fileprivate(set) var batteryProtocolVer: String?
    public fileprivate(set) var batteryBtDevName: String?
    
    public fileprivate(set) var controllerSSN: String?
    public fileprivate(set) var controllerDMID: String?
    public fileprivate(set) var controllerDSN: String?
    public fileprivate(set) var controllerSMID: String?
    public fileprivate(set) var controllerFrame: String?
    public fileprivate(set) var controllerSaleDate: String?
    public fileprivate(set) var controllerFWAppVer: String?
    public fileprivate(set) var controllerFWBtlVer: String?
    public fileprivate(set) var controllerFWSdkVer: String?
    public fileprivate(set) var controllerHWVer: String?
    public fileprivate(set) var controllerParaVer: String?
    public fileprivate(set) var controllerProtocolVer: String?
    public fileprivate(set) var controllerBtDevName: String?
    
    /// 支援的部件。
    public var enableParts: [MetaParameter.EnablePart]
}

取值

FarmLandBikeKit.sleipnir.metaParameter

監聽

FarmLandBikeKit.sleipnir.metaPublisher
    .sink(receiveValue: { metaParameter in
        // 取得元資料。
    })
    .store(in: &subscriptions)