1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306 |
- using MeterVision.db;
- using MeterVision.FreeAi;
- using MeterVision.Util;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Windows.Media;
- namespace MeterVision.model
- {
- public class PatchDetailItem : INotifyPropertyChanged
- {
- public event PropertyChangedEventHandler PropertyChanged;
- protected void OnPropertyChanged(string propertyName)
- {
- PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
- }
- private int _index;
- public int Index
- {
- get => _index;
- set
- {
- if (_index != value)
- {
- _index = value;
- OnPropertyChanged(nameof(Index));
- }
- }
- }
- private string _patchDetailId;
- public string PatchDetailId
- {
- get => _patchDetailId;
- set
- {
- if (_patchDetailId != value)
- {
- _patchDetailId = value;
- OnPropertyChanged(nameof(PatchDetailId));
- }
- }
- }
- private string _patchId;
- public string PatchId
- {
- get => _patchId;
- set
- {
- if(_patchId != value)
- {
- _patchId = value;
- OnPropertyChanged(nameof(PatchId));
- }
- }
- }
- private string _createTime;
- public string CreateTime
- {
- get => _createTime;
- set
- {
- if (_createTime != value)
- {
- _createTime = value;
- OnPropertyChanged(nameof(CreateTime));
- }
- }
- }
- private string _standDetailId;
- public string StandDetailId
- {
- get => _standDetailId;
- set
- {
- if(_standDetailId != value)
- {
- _standDetailId = value;
- OnPropertyChanged(nameof(StandDetailId));
- }
- }
- }
- private string _standResult;
- public string StandValue
- {
- get => _standResult;
- set
- {
- if (_standResult != value)
- {
- _standResult = value;
- OnPropertyChanged(nameof(StandValue));
- }
- }
- }
- private string _srcImage;
- public string SrcImage
- {
- get => _srcImage;
- set
- {
- if (_srcImage != value)
- {
- _srcImage = value;
- OnPropertyChanged(nameof(SrcImage));
- }
- }
- }
- public string SampleTime { get; set; }
- public string SampleTimePart1 => ThisApp.ConvertDateFormat_Date2(SampleTime);
- public string SampleTimePart2 => ThisApp.ConvertDateFormat_Time2(SampleTime);
- //1: 已识别处理 0:还未识别
- private int _runFlag;
- public int RunFlag
- {
- get => _runFlag;
- set
- {
- if (_runFlag != value)
- {
- _runFlag = value;
- OnPropertyChanged(nameof(RunFlag));
- OnPropertyChanged(nameof(ResultVisiable));
- OnPropertyChanged(nameof(RunFlagName));
- OnPropertyChanged(nameof(RunFlagColor));
- }
- }
- }
- public string RunFlagName
- {
- get => RunFlag == 1 ? "🚩":"";
- }
- public string RunFlagColor
- {
- //get => RunFlag == 1 ? "#007bff" : "Tranparent";
- get => RunFlag == 1 ? "Black" : "Transparent";
- }
- private string _runTime;
- public string RunTime
- {
- get => _runTime;
- set
- {
- if (_runTime != value)
- {
- _runTime = value;
- OnPropertyChanged(nameof(RunTime));
- OnPropertyChanged(nameof(RunTime_date)); // 依赖 RunTime 更新 RunTIme_date
- OnPropertyChanged(nameof(RunTime_time)); // 依赖 RunTime 更新 RunTIme_time
- }
- }
- }
- public string RunTime_date => ThisApp.ConvertDateFormat_Date(RunTime);
- public string RunTime_time => ThisApp.ConvertDateFormat_Time(RunTime);
- private string _dstIamge;
- public string DstImage
- {
- get => _dstIamge;
- set
- {
- if (_dstIamge != value)
- {
- _dstIamge = value;
- OnPropertyChanged(nameof(DstImage));
- }
- }
- }
- private int _resultType;
- public int ResultType
- {
- get => _resultType;
- set
- {
- if (_resultType != value)
- {
- _resultType = value;
- OnPropertyChanged(nameof(ResultType));
- OnPropertyChanged(nameof(ResultTypeColor)); // 依赖 ResultType 更新 ResultTypeColor
- }
- }
- }
- public Color ResultTypeColor
- {
- //=> Get_ResultTypeColor();
- get
- {
- return (Color)ColorConverter.ConvertFromString(Get_ResultTypeColor());
- }
- }
-
-
- private long _rawValue;
- public long RawValue
- {
- get => _rawValue;
- set
- {
- if (_rawValue != value)
- {
- _rawValue = value;
- OnPropertyChanged(nameof(RawValue));
- OnPropertyChanged(nameof(RawValueName));
- }
- }
- }
- public string RawValueName
- {
- get
- {
- if(RawValue >= 0)
- {
- return ((double)RawValue / FaConstant.CUBE_VALUE).ToString();
- }
- return "";
- }
- }
- private long _finalValue;
- public long FinalValue
- {
- get => _finalValue;
- set
- {
- if (_finalValue != value)
- {
- _finalValue = value;
- OnPropertyChanged(nameof(FinalValue));
- OnPropertyChanged(nameof(FinalValueName));
- OnPropertyChanged(nameof(FinalValueName2));
- OnPropertyChanged(nameof(FinalValue2));
- OnPropertyChanged(nameof(LastUnitName2));
- }
- }
- }
- //public double FinalValue2 => (double)(FinalValue / (double)10000);
- public string FinalValue2
- {
- get
- {
- if(FinalValue == long.MaxValue)
- {
- return "";
- }
- else
- {
- return ((double)(FinalValue / (double)10000)).ToString();
- }
- }
- }
- public string FinalValueName
- {
- get
- {
- if(FinalValue >= 0)
- {
- return ((double)FinalValue / FaConstant.CUBE_VALUE).ToString();
- }
- return "";
- }
- }
- //按LastUnit来截取小数
- public string FinalValueName2
- {
- get
- {
- if(FinalValue == long.MaxValue)
- {
- return "";
- }
- else
- {
- if (LastUnit != double.MaxValue)
- {
- string valueStr = LastUnit.ToString(); //LastUnit.ToString("G17");
- int decimalIndex = valueStr.IndexOf('.');
- int decimalPlaces = 0;
- if (decimalIndex == -1)
- {
- decimalPlaces = 0;
- }
- else
- {
- decimalPlaces = valueStr.Length - decimalIndex - 1;
- }
- int iValue = (int)(FinalValue / (FaConstant.CUBE_VALUE * LastUnit));
- double dValue = iValue * LastUnit;
- return dValue.ToString($"F{decimalPlaces}");
- }
- else
- {
- return ((double)FinalValue / FaConstant.CUBE_VALUE).ToString();
- }
- }
- }
- }
- public string FinalValueColor => GetFinalValueColor();
- private long _completeValue;
- public long CompleteValue
- {
- get => _completeValue;
- set
- {
- if(_completeValue != value)
- {
- _completeValue = value;
- OnPropertyChanged(nameof(CompleteValue));
- }
- }
- }
- private int _valueChanged;
- public int ValueChanged
- {
- get => _valueChanged;
- set
- {
- if(_valueChanged != value)
- {
- _valueChanged = value;
- OnPropertyChanged(nameof(ValueChanged));
- }
- }
- }
- private int _resultMeter;
- public int ResultMeter
- {
- get => _resultMeter;
- set
- {
- if(_resultMeter != value)
- {
- _resultMeter = value;
- OnPropertyChanged(nameof(ResultMeter));
- OnPropertyChanged(nameof(ResultMeterName));
- }
- }
- }
- public string ResultMeterName => GetMeterTypeName(ResultMeter);
-
- //0不等,1相等 2:无效,3无标准值,无法比较
- private int _equalFlag;
- public int EqualFlag
- {
- get => _equalFlag;
- set
- {
- if(_equalFlag != value)
- {
- _equalFlag = value;
- OnPropertyChanged(nameof(EqualFlag));
- OnPropertyChanged(nameof(EqaulFlagName));
- OnPropertyChanged(nameof(EqualFlagColor));
- OnPropertyChanged(nameof(FinalValueColor));
- OnPropertyChanged(nameof(FinalValueName2));
- }
- }
- }
- public string EqaulFlagName => GetEqualFlagName();
- public string EqualFlagColor => GetEqualFlagColor();
- private string _aiVer;
- public string AiVer
- {
- get => _aiVer;
- set
- {
- if (_aiVer != value)
- {
- _aiVer = value;
- OnPropertyChanged(nameof(AiVer));
- }
- }
- }
- private string _debugInfo;
- public string DebugInfo
- {
- get => _debugInfo;
- set
- {
- if (_debugInfo != value)
- {
- _debugInfo = value;
- OnPropertyChanged(nameof(DebugInfo));
- OnPropertyChanged(nameof(AI_result_array)); // 依赖 DebugInfo 更新 AI_result_array
- }
- }
- }
- //--------------------------------
- public string[] AI_result_array => Get_DebugInfoArray();
- private string _logPath;
- public string LogPath
- {
- get => _logPath;
- set
- {
- if (_logPath != value)
- {
- _logPath = value;
- OnPropertyChanged(nameof(LogPath));
- }
- }
- }
- private string _memo;
- public string Memo
- {
- get => _memo;
- set
- {
- if(_memo != value)
- {
- _memo = value;
- OnPropertyChanged(nameof(Memo));
- }
- }
- }
- public string StationId { get; set; }
- public string StationIdName => $"站点: {StationId}";
-
- public string StationKey { get; set; }
- //--改动的地方
- private int _meterType;
- public int MeterType
- {
- get => _meterType;
- set
- {
- if (_meterType != value)
- {
- _meterType = value;
- OnPropertyChanged(nameof(MeterType));
- OnPropertyChanged(nameof(MeterTypeName)); // 依赖 MeterType 更新 MeterTypeName
- }
- }
- }
- public string MeterTypeName => Get_MeterTypeName();
- private double _brightVal;
- public double BrightVal
- {
- get => _brightVal;
- set
- {
- if(_brightVal != value)
- {
- _brightVal = value;
- OnPropertyChanged(nameof(BrightVal));
- OnPropertyChanged(nameof(BrightValName));
- }
- }
- }
- public string BrightValName => $"亮度: {BrightVal}";
- private int _flowRate;
- public int FlowRate
- {
- get => _flowRate;
- set
- {
- if(_flowRate != value)
- {
- _flowRate = value;
- OnPropertyChanged(nameof(FlowRate));
- OnPropertyChanged(nameof(FlowRateName));
- }
- }
- }
- public string FlowRateName => $"小时流量: {FlowRate}";
- private int _digitCount;
- public int DigitCount
- {
- get => _digitCount;
- set
- {
- if (_digitCount != value)
- {
- _digitCount = value;
- OnPropertyChanged(nameof(DigitCount));
- OnPropertyChanged(nameof(NumCountName)); // 依赖 DigitCount 更新 NumCountName
- }
- }
- }
- private int _pointerCount;
- public int PointerCount
- {
- get => _pointerCount;
- set
- {
- if (_pointerCount != value)
- {
- _pointerCount = value;
- OnPropertyChanged(nameof(PointerCount));
- OnPropertyChanged(nameof(NumCountName)); // 依赖 PointerCount 更新 NumCountName
- }
- }
- }
- public string NumCountName => Get_NumCountName();
- private double _lastUnit;
- public double LastUnit
- {
- get => _lastUnit;
- set
- {
- if (_lastUnit != value)
- {
- _lastUnit = value;
- OnPropertyChanged(nameof(LastUnit));
- OnPropertyChanged(nameof(LastUnitName)); // 依赖 LastUnit 更新 LastUnitName
- OnPropertyChanged(nameof(FinalValueName2));
- OnPropertyChanged(nameof(LastUnitName2));
- }
- }
- }
- public string LastUnitName
- {
- get
- {
- if (MeterType > 0)
- {
- return $"尾数: {LastUnit}m³";
- }
- else
- {
- return "";
- }
- }
- }
- public string LastUnitName2
- {
- get
- {
- if (LastUnit == double.MaxValue)
- {
- return "";
- }
- return LastUnit.ToString();
- }
- }
- public int _numInUpper;
- public int NumInUpper
- {
- get => _numInUpper;
- set
- {
- if (_numInUpper != value)
- {
- _numInUpper = value;
- OnPropertyChanged(nameof(NumInUpper));
- }
- }
- }
- public string NumInUpperName
- {
- get
- {
- if(MeterType == 1 || MeterType == 3)
- {
- return $"数字在上: {(NumInUpper == 1 ? "是":"否")}";
- }
- return "";
- }
- }
- public string _meterRegion;
- public string MeterRegion
- {
- get => _meterRegion;
- set
- {
- if(_meterRegion != value)
- {
- _meterRegion = value;
- OnPropertyChanged(nameof(MeterRegion));
- OnPropertyChanged(nameof(MeterRegionName));
- }
- }
- }
- public string MeterRegionName {
- get
- {
- if (!string.IsNullOrEmpty(MeterRegion))
- {
- return $"表盘: {MeterRegion}";
- }
- return "";
- }
- }
- private string _featureRegion;
- public string FeatureRegion
- {
- get => _featureRegion;
- set
- {
- if(_featureRegion != value)
- {
- _featureRegion = value;
- OnPropertyChanged(nameof(FeatureRegion));
- OnPropertyChanged(nameof(FeatureRegionName));
- }
- }
- }
- public string FeatureRegionName
- {
- get
- {
- if (!string.IsNullOrEmpty(FeatureRegion))
- {
- if (MeterType == 1 || MeterType == 3)
- {
- return "数字区域: \n" + FeatureRegion;
- }
- else if (MeterType == 2)
- {
- return "首位指针: \n" + FeatureRegion;
- }
- else
- {
- return "";
- }
- }
- else
- {
- return "";
- }
- }
- }
- private int _lastCompress;
- public int LastCompress
- {
- get => _lastCompress;
- set
- {
- if(_lastCompress != value)
- {
- _lastCompress = value;
- OnPropertyChanged(nameof(LastCompress));
- OnPropertyChanged(nameof(LastCompressName));
- }
- }
- }
- public string LastCompressName
- {
- get
- {
- if(LastCompress >= 0)
- {
- return "上次压缩: " + LastCompress;
- }
- return "";
- }
- }
- public long _latestValue;
- public long LatestValue
- {
- get => _latestValue;
- set
- {
- if(_latestValue != value)
- {
- _latestValue = value;
- OnPropertyChanged(nameof(LatestValue));
- OnPropertyChanged(nameof(LatestValueName));
- }
- }
- }
- public string LatestValueName
- {
- get
- {
- if (LatestValue >= 0)
- {
- return $"上次值: {LatestValue / 10000}";
- }
- return string.Empty;
- }
- }
- public string _latestTime;
- public string LatestTime
- {
- get => _latestTime;
- set
- {
- if(_latestTime != value)
- {
- _latestTime = value;
- OnPropertyChanged(nameof(LatestTime));
- }
- }
- }
- public long _latestComplete;
- public long LatestComplete
- {
- get => _latestComplete;
- set
- {
- if(_latestComplete!= value)
- {
- _latestComplete = value;
- OnPropertyChanged(nameof(LatestComplete));
- OnPropertyChanged(nameof(LatestCompleteName));
- }
- }
- }
- public string LatestCompleteName
- {
- get
- {
- if (LatestComplete >= 0)
- {
- return $"完整值: {LatestComplete}";
- }
- return string.Empty;
- }
- }
- //是否判断最后一个数字作为相等的条件
- public int JudgeLastnumFlag { get; set; }
- public Visibility ResultVisiable
- {
- get => (RunFlag == 1) ? Visibility.Visible : Visibility.Hidden;
- }
- public PatchDetailItem() { }
- public PatchDetailItem(TPatchDetail patchDetail)
- {
- ObjectHelper.CopyMatchingFields(patchDetail, this);
- }
- //public string GetEqualFlagName()
- //{
- // if(RunFlag == 1)
- // {
- // if (string.IsNullOrWhiteSpace(StandValue))
- // {
- // return "-";
- // }
- // else
- // {
- // if (EqualFlag == 1)
- // {
- // return "√";
- // }
- // else
- // {
- // if(MeterType == ResultMeter && MeterType > 0)
- // {
- // return "×";
- // }
- // else
- // {
- // return "∅";
- // }
- // }
- // }
- // }
- // else
- // {
- // return "a";
- // }
- //}
- public string GetEqualFlagName()
- {
- if (RunFlag == 1)
- {
- if (EqualFlag == 1)
- {
- return "√";
- }
- else if(EqualFlag == 0)
- {
- //错误的
- return "×";
- }
- else if(EqualFlag == 2)
- {
- //无效的
- return "∅";
- }
- else
- {
- return "";
- }
- }
- else
- {
- return "";
- }
- }
- //public string GetEqualFlagColor()
- //{
- // if(RunFlag == 1)
- // {
- // if (string.IsNullOrWhiteSpace(StandValue))
- // {
- // //flag = 2
- // return "#666666";
- // }
- // else
- // {
- // if (EqualFlag == 1)
- // {
- // //flag = 1
- // return "#28a745 ";
- // }
- // else
- // {
- // if(MeterType == ResultMeter && MeterType > 0)
- // {
- // return "#dc3545 ";
- // }
- // else
- // {
- // return "#FFA500";
- // }
- // }
- // }
- // }
- // else
- // {
- // return "666666";
- // }
- //}
- public string GetEqualFlagColor()
- {
- if (RunFlag == 1)
- {
- if (string.IsNullOrWhiteSpace(StandValue))
- {
- return "#666666";
- }
- else
- {
- if (EqualFlag == 1)
- {
- return "#28a745 ";
- }
- else if(EqualFlag == 2)
- {
- return "#FFA500";
- }
- else if(EqualFlag == 0)
- {
- return "#dc3545 ";
- }
- else
- {
- return "#666666";
- }
- }
- }
- else
- {
- return "#666666";
- }
- }
- private string Get_ResultTypeColor()
- {
- switch (ResultType)
- {
- case 1:
- case 2:
- case 7:
- case 8:
- return "#67c23a"; // 绿色
- default:
- return "#e6a23c"; // 橙色
- }
- }
- private string GetFinalValueColor()
- {
- if (EqualFlag == 1)
- {
- return "Green";
- }else if(EqualFlag == 2)
- {
- return "#000000";
- }
- else
- {
- return "#FF4C4C"; //淡红色
- }
- // if (string.IsNullOrWhiteSpace(StandValue))
- //{
- // return "#666666";
- //}
- //else
- //{
- // if (EqualFlag == 1)
- // {
- // return "#28a745 ";
- // }
- // else
- // {
- // return "#dc3545 ";
- // }
- //}
- }
- private string Get_NumCountName()
- {
- switch (MeterType)
- {
- case 1:
- return $"数字: {DigitCount} 指针{PointerCount}";
- case 2:
- return $"指针: {PointerCount}";
- case 3:
- return $"数字: {DigitCount}";
- default:
- return string.Empty;
- }
- }
- private string Get_MeterTypeName()
- {
- switch (MeterType)
- {
- case 0:
- return "未识别出";
- case 1:
- return "数字+指针";
- case 2:
- return "全指针";
- case 3:
- return "全数字";
- case 4:
- return "LED表";
- case 5:
- return "压力表";
- case 88:
- return "无法摆正";
- case 90:
- return "概率太低";
- default:
- if (MeterType == int.MaxValue)
- {
- return "";
- }
- else
- {
- return "未知值";
- }
- //return "";
- //return "非水表";
- }
- }
- //
- private string GetMeterTypeName(int meterType)
- {
- switch (meterType)
- {
- case 0:
- return "0: 非水表";
- case 1:
- return "1: 数字+指针表";
- case 2:
- return "2: 全指针表";
- case 3:
- return "3: 全数字表";
- case 88:
- return "88: 没有配置";
- case 89:
- return "89: 角度变化";
- case 90:
- return "90: 概率太低";
- case 91:
- return "91: 不符合最大水流";
- case 92:
- return "92: 非递增或倒转";
- }
- return $"{meterType}: 未知";
- }
- private string[] Get_DebugInfoArray()
- {
- string[] sInfos = DebugInfo.Split(',');
- if (sInfos.Length != 24)
- {
- sInfos = Enumerable.Range(0, 24).Select(_ => "").ToArray();
- }
- return sInfos.ToArray();
- ////string[] sInfos = DebugInfo.Split(',');
- ////if (sInfos.Length != 24)
- ////{
- //// sInfos = Enumerable.Range(0, 24).Select(_ => "").ToArray();
- ////}
- ////return sInfos.Select(s => s == "88" ? "" : s).ToArray();
- //// 将 DebugInfo 按逗号分割成字符串数组
- //string[] sInfos = DebugInfo.Split(',');
- //// 如果数组长度不等于24,则创建一个新的长度为24的数组并初始化为空字符串
- //if (sInfos.Length != 24)
- //{
- // sInfos = Enumerable.Range(0, 24).Select(_ => "").ToArray();
- //}
- //// 对每个字符串进行处理:如果它是 "88" 则转为空字符串,
- //// 如果它是单个数字,则在前面补零
- //return sInfos.Select(s =>
- //{
- // // 如果是 "88" 返回空字符串
- // if (s == "88") return "";
- // // 如果字符串长度为1,则在前面补零
- // if (s.Length == 1)
- // {
- // return "0" + s;
- // }
- // // 否则返回原字符串
- // return s;
- //}).ToArray();
- }
- public string GetValueByLastUnit(long value)
- {
- if(MeterType!= ResultMeter)
- {
- return (value / FaConstant.CUBE_VALUE).ToString();
- }
- double dValue = (double)value / FaConstant.CUBE_VALUE;
- return dValue.ToString();
- }
- //public static bool CheckEquailityWithStandValue(string standValue,string finalValue)
- //{
- // ////return standValue.Equals(FinalValue);
- // //string finalValue = FinalValue;
- // // 获取整数部分
- // string standIntegerPart = standValue.Split('.')[0];
- // string finalIntegerPart = finalValue.Split('.')[0];
- // // 比较整数部分
- // if (standIntegerPart != finalIntegerPart)
- // {
- // return false;
- // }
- // // 获取小数部分,若没有小数部分,则默认为空字符串
- // string standDecimalPart = standValue.Contains(".") ? standValue.Split('.')[1] : "";
- // string finalDecimalPart = finalValue.Contains(".") ? finalValue.Split('.')[1] : "";
- // // 如果standValue有小数部分,则根据其小数位数调整finalValue的小数部分
- // if (!string.IsNullOrEmpty(standDecimalPart))
- // {
- // // 获取standValue小数部分的位数
- // int decimalPlaces = standDecimalPart.Length;
- // // 截取FinalValue的小数部分,或者补充零
- // if (finalDecimalPart.Length > decimalPlaces)
- // {
- // // 截取多余的小数位
- // finalDecimalPart = finalDecimalPart.Substring(0, decimalPlaces);
- // }
- // else if (finalDecimalPart.Length < decimalPlaces)
- // {
- // // 补充零
- // finalDecimalPart = finalDecimalPart.PadRight(decimalPlaces, '0');
- // }
- // // 比较调整后的小数部分
- // return standDecimalPart == finalDecimalPart;
- // }
- // // 如果standValue没有小数部分,只比较整数部分
- // return true;
- //}
- public bool CheckEquailityWithStandValue(int standValue, long finalValue)
- {
- bool isEqual = false;
- //比较结果值与标准值是否相等
- if(MeterType == ResultMeter)
- {
- if(MeterType == 1)
- {
- //数字+指针(只比较数字部分)
- //获取真正数据部分的值
- int standValue1 = (int)(standValue / LastUnit);
- int finalValue1 = (int)(finalValue / (FaConstant.CUBE_VALUE * LastUnit));
- return (standValue1 == finalValue1);
- }
- else if(MeterType == 2)
- {
- //全指针
- return (standValue * FaConstant.CUBE_VALUE) == finalValue;
- }
- else if(MeterType == 3)
- {
- //全数字
- return (standValue * FaConstant.CUBE_VALUE) == finalValue;
- }
- }
- return isEqual;
- }
- public int GetEqualFlag_old(double standValue, long finalValue)
- {
- bool isEqual = false;
- //比较结果值与标准值是否相等
- if (MeterType == ResultMeter)
- {
- if (MeterType == 1 || MeterType == 3)
- {
- //数字+指针(只比较数字部分)
- //获取真正数据部分的值
- int standValue1 = (int)Math.Ceiling(standValue / LastUnit);
- int finalValue1 = (int)(finalValue / (FaConstant.CUBE_VALUE * LastUnit));
- //isEqual = (standValue1 == finalValue1);
- //判断如何按最后一个单位差1,也认为正确(比如0.1单位,则差0.1是正确的,10单位的,差10也是正确的)
- //上面的值,也就规划为数字的整数
- isEqual = (Math.Abs(standValue1 - finalValue1) <= 1);
- return isEqual ? 1 : 0;
- }
- else if (MeterType == 2)
- {
- int standValue1 = (int)standValue;
- int finalValue1 = (int)(finalValue / FaConstant.CUBE_VALUE);
- isEqual = (Math.Abs(standValue1 - finalValue1) <= 1);
- return isEqual ? 1 : 0;
- }
- }
- return 2;
- }
- public int GetEqualFlag(double standValue, long finalValue)
- {
- bool isEqual = false;
- //比较结果值与标准值是否相等
- if (MeterType == ResultMeter)
- {
- if (MeterType == 1 || MeterType == 3)
- {
- //数字+指针(只比较数字部分)
- //获取真正数据部分的值
- int standValue1 = (int)(standValue / LastUnit);
- //(int)Math.Ceiling(standValue / LastUnit);
- int finalValue1 = (int)(finalValue / (FaConstant.CUBE_VALUE * LastUnit));
- //isEqual = (standValue1 == finalValue1);
- //判断如果按最后一个单位差1,也认为正确(比如0.1单位,则差0.1是正确的,10单位的,差10也是正确的)
- isEqual = (Math.Abs(standValue1 - finalValue1) <= 1);
- if (isEqual == false && JudgeLastnumFlag == 0)
- {
- int standValue1_lastnum = standValue1 % 10;
- int finalValue1_lastnum = finalValue1 % 10;
- //上面的值,也就规划为数字的整数
- int standValue2 = standValue1 - standValue1_lastnum;
- int finalValue2 = finalValue1 - finalValue1_lastnum;
- isEqual = standValue2 == finalValue2;
- }
- return isEqual ? 1 : 0;
- }
- else if (MeterType == 2)
- {
- int standValue1 = (int)standValue;
- int finalValue1 = (int)(finalValue / FaConstant.CUBE_VALUE);
- isEqual = (Math.Abs(standValue1 - finalValue1) <= 1);
- return isEqual ? 1 : 0;
- }
- }
- return 2;
- }
- public int GetEqualFlag_http(double standValue, long finalValue)
- {
- bool isEqual = false;
- //if (MeterType == 1 || MeterType == 3)
- //{
- //数字+指针(只比较数字部分)
- //获取真正数据部分的值
- //int standValue1 = (int)(standValue / LastUnit);
- //int standValue1 = (int)((long)(standValue * 10000) / (long)(LastUnit * 10000));
- int standValue1 = (int)Math.Round(standValue / LastUnit);
- //(int)Math.Ceiling(standValue / LastUnit);
- //int finalValue1 = (int)(finalValue / (FaConstant.CUBE_VALUE * LastUnit));
- int finalValue1 = (int)Math.Round(finalValue / (FaConstant.CUBE_VALUE * LastUnit));
- //判断如果按最后一个单位差1,也认为正确(比如0.1单位,则差0.1是正确的,10单位的,差10也是正确的)
- isEqual = (Math.Abs(standValue1 - finalValue1) <= 1);
- if (isEqual == false && JudgeLastnumFlag == 0)
- {
- int standValue1_lastnum = standValue1 % 10;
- int finalValue1_lastnum = finalValue1 % 10;
- //上面的值,也就规划为数字的整数
- int standValue2 = standValue1 - standValue1_lastnum;
- int finalValue2 = finalValue1 - finalValue1_lastnum;
- isEqual = standValue2 == finalValue2;
- }
- return isEqual ? 1 : 0;
- }
- /////////////////////////////
- }
- }
|