Config.swift 6.7 KB
//
//  Config.swift
//  zc
//
//  Created by wyp on 2020/6/2.
//  Copyright © 2020 wyp. All rights reserved.
//

import UIKit
import SwiftDate


let SCREEN_WIDTH = UIScreen.main.bounds.size.width
let SCREEN_HEIGHT = UIScreen.main.bounds.size.height

//let KeyWindow : UIWindow = (#available(iOS 13, *)) ? UIApplication.shared.keyWindow! : UIApplication.shared.windows.first

let KeyWindow: UIWindow = {
    var window:UIWindow = UIApplication.shared.keyWindow!
    if #available(iOS 13.0, *) {
        window = UIApplication.shared.windows.filter({ $0.isKeyWindow }).last!
    }
    return window
}()

let StatusBarHeight: CGFloat = {
    if #available(iOS 13, *) {
        return (UIApplication.shared.windows.first?.windowScene?.statusBarManager?.statusBarFrame.size.height)!
    } else {
        return UIApplication.shared.statusBarFrame.size.height
    }
}()

//isiPhoneX() ? 44 : 20
let NAVBAR_HEIGHT: CGFloat = isiPhoneX() ? 88.0 : 64.0
let bottomHeight: CGFloat = isiPhoneX() ? 34 : 0


let ZCTextColor = UIColor.rgbColorFromHex(0x333333)
let ZCDetailTextColor = UIColor.rgbColorFromHex(0x999999)


let UserKey = "HodafoneUserInfo"
let WeatherKey = "WeatherKey"
var StepsGoal = AdminHelper.shared.loadLocalAdminData().userInfo.stepsGoal
let QueryWeatherKey = "QueryWeatherKey"

var Battery: Int = 100

var CurDevice: DeviceModel {
    return AdminHelper.shared.loadLocalAdminData().device
}
var UserInfo: UserInfoModel {
    return AdminHelper.shared.loadLocalAdminData().userInfo
}

var IsTest: Bool {
    let testDate = DateInRegion(year: 2022, month: 1, day: 17, hour: 0, minute: 0, second: 0)
    let nowDate = DateInRegion()
    return nowDate < testDate
}

var IsBindDevice: Bool {
    return AdminHelper.shared.loadLocalAdminData().device.uuid.count > 0
}

var IsSwitchLanguage = false
var isFirstSync = false
var DeviceIsConnected: Bool = false
var IsCameraOpen: Bool = false

func getCurrentVC() -> UIViewController {
    let keywindow = (UIApplication.shared.delegate as! AppDelegate).window?.rootViewController//UIApplication.shared.keyWindow
    let rootVC = keywindow!//UIApplication.shared.keyWindow!.rootViewController!
    return getVisibleViewControllerFrom(vc: rootVC)
}


private func getVisibleViewControllerFrom(vc: UIViewController) -> UIViewController {
    
    if vc.isKind(of: UINavigationController.self) {
        return getVisibleViewControllerFrom(vc: (vc as! UINavigationController).visibleViewController!)
    } else if vc.isKind(of: UITabBarController.self) {
        return getVisibleViewControllerFrom(vc: (vc as! UITabBarController).selectedViewController!)
    } else {
        if (vc.presentedViewController != nil) {
            return getVisibleViewControllerFrom(vc: vc.presentedViewController!)
        } else {
            return vc
        }
    }
}

func bytesToInt(_ bytes: [UInt8]) -> Int {
    let data = Data(bytes)
    let decimalValue = data.reduce(0) { v, byte in
        return v << 8 | Int(byte)
    }
    return Int(decimalValue)
}

func bytesToFloat(_ bytes: [UInt8]) -> Float {
    var temp: Float = 0.0
//    let num: Int =  bytesToInt(bytes)
    memcpy(&temp, bytes.reversed(), 4)
    return temp
}
    
   




let DayXValues = ["00:00", "01:00", "02:00", "03:00", "04:00", "05:00", "06:00", "07:00", "08:00", "09:00", "10:00", "11:00", "12:00", "13:00", "14:00", "15:00", "16:00", "17:00", "18:00", "19:00", "20:00", "21:00", "22:00", "23:00", "24:00"]
let SleepXValues = ["22:00", "23:00", "00:00", "01:00", "02:00", "03:00", "04:00", "05:00", "06:00", "07:00", "08:00", "09:00", "10:00"]
let WeekXValues = [LocString("周一"), LocString("周二"), LocString("周三"), LocString("周四"), LocString("周五"), LocString("周六"), LocString("周天")]
let MonthValues = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"]
func MonthXValues(_ monthdays: Int) -> [String] {
    var array: [String] = []
    for i in 1...monthdays {
        array.append("\(i)")
    }
    return array
}


let ChartsTextColor = UIColor.rgbColorFromHex(0x808080)
let LineColor = UIColor.rgbColorFromHex(0xCCCCCC)
let BackgroundColor = UIColor.rgbColorFromHex(0xF2F2F2)
let TintColor = UIColor.rgbColorFromHex(0x00993E)

func ChartsTextFont(_ size: CGFloat) -> UIFont {
    return UIFont(name: "PingFangSC-Regular", size: size) ?? UIFont.systemFont(ofSize: size)
}


func RegularFont(_ size: CGFloat) -> UIFont {
    return UIFont(name: "PingFangSC-Regular", size: size) ?? UIFont.systemFont(ofSize: size)
}

func BoldFont(_ size: CGFloat) -> UIFont {
    return UIFont(name: "PingFangSC-Semibold", size: size) ?? UIFont.systemFont(ofSize: size)
}

func LightFont(_ size: CGFloat) -> UIFont {
    return UIFont(name: "PingFangSC-Light", size: size) ?? UIFont.systemFont(ofSize: size)
}


func LocString(_ string: String) -> String {
    NSLocalizedString(string, comment: "")
}


//func isiPhoneX() ->Bool {
//    let screenHeight = UIScreen.main.nativeBounds.size.height;
//    if screenHeight == 2436 || screenHeight == 1792 || screenHeight == 2688 || screenHeight == 1624 {
//        return true
//    }
//    return false
//}
func isiPhoneX() -> Bool {

    guard #available(iOS 11.0, *) else {
        return false
    }

    let isX = UIApplication.shared.windows[0].safeAreaInsets.bottom > 0

    print("是不是--->\(isX)")

    return isX

}



enum ZCHost {
    case test
    case release
    //    case define(String, String)
    
    // API地址
    var address: String {
        switch self {
        case .test:
            return "127.0.0.1"
        case .release:
            return ""
        }
    }
    
    var socket: String {
        switch self {
        case .test:
            return "127.0.0.1"
        case .release:
            return ""
        }
    }
    
    var port: String {
        switch self {
        case .test:
            return "8888"
        case .release:
            return ""
        }
    }
    
}


final class ServerHost {
    
    static let shared: ServerHost = ServerHost()
//    10.0.0.110:8000
    // 设置线上环境
    let apiServerHost: String = ZCHost.test.address
//    let socketServerHost: String = "127.0.0.1"
//    let socketServerPort: String = "8888"
    let socketServerHost: String = "10.0.0.3"
    let socketServerPort: String = "8000"
    
    
//    var sPeerID: String {
//        var s: String = ""
//        if let str = UserDefaults.standard.string(forKey: "sPeerID") {
//            s = str
//        }
//        return s1
//    }
//    = "EBAAA0000"
    
    let clientHost: String = "127.0.0.1"
    
    let listenAddr_tcp: String = "127.0.0.1:8000"
    let clientPort_tcp: String = "8888"
    
    let listenAddr_rtsp = "127.0.0.1:554"
    let clientPort_rtsp: String = "8899"
    
    var randomID = Int(arc4random_uniform(899999) + 100000)
//    let deviceID: String = "wyp"

    
    var sliderValue = 0.5
    
}