using CHN; using System; using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using WI; using static MQTT; public class Panel_ProductionStatus : PanelBase { TextMeshProUGUI Text_DayAndTime; TextMeshProUGUI worknm; TextMeshProUGUI status; TextMeshProUGUI goalqty; TextMeshProUGUI workqty; TextMeshProUGUI goodqty; TextMeshProUGUI badqty; ProductionStatusManager productionStatusManager; [SerializeField] float loopTime = 3; float waitTime; int productionStatusInfoNum; public override void AfterAwake() { productionStatusManager = FindSingle(); } public override void AfterStart() { SetProductionStatus(); } private void Update() { UpdateDayAndTime(); waitTime += Time.deltaTime; if (waitTime > loopTime) { productionStatusInfoNum += 1; if (productionStatusInfoNum > productionStatusManager.productionStatusInfos.Count) { productionStatusInfoNum = 0; } SetProductionStatus(); waitTime = 0; } } void SetProductionStatus() { List completeInfos = productionStatusManager.productionStatusInfos; CompleteInfo completeInfo = completeInfos[productionStatusInfoNum]; worknm.SetText(completeInfo.worknm); status.SetText(completeInfo.statusnm); goalqty.SetText(RoundToIntData(completeInfo.goalqty)); workqty.SetText(RoundToIntData(completeInfo.workqty)); goodqty.SetText(RoundToIntData(completeInfo.goodqty)); badqty.SetText(RoundToIntData(completeInfo.badqty)); } string RoundToIntData(string data) { var floatData = float.Parse(data); var intData = Mathf.RoundToInt(floatData); return intData.ToString(); } void UpdateDayAndTime() { string currentTime = DateTime.Now.ToString("yyyy.MM.dd HH:mm"); Text_DayAndTime.SetText(currentTime); } }