| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012 |
- using CommunityToolkit.Mvvm.ComponentModel;
- using ivf_tl_Entity;
- using ivf_tl_Entity.DebugEntitys;
- using ivf_tl_Entity.DTO;
- using ivf_tl_Entity.GlobalEntitys;
- using ivf_tl_Entity.GlobalEnums;
- using ivf_tl_Operate.Converts;
- using ivf_tl_Services;
- using Newtonsoft.Json;
- using System;
- using System.Collections.Generic;
- using System.Diagnostics;
- using System.Globalization;
- using System.IO;
- using System.Linq;
- using System.Runtime.Intrinsics.X86;
- using System.Security.Claims;
- using System.Security.RightsManagement;
- using System.Speech.AudioFormat;
- using System.Speech.Synthesis;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- namespace ivf_tl_Operate.ViewModel
- {
- public partial class MainPageViewModel : ObservableObject
- {
- public MainPageViewModel(string tlsn)
- {
- this.tlsn = tlsn;
- InitExHouse();
- Init();
- StartMqtt();
- StartThread();
- StartSpeaker();
- }
- [ObservableProperty]
- private int alarmCount = 0;
- [ObservableProperty]
- private ExDish exDish1 = new ExDish();
- [ObservableProperty]
- private ExDish exDish2 = new ExDish();
- [ObservableProperty]
- private ExDish exDish3 = new ExDish();
- [ObservableProperty]
- private ExDish exDish4 = new ExDish();
- [ObservableProperty]
- private ExDish exDish5 = new ExDish();
- [ObservableProperty]
- private ExDish exDish6 = new ExDish();
- [ObservableProperty]
- private ExDish exDish7 = new ExDish();
- [ObservableProperty]
- private ExDish exDish8 = new ExDish();
- [ObservableProperty]
- private ExDish exDish9 = new ExDish();
- [ObservableProperty]
- private ExDish exDish10 = new ExDish();
- [ObservableProperty]
- private ExHouse exHouse1 = null;
- [ObservableProperty]
- private ExHouse exHouse2 = null;
- [ObservableProperty]
- private ExHouse exHouse3 = null;
- [ObservableProperty]
- private ExHouse exHouse4 = null;
- [ObservableProperty]
- private ExHouse exHouse5 = null;
- [ObservableProperty]
- private ExHouse exHouse6 = null;
- [ObservableProperty]
- private ExHouse exHouse7 = null;
- [ObservableProperty]
- private ExHouse exHouse8 = null;
- [ObservableProperty]
- private ExHouse exHouse9 = null;
- [ObservableProperty]
- private ExHouse exHouse10 = null;
- [ObservableProperty]
- private ExHouse exHouse11 = null;
- public ExBalance ExBalance1 { get; set; } = null;
- public ExBalance ExBalance2 { get; set; } = null;
- public ExBalance ExBalance3 { get; set; } = null;
- public ExBalance ExBalance4 { get; set; } = null;
- public ExBalance ExBalance5 { get; set; } = null;
- public ExBalance ExBalance6 { get; set; } = null;
- public ExBalance ExBalance7 { get; set; } = null;
- public ExBalance ExBalance8 { get; set; } = null;
- public ExBalance ExBalance9 { get; set; } = null;
- public ExBalance ExBalance10 { get; set; } = null;
- [ObservableProperty]
- private string hepaTimeString = null;
- [ObservableProperty]
- private string maintenanceTimeString = null;
- [ObservableProperty]
- private string runTimeString = null;
- public string tlsn { get; set; }
- private void InitExHouse()
- {
- ExHouse1 = new ExHouse() { tlSn = tlsn, houseSn = 1 };
- ExHouse2 = new ExHouse() { tlSn = tlsn, houseSn = 2 };
- ExHouse3 = new ExHouse() { tlSn = tlsn, houseSn = 3 };
- ExHouse4 = new ExHouse() { tlSn = tlsn, houseSn = 4 };
- ExHouse5 = new ExHouse() { tlSn = tlsn, houseSn = 5 };
- ExHouse6 = new ExHouse() { tlSn = tlsn, houseSn = 6 };
- ExHouse7 = new ExHouse() { tlSn = tlsn, houseSn = 7 };
- ExHouse8 = new ExHouse() { tlSn = tlsn, houseSn = 8 };
- ExHouse9 = new ExHouse() { tlSn = tlsn, houseSn = 9 };
- ExHouse10 = new ExHouse() { tlSn = tlsn, houseSn = 10 };
- ExHouse11 = new ExHouse() { tlSn = tlsn, houseSn = 11 };
- }
- public void Init()
- {
- GetHouseStateData getHouseStateData = AppData.Instance.HttpHelper.GetHouseCultureListApi(tlsn);
- InitDish(getHouseStateData.embryoCultureRecords);
- InitBalance(getHouseStateData.balances);
- InitHouse();
- }
- private void InitHouse()
- {
- ExHouse currentHouse = null;
- ExDish currentDish = null;
- ExBalance currentBalance = null;
- for (int i = 1; i < 11; i++)
- {
- currentHouse = HouseSnToExHouse(i);
- if (currentHouse == null) continue;
- currentDish = HouseSnToDish(i);
- currentBalance = HouseSnToExBalance(i);
- if (currentBalance == null && currentDish == null)
- {
- currentHouse.FaYuTime = "";
- currentHouse.StartTime = "";
- continue;
- }
- if (currentDish != null)
- {
- if (DateTime.TryParse(currentDish.startTime, out DateTime sou))
- {
- currentDish.SouJingTime = sou;
- var span = DateTime.Now.Subtract(sou);
- var allHour = (span.Days * 24) + span.Hours;
- if (allHour >= 168) currentHouse.FaYuTime = $"168h+";
- else currentHouse.FaYuTime = $"{allHour}h:{span.Minutes}m";
- currentHouse.StartTime = sou.ToString("MM-dd HH:mm");
- }
- else
- {
- currentHouse.FaYuTime = "";
- currentHouse.StartTime = "";
- }
- continue;
- }
- if (currentBalance != null)
- {
- if (DateTime.TryParse(currentBalance.startTime, out DateTime sou))
- {
- currentBalance.StartDateTime = sou;
- var span = DateTime.Now.Subtract(sou);
- var allHour = (span.Days * 24) + span.Hours;
- if (allHour >= 168) currentHouse.FaYuTime = $"168h+";
- else currentHouse.FaYuTime = $"{allHour}h:{span.Minutes}m";
- currentHouse.StartTime = sou.ToString("MM-dd HH:mm");
- }
- continue;
- }
- currentHouse.FaYuTime = "";
- currentHouse.StartTime = "";
- }
- }
- private void InitDish(List<ExDish> dishList)
- {
- //ExDish currentDish = null;
- //ExDish newDish = null;
- //for (int i = 1; i < 11; i++)
- //{
- // newDish = dishList.FirstOrDefault(x => x.houseSn == i);
- // currentDish = HouseSnToDish(i);
- // if (currentDish == null) continue;
- // if (newDish == null)
- // {
- // if (currentDish.id > 0) EndDish(i);
- // continue;
- // }
- // currentDish.id = newDish.id;
- // currentDish.state = newDish.state;
- // currentDish.houseSn = newDish.houseSn;
- // currentDish.caseId=newDish.caseId;
- // currentDish.wife = newDish.wife;
- // currentDish.husband = newDish.husband;
- // currentDish.wifeBirth=newDish.wifeBirth;
- // currentDish.husbandBirth = newDish.husbandBirth;
- // currentDish.vip = newDish.vip;
- // currentDish.state = newDish.state;
- // currentDish.startTime = newDish.startTime;
- // currentDish.fertilizationType = newDish.fertilizationType;
- // currentDish.fertilizationTypeId = newDish.fertilizationTypeId;
- // currentDish.embryoList = newDish.embryoList;
- // currentDish.embryoCount = newDish.embryoCount;
- //}
- ExDish1 = dishList.FirstOrDefault(x => x.houseSn == 1);
- ExDish2 = dishList.FirstOrDefault(x => x.houseSn == 2);
- ExDish3 = dishList.FirstOrDefault(x => x.houseSn == 3);
- ExDish4 = dishList.FirstOrDefault(x => x.houseSn == 4);
- ExDish5 = dishList.FirstOrDefault(x => x.houseSn == 5);
- ExDish6 = dishList.FirstOrDefault(x => x.houseSn == 6);
- ExDish7 = dishList.FirstOrDefault(x => x.houseSn == 7);
- ExDish8 = dishList.FirstOrDefault(x => x.houseSn == 8);
- ExDish9 = dishList.FirstOrDefault(x => x.houseSn == 9);
- ExDish10 = dishList.FirstOrDefault(x => x.houseSn == 10);
- //SetSouJingTime(ExDish1);
- //SetSouJingTime(ExDish2);
- //SetSouJingTime(ExDish3);
- //SetSouJingTime(ExDish4);
- //SetSouJingTime(ExDish5);
- //SetSouJingTime(ExDish6);
- //SetSouJingTime(ExDish7);
- //SetSouJingTime(ExDish8);
- //SetSouJingTime(ExDish9);
- //SetSouJingTime(ExDish10);
- }
- private void InitBalance(List<ExBalance> balanceList)
- {
- ExBalance1 = balanceList.FirstOrDefault(x => x.houseSn == 1);
- ExBalance2 = balanceList.FirstOrDefault(x => x.houseSn == 2);
- ExBalance3 = balanceList.FirstOrDefault(x => x.houseSn == 3);
- ExBalance4 = balanceList.FirstOrDefault(x => x.houseSn == 4);
- ExBalance5 = balanceList.FirstOrDefault(x => x.houseSn == 5);
- ExBalance6 = balanceList.FirstOrDefault(x => x.houseSn == 6);
- ExBalance7 = balanceList.FirstOrDefault(x => x.houseSn == 7);
- ExBalance8 = balanceList.FirstOrDefault(x => x.houseSn == 8);
- ExBalance9 = balanceList.FirstOrDefault(x => x.houseSn == 9);
- ExBalance10 = balanceList.FirstOrDefault(x => x.houseSn == 10);
- //SetSouJingTime(ExBalance1);
- //SetSouJingTime(ExBalance2);
- //SetSouJingTime(ExBalance3);
- //SetSouJingTime(ExBalance4);
- //SetSouJingTime(ExBalance5);
- //SetSouJingTime(ExBalance6);
- //SetSouJingTime(ExBalance7);
- //SetSouJingTime(ExBalance8);
- //SetSouJingTime(ExBalance9);
- //SetSouJingTime(ExBalance10);
- }
- /// <summary>
- /// 设置培养记录受精时间
- /// </summary>
- /// <param name="exDish"></param>
- private void SetSouJingTime(ExDish exDish)
- {
- if (exDish == null) return;
- if (DateTime.TryParse(exDish.startTime, out DateTime sou))
- {
- exDish.SouJingTime = sou;
- }
- var exhoue = HouseSnToExHouse(exDish.houseSn);
- if (exhoue == null)
- {
- return;
- }
- if (exDish.SouJingTime.HasValue)
- {
- var endTime = DateTime.Now;
- if (!string.IsNullOrEmpty(exDish.endTime))
- {
- DateTime.TryParse(exDish.endTime, out endTime);
- }
- var span = endTime.Subtract(exDish.SouJingTime.Value);
- exhoue.FaYuTime = $"{(span.Days * 24) + span.Hours}H:{span.Minutes}M";
- exhoue.StartTime = exDish.SouJingTime.Value.ToString("MM-dd HH:mm");
- }
- }
- /// <summary>
- /// 设置平衡记录开始时间
- /// </summary>
- /// <param name="exBalance"></param>
- private void SetSouJingTime(ExBalance exBalance)
- {
- if (exBalance == null) return;
- if (DateTime.TryParse(exBalance.startTime, out DateTime sou))
- {
- exBalance.StartDateTime = sou;
- }
- var exhoue = HouseSnToExHouse(exBalance.houseSn);
- if (exhoue == null)
- {
- return;
- }
- if (exBalance.StartDateTime.HasValue)
- {
- var endTime = DateTime.Now;
- if (!string.IsNullOrEmpty(exBalance.endTime))
- {
- DateTime.TryParse(exBalance.endTime, out endTime);
- }
- var span = endTime.Subtract(exBalance.StartDateTime.Value);
- exhoue.FaYuTime = $"{(span.Days * 24) + span.Hours}H:{span.Minutes}M";
- exhoue.StartTime = exBalance.StartDateTime.Value.ToString("MM-dd HH:mm");
- }
- }
- /// <summary>
- /// 结束培养
- /// </summary>
- /// <param name="houseSn"></param>
- public void EndDish(int houseSn)
- {
- switch (houseSn)
- {
- case 1:
- ExDish1 = new ExDish();
- break;
- case 2:
- ExDish2 = new ExDish();
- break;
- case 3:
- ExDish3 = new ExDish();
- break;
- case 4:
- ExDish4 = new ExDish();
- break;
- case 5:
- ExDish5 = new ExDish();
- break;
- case 6:
- ExDish6 = new ExDish();
- break;
- case 7:
- ExDish7 = new ExDish();
- break;
- case 8:
- ExDish8 = new ExDish();
- break;
- case 9:
- ExDish9 = new ExDish();
- break;
- case 10:
- ExDish10 = new ExDish();
- break;
- }
- var exhoue = HouseSnToExHouse(houseSn);
- if (exhoue == null) return;
- exhoue.FaYuTime = "";
- exhoue.StartTime = "";
- }
- public ExDish HouseSnToDish(int houseSn)
- {
- ExDish exDish = null;
- switch (houseSn)
- {
- case 1:
- exDish = ExDish1;
- break;
- case 2:
- exDish = ExDish2;
- break;
- case 3:
- exDish = ExDish3;
- break;
- case 4:
- exDish = ExDish4;
- break;
- case 5:
- exDish = ExDish5;
- break;
- case 6:
- exDish = ExDish6;
- break;
- case 7:
- exDish = ExDish7;
- break;
- case 8:
- exDish = ExDish8;
- break;
- case 9:
- exDish = ExDish9;
- break;
- case 10:
- exDish = ExDish10;
- break;
- }
- return exDish;
- }
- public ExHouse HouseSnToExHouse(int houseSn)
- {
- ExHouse ExHouse = null;
- switch (houseSn)
- {
- case 1:
- ExHouse = ExHouse1;
- break;
- case 2:
- ExHouse = ExHouse2;
- break;
- case 3:
- ExHouse = ExHouse3;
- break;
- case 4:
- ExHouse = ExHouse4;
- break;
- case 5:
- ExHouse = ExHouse5;
- break;
- case 6:
- ExHouse = ExHouse6;
- break;
- case 7:
- ExHouse = ExHouse7;
- break;
- case 8:
- ExHouse = ExHouse8;
- break;
- case 9:
- ExHouse = ExHouse9;
- break;
- case 10:
- ExHouse = ExHouse10;
- break;
- case 11:
- ExHouse = ExHouse11;
- break;
- }
- return ExHouse;
- }
- public ExBalance HouseSnToExBalance(int houseSn)
- {
- ExBalance exBalance = null;
- switch (houseSn)
- {
- case 1:
- exBalance = ExBalance1;
- break;
- case 2:
- exBalance = ExBalance2;
- break;
- case 3:
- exBalance = ExBalance3;
- break;
- case 4:
- exBalance = ExBalance4;
- break;
- case 5:
- exBalance = ExBalance5;
- break;
- case 6:
- exBalance = ExBalance6;
- break;
- case 7:
- exBalance = ExBalance7;
- break;
- case 8:
- exBalance = ExBalance8;
- break;
- case 9:
- exBalance = ExBalance9;
- break;
- case 10:
- exBalance = ExBalance10;
- break;
- }
- return exBalance;
- }
- /// <summary>
- /// 接受mqtt消息
- /// </summary>
- public void RecMqttMessage(string message)
- {
- try
- {
- List<ExHouse> exHouses = JsonConvert.DeserializeObject<List<ExHouse>>(message);
- //List<ExHouse> exHouses = new List<ExHouse>();
- for (int i = 1; i <= 11; i++)
- {
- ExHouse currentHouse = HouseSnToExHouse(i);
- if (currentHouse == null) continue;
- if (i == 11)
- {
- var exHouse11 = exHouses.FirstOrDefault(x => x.houseSn == i);
- if (exHouse11 == null) continue;
- currentHouse.pressure = exHouse11.pressure;
- //currentHouse.pressureDesc = exHouse11.pressureDesc;
- //currentHouse.houseDesc = exHouse11.houseDesc;
- currentHouse.PressureString = $"{currentHouse.pressure.ToString("f0")}mbar";
- switch (exHouse11.pressureDesc)
- {
- case "未知":
- currentHouse.pressureDesc = KeyToStringConvert.GetLanguageStringByKey("C0281");
- break;
- case "待补气":
- currentHouse.pressureDesc = KeyToStringConvert.GetLanguageStringByKey("C0007");
- break;
- case "补气":
- currentHouse.pressureDesc = KeyToStringConvert.GetLanguageStringByKey("C0006");
- break;
- case "正常":
- currentHouse.pressureDesc = KeyToStringConvert.GetLanguageStringByKey("C0005");
- break;
- case "冲刷":
- currentHouse.pressureDesc = KeyToStringConvert.GetLanguageStringByKey("C0301");
- break;
- case "排气":
- currentHouse.pressureDesc = KeyToStringConvert.GetLanguageStringByKey("C0299");
- break;
- case "排队":
- currentHouse.pressureDesc = KeyToStringConvert.GetLanguageStringByKey("C0300");
- break;
- default:
- currentHouse.pressureDesc=exHouse11.pressureDesc;
- break;
- }
- switch (exHouse11.houseDesc)
- {
- case "未知":
- currentHouse.houseDesc = KeyToStringConvert.GetLanguageStringByKey("C0281");
- break;
- case "舱室换气":
- currentHouse.houseDesc = KeyToStringConvert.GetLanguageStringByKey("C0302");
- break;
- case "气压监测":
- currentHouse.houseDesc = KeyToStringConvert.GetLanguageStringByKey("C0282");
- break;
- case "缓冲瓶补气":
- currentHouse.houseDesc = KeyToStringConvert.GetLanguageStringByKey("C0283");
- break;
- case "握手准备":
- currentHouse.houseDesc = KeyToStringConvert.GetLanguageStringByKey("C0009");
- break;
- case "水平电机自检":
- currentHouse.houseDesc = KeyToStringConvert.GetLanguageStringByKey("C0010");
- break;
- case "垂直电机自检":
- currentHouse.houseDesc = KeyToStringConvert.GetLanguageStringByKey("C0012");
- break;
- case "调试状态":
- currentHouse.houseDesc = KeyToStringConvert.GetLanguageStringByKey("C0013");
- break;
- case "空闲监测":
- currentHouse.houseDesc = KeyToStringConvert.GetLanguageStringByKey("C0014");
- break;
- case "温压监测平衡":
- currentHouse.houseDesc = KeyToStringConvert.GetLanguageStringByKey("C0008");
- break;
- case "温压监测":
- currentHouse.houseDesc = KeyToStringConvert.GetLanguageStringByKey("C0015");
- break;
- case "气体交换":
- currentHouse.houseDesc = KeyToStringConvert.GetLanguageStringByKey("C0016");
- break;
- case "气体交换平衡":
- currentHouse.houseDesc = KeyToStringConvert.GetLanguageStringByKey("C0280");
- break;
- default:
- if (exHouse11.houseDesc.Contains("自动对焦"))
- {
- currentHouse.houseDesc = exHouse11.houseDesc.Replace("自动对焦", KeyToStringConvert.GetLanguageStringByKey("C0017"));
- }else if (exHouse11.houseDesc.Contains("胚胎拍照"))
- {
- currentHouse.houseDesc = exHouse11.houseDesc.Replace("胚胎拍照", KeyToStringConvert.GetLanguageStringByKey("C0018"));
- }
- else
- {
- currentHouse.houseDesc = exHouse11.houseDesc;
- }
- break;
- }
- continue;
- }
-
- var exHouse = exHouses.FirstOrDefault(x => x.houseSn == i);
- if (exHouse != null)
- {
- currentHouse.pressureAlarm = exHouse.pressureAlarm;
- currentHouse.temperatureAlarm = exHouse.temperatureAlarm;
- currentHouse.pressure = exHouse.pressure;
- currentHouse.temperature = exHouse.temperature;
- currentHouse.houseDoorState = exHouse.houseDoorState;
- //currentHouse.pressureDesc = exHouse.pressureDesc;
- //currentHouse.houseDesc = exHouse.houseDesc;
- currentHouse.PressureString = $"{currentHouse.pressure.ToString("f0")}mbar";
- currentHouse.TemperatureSring = $"{currentHouse.temperature.ToString("f2")}℃";
- switch (exHouse.pressureDesc)
- {
- case "未知":
- currentHouse.pressureDesc = KeyToStringConvert.GetLanguageStringByKey("C0281");
- break;
- case "待补气":
- currentHouse.pressureDesc = KeyToStringConvert.GetLanguageStringByKey("C0007");
- break;
- case "补气":
- currentHouse.pressureDesc = KeyToStringConvert.GetLanguageStringByKey("C0006");
- break;
- case "正常":
- currentHouse.pressureDesc = KeyToStringConvert.GetLanguageStringByKey("C0005");
- break;
- case "冲刷":
- currentHouse.pressureDesc = KeyToStringConvert.GetLanguageStringByKey("C0301");
- break;
- case "排气":
- currentHouse.pressureDesc = KeyToStringConvert.GetLanguageStringByKey("C0299");
- break;
- case "排队":
- currentHouse.pressureDesc = KeyToStringConvert.GetLanguageStringByKey("C0300");
- break;
- default:
- currentHouse.pressureDesc = exHouse.pressureDesc;
- break;
- }
- switch (exHouse.houseDesc)
- {
- case "未知":
- currentHouse.houseDesc = KeyToStringConvert.GetLanguageStringByKey("C0281");
- break;
- case "握手准备":
- currentHouse.houseDesc = KeyToStringConvert.GetLanguageStringByKey("C0009");
- break;
- case "水平电机自检":
- currentHouse.houseDesc = KeyToStringConvert.GetLanguageStringByKey("C0010");
- break;
- case "垂直电机自检":
- currentHouse.houseDesc = KeyToStringConvert.GetLanguageStringByKey("C0012");
- break;
- case "调试状态":
- currentHouse.houseDesc = KeyToStringConvert.GetLanguageStringByKey("C0013");
- break;
- case "空闲监测":
- currentHouse.houseDesc = KeyToStringConvert.GetLanguageStringByKey("C0014");
- break;
- case "温压监测平衡":
- currentHouse.houseDesc = KeyToStringConvert.GetLanguageStringByKey("C0008");
- break;
- case "温压监测":
- currentHouse.houseDesc = KeyToStringConvert.GetLanguageStringByKey("C0015");
- break;
- case "气体交换":
- currentHouse.houseDesc = KeyToStringConvert.GetLanguageStringByKey("C0016");
- break;
- case "气体交换平衡":
- currentHouse.houseDesc = KeyToStringConvert.GetLanguageStringByKey("C0280");
- break;
- default:
- if (exHouse.houseDesc.Contains("自动对焦"))
- {
- currentHouse.houseDesc = exHouse.houseDesc.Replace("自动对焦", KeyToStringConvert.GetLanguageStringByKey("C0017"));
- }
- else if (exHouse.houseDesc.Contains("胚胎拍照"))
- {
- currentHouse.houseDesc = exHouse.houseDesc.Replace("胚胎拍照", KeyToStringConvert.GetLanguageStringByKey("C0018"));
- }
- else
- {
- currentHouse.houseDesc = exHouse.houseDesc;
- }
- break;
- }
- }
- continue;
- var currentBalance = HouseSnToExBalance(i);
- if (currentBalance != null && currentBalance.StartDateTime.HasValue)
- {
- var endTime = DateTime.Now;
- if (!string.IsNullOrEmpty(currentBalance.endTime))
- {
- DateTime.TryParse(currentBalance.endTime, out endTime);
- }
- var span = endTime.Subtract(currentBalance.StartDateTime.Value);
- currentHouse.FaYuTime = $"{(span.Days * 24) + span.Hours}H:{span.Minutes}M";
- currentHouse.StartTime = currentBalance.StartDateTime.Value.ToString("MM-dd HH:mm");
- }
- var currentDish = HouseSnToDish(i);
- if (currentDish != null && currentDish.SouJingTime.HasValue)
- {
- var endTime = DateTime.Now;
- if (!string.IsNullOrEmpty(currentDish.endTime))
- {
- DateTime.TryParse(currentDish.endTime, out endTime);
- }
- var span = endTime.Subtract(currentDish.SouJingTime.Value);
- currentHouse.FaYuTime = $"{(span.Days * 24) + span.Hours}H:{span.Minutes}M";
- currentHouse.StartTime = currentDish.SouJingTime.Value.ToString("MM-dd HH:mm");
- }
- }
- }
- catch (Exception ex)
- {
- AppData.Instance.LogHelper.ExceptionLog(ex, "解析mqtt消息", LogEnum.RunException);
- }
- }
- public void StartThread()
- {
- Task.Factory.StartNew(async () =>
- {
- string yunxing = KeyToStringConvert.GetLanguageStringByKey("C0001");
- string genghuang = KeyToStringConvert.GetLanguageStringByKey("C0002");
- string baoyang = KeyToStringConvert.GetLanguageStringByKey("C0003");
- string tian = KeyToStringConvert.GetLanguageStringByKey("C0004");
- while (true)
- {
- try
- {
- AlarmCount = AppData.Instance.HttpHelper.SearchAlarmHistoryNumApi(new SearchAlarmResponse { current = 1, selectType = 2, size = 5, tlSn = AppData.Instance.TlSn }).current;
- var a = AppData.Instance.HttpHelper.TlInfoTimeApi(tlsn);
- if (a == null) continue;
- if (a.runTime > 9999) RunTimeString = $"{yunxing}:9999+{tian}";/*RunTimeString = $"运行时间:9999+天";*/
- else RunTimeString = $"{yunxing}:{a.runTime}{tian}";/*RunTimeString = $"运行时间:{a.runTime}天";*/
- if (a.maintenanceTime > 9999) MaintenanceTimeString = $"{baoyang}:9999+{tian}";/*MaintenanceTimeString = $"保养倒计时:9999+天";*/
- else MaintenanceTimeString = $"{baoyang}:{a.maintenanceTime}{tian}";/*MaintenanceTimeString = $"保养倒计时:{a.maintenanceTime}天";*/
- if (a.hepatime > 9999) HepaTimeString = $"{genghuang}:9999+{tian}";/*HepaTimeString = $"更换HEPA时间:9999+天";*/
- else HepaTimeString = $"{genghuang}:{a.hepatime}{tian}";/* HepaTimeString = $"更换HEPA时间:{a.hepatime}天";*/
- Init();
- }
- catch (Exception ex)
- {
- AppData.Instance.LogHelper.ExceptionLog(ex, "定时刷新", LogEnum.RunException);
- }
- finally
- {
- await Task.Delay(1000 * 5);
- }
- }
- }, TaskCreationOptions.LongRunning);
- Task.Factory.StartNew(async () =>
- {
- string newPath = "";
- while (true)
- {
- try
- {
- if(AppData.Instance.TLSettingCommon.cleanSurfaceData != 0)
- {
- newPath = $"{AppData.Instance.DefeatPan}:\\TLData\\ivf_tl_Operate_logs";
- DeleteLogDir(newPath, AppData.Instance.TLSettingCommon.cleanSurfaceData);
- newPath = $"{AppData.Instance.DefeatPan}:\\TLData\\ivf_tl_Operate_logs\\Log";
- DeleteLogFile(newPath, AppData.Instance.TLSettingCommon.cleanSurfaceData);
- newPath = $"{AppData.Instance.DefeatPan}:\\TLData\\ivf_tl_Operate_logs\\LogError";
- DeleteLogFile(newPath, AppData.Instance.TLSettingCommon.cleanSurfaceData);
- }
- }
- catch (Exception ex)
- {
- AppData.Instance.LogHelper.ExceptionLog(ex, "DeleteLog", LogEnum.RunException);
- }
- finally
- {
- await Task.Delay(1000 * 60 * 60 * 12);
- }
- }
- }, TaskCreationOptions.LongRunning);
- }
- private void DeleteLogDir(string newPath,int day)
- {
- var newDir = Directory.GetDirectories(newPath, "*", SearchOption.TopDirectoryOnly);
- string dirName = "";
- DateTime dirTime = DateTime.Now;
- DateTime nowTime = dirTime;
- foreach (var item in newDir)
- {
- dirName = System.IO.Path.GetFileName(item);
- if (DateTime.TryParse(dirName, out dirTime))
- {
- if (nowTime.Subtract(dirTime).Days >= day)
- {
- try
- {
- Directory.Delete(item, true);
- }
- catch (Exception)
- {
- continue;
- }
- }
- }
- }
- }
- private void DeleteLogFile(string newPath,int day)
- {
- var newDir = Directory.GetFiles(newPath, "*.htm", SearchOption.TopDirectoryOnly);
- string fileName = "";
- DateTime fileTime = DateTime.Now;
- DateTime nowTime = fileTime;
- foreach (var item in newDir)
- {
- fileName = System.IO.Path.GetFileNameWithoutExtension(item);
- if (fileName.Length == 8)
- {
- fileName = fileName.Insert(6, "-");
- fileName = fileName.Insert(4, "-");
- if (DateTime.TryParse(fileName, out fileTime))
- {
- if (nowTime.Subtract(fileTime).Days >= day)
- {
- try
- {
- File.Delete(item);
- }
- catch (Exception)
- {
- continue;
- }
- }
- }
- }
- }
- }
- public void StartMqtt()
- {
- AppData.Instance.MqttHelper.MessEvent -= RecMqttMessage;
- AppData.Instance.MqttHelper.MessEvent += RecMqttMessage;
- AppData.Instance.MqttHelper.StartMqtt();
- }
- List<long> ReadAlarmId = new List<long>();
- Queue<AlarmHistoryEntity> AlarmQueue = new Queue<AlarmHistoryEntity>();
- private object AlarmQueueLock = new object();
- public void StartSpeaker()
- {
- Task.Factory.StartNew(async () =>
- {
- SpeechSynthesizer speech = new SpeechSynthesizer();
- speech.Volume = 100;
- var currentVoiceInfo = speech.GetInstalledVoices(CultureInfo.CurrentCulture).FirstOrDefault();
- if (currentVoiceInfo != null) speech.SelectVoice(currentVoiceInfo.VoiceInfo.Name);
- AlarmHistoryResult alarmHistoryResult = null;
- AlarmHistoryEntity currentAlarm = null;
- string yiqi = KeyToStringConvert.GetLanguageStringByKey("C0230");
- string huanchongp = KeyToStringConvert.GetLanguageStringByKey("C0231");
- string hcs = KeyToStringConvert.GetLanguageStringByKey("C0056");
- int dataCount = 0;
- string houseSnString = null;
- string speakText = "";
- while (true)
- {
- try
- {
- currentAlarm = AlarmDequeue();
- if (currentAlarm != null && currentAlarm.mute == 0)
- {
- if (currentAlarm.houseSn == 0)
- {
- //houseSnString = "时差仪器";
- houseSnString = yiqi;
- }
- else if (currentAlarm.houseSn == 11)
- {
- //houseSnString = "缓冲瓶";
- houseSnString = huanchongp;
- }
- else
- {
- //houseSnString = $"{currentAlarm.houseSn}号舱室";
- houseSnString = $"{currentAlarm.houseSn}{hcs}";
- }
- speakText = $"{houseSnString}{currentAlarm.title}";
- speech.Speak(speakText);
- }
- currentAlarm = null;
- if (!AlarmQueueAny())
- {
- //ReadAlarmId.Clear();
- alarmHistoryResult = AppData.Instance.HttpHelper.SearchAlarmHistoryApi(new SearchAlarmResponse { current = 1, selectType = 2, size = 999, tlSn = AppData.Instance.TlSn });
- if (alarmHistoryResult.IsSuccess)
- {
- dataCount = 0;
- foreach (var item in alarmHistoryResult.records)
- {
- //if (ReadAlarmId.Contains(item.id)) continue;
- //ReadAlarmId.Add(item.id);
- if (item.mute == 0)
- {
- AlarmEnqueue(item);
- dataCount++;
- }
- }
- if (dataCount == 0) await Task.Delay(5000);
- }
- else
- {
- await Task.Delay(5000);
- }
- await Task.Delay(1000);
- }
- }
- catch (Exception ex)
- {
- AppData.Instance.LogHelper.ExceptionLog(ex, $"语音报警:{speakText}", LogEnum.RunException);
- }
- finally
- {
- await Task.Delay(100);
- }
- }
- }, TaskCreationOptions.LongRunning);
- }
- public void SetAlarmMute(long id, int mute)
- {
- try
- {
- lock (AlarmQueueLock)
- {
- var aa = AlarmQueue.FirstOrDefault(x => x.id == id);
- if (aa != null) aa.mute = mute;
- }
- }
- catch (Exception ex)
- {
- AppData.Instance.LogHelper.ExceptionLog(ex, "SetAlarmMute", LogEnum.RunException);
- }
- }
- private void AlarmEnqueue(AlarmHistoryEntity alarmHistoryEntity)
- {
- try
- {
- lock (AlarmQueueLock)
- {
- AlarmQueue.Enqueue(alarmHistoryEntity);
- }
- }
- catch (Exception ex)
- {
- AppData.Instance.LogHelper.ExceptionLog(ex, "AlarmEnqueue", LogEnum.RunException);
- }
- }
- private AlarmHistoryEntity AlarmDequeue()
- {
- try
- {
- lock (AlarmQueueLock)
- {
- if (AlarmQueue.Any()) return AlarmQueue.Dequeue();
- }
- return null;
- }
- catch (Exception ex)
- {
- AppData.Instance.LogHelper.ExceptionLog(ex, "AlarmDequeue", LogEnum.RunException);
- return null;
- }
- }
- private bool AlarmQueueAny()
- {
- try
- {
- lock (AlarmQueueLock) return AlarmQueue.Any();
- }
- catch (Exception ex)
- {
- AppData.Instance.LogHelper.ExceptionLog(ex, "AlarmQueueAny", LogEnum.RunException);
- lock (AlarmQueueLock) AlarmQueue.Clear();
- return false;
- }
- }
- }
- }
|