package com.quyunshuo.module.home.utils

import android.util.Log
import com.hboxs.serialport.sbc.SBCHeartbeat
import com.quyunshuo.androidbaseframemvvm.base.bean.Global
import com.quyunshuo.androidbaseframemvvm.common.constant.Heartbeat
import com.quyunshuo.androidbaseframemvvm.common.util.UiUtil
import com.quyunshuo.module.home.BuildConfig
import com.quyunshuo.module.home.R

class DeviceOperateManager private constructor() {
    fun CanOperateMake(): String {
        if (BuildConfig.DEBUG) {
            Log.d("backinfo","是调试")
            return ""
        } else {
            Log.d("backinfo","不是调试")
            if (!SBCHeartbeat.isPowerOn) {
                return UiUtil.getStringRes(R.string.base_not_startup)
            }

            if (System.currentTimeMillis() - Global.commTime > 7000) {
                //没有和plc通讯上
                return UiUtil.getStringRes(R.string.base_home_tips_dialog_1)
            }

            if (Heartbeat.managerId == "") {
                //没有连接服务器
                return UiUtil.getStringRes(R.string.base_home_tips_dialog_6)
            }


            if (SBCHeartbeat.devCode.startsWith("00")) {
                //整机初次上电。
                return UiUtil.getStringRes(R.string.base_home_tips_dialog_2)
            }

            if (!SBCHeartbeat.fatalError.equals("0000") || !SBCHeartbeat.nonFatalError.equals("0000")) {
                //机器报警了。

                return UiUtil.getStringRes(R.string.base_home_tips_dialog_3)
            }
            if (SBCHeartbeat.devCode.startsWith("15") || SBCHeartbeat.devCode.startsWith("16") || SBCHeartbeat.devCode.startsWith(
                    "17"
                )
            ) {
                //机器制作中
                return UiUtil.getStringRes(R.string.base_home_tips_dialog_5)
            }
            return ""
        }

    }

    companion object {
        @Volatile
        private var singleton: DeviceOperateManager? = null

        val instance: DeviceOperateManager?
            get() {
                if (singleton == null) {
                    synchronized(DeviceOperateManager::class.java) {
                        if (singleton == null) {
                            singleton = DeviceOperateManager()
                        }
                    }
                }
                return singleton
            }
    }
}