private void GetVibSignalPara(VibSingal signal) { int value = -1; if (signal.LowLimitFrequency.HasValue) { var lowLimitType = waveLowerLimitValueRepository.GetByKey(signal.LowLimitFrequency.Value); if (lowLimitType != null) { value = lowLimitType.WaveLowerLimitValue; } signal.LowLimitFrequency = value; } if (signal.UpLimitFrequency.HasValue) { var upperLimitType = waveUpperLimitValueRepository.GetByKey(signal.UpLimitFrequency.Value); if (upperLimitType != null) { value = upperLimitType.WaveUpperLimitValue; } signal.UpLimitFrequency = value; } if (signal.EnlvpBandW.HasValue) { var enlvBandType = waveUpperLimitValueRepository.GetByKey(signal.EnlvpBandW.Value); if (enlvBandType != null) { value = enlvBandType.WaveUpperLimitValue; } signal.EnlvpBandW = value; } if (signal.EnlvpFilter.HasValue) { var envlFilterType = waveLowerLimitValueRepository.GetByKey(signal.EnlvpFilter.Value); if (envlFilterType != null) { value = envlFilterType.WaveLowerLimitValue; } signal.EnlvpFilter = value; } var waveLenType = waveLengthValueRepository.GetByKey(signal.WaveDataLength); if (waveLenType != null) { value = waveLenType.WaveLengthValue; } signal.WaveDataLength = value; }
/// <summary> /// 更新速度振动信号特征值报警状态 /// </summary> /// <param name="signalAlmSet">振动信号特征值告警设置</param> /// <param name="dev">设备信息</param> /// <param name="site">测量位置信息</param> /// <param name="vibsingal">振动信号信息</param> /// <param name="samplingData">采集时间</param> private void UpdateVibratingSingalAlarmVel(SignalAlmSet signalAlmSet, Device dev, MeasureSite site, VibSingal vibsingal, DateTime samplingTime, float?hisDataValue) { DeviceVibtationAlarmParameter devVibtationAlarmParam = new DeviceVibtationAlarmParameter() { AlmSet = signalAlmSet, Dev = dev, MSite = site, Signal = vibsingal, SamplingTime = samplingTime, HisDataValue = hisDataValue }; deviceVibrationAlarm.DevVibAlmRecordManager(devVibtationAlarmParam); }
private CloudSignal GetCloudSignal(VibSingal signal) { CloudSignal cSignal = null; List <MonitorTree> monitors = monitorTreeRepository.GetDatas <MonitorTree>(t => true, true).ToList(); MeasureSite site = measureSiteRepository.GetByKey(signal.MSiteID); List <MonitorTreeType> mtTypes = monitorTreeTypeRepository.GetDatas <MonitorTreeType>(t => true, true).ToList(); if (site != null) { Device device = deviceRepository.GetByKey(site.DevID); if (device != null) { //将波长上下限,带宽,滤波等信息转换为实际的值 GetVibSignalPara(signal); cSignal = getdata.GetSignal(signal, site, device, monitors, mtTypes); } } return(cSignal); }
private Alarm GetDevAlmRecord(DevAlmRecord record) { Alarm alarm = null; MeasureSite site = measureSiteRepository.GetByKey(record.MSiteID); Device device = deviceRepository.GetByKey(record.DevID); switch (record.MSAlmID) { case 1: //振动信号报警 VibSingal signal = vibSignalRepository.GetByKey(record.SingalID); //过滤掉位移,LQ振动信号的报警记录 List <string> selectedVibsignalNames = new List <string> { "加速度", "速度", "包络" }; //取得佳讯需要的振动信号类型ID List <int> selectedTypeIDList = vibratingSingalTypeRepository.GetDatas <VibratingSingalType> (t => selectedVibsignalNames.Contains(t.Name), true).Select(t => t.ID).ToList(); if (signal != null && signal.DAQStyle == 1 && selectedTypeIDList.Contains(signal.SingalType)) { if (site != null && device != null) { alarm = getdata.GetVibrateionAlarm(record, signal, site, device); } } break; case 2: //设备温度 if (site != null && device != null) { alarm = getdata.GetDevTempAlarm(record, site, device); } break; case 3: break; case 4: break; case 5: break; case 6: break; case 8: //趋势报警推送 //趋势报警,慧萌新增报警类型,报警内容格式暂时不确定,暂定和之前一致 //如果是临时测量定义 或者 LQ 不推送 //VibSingal signalForThrend = DBServices.GetInstance().VibSingalProxy.GetByKey(record.SingalID); //过滤掉位移,LQ振动信号的报警记录 //List<string> selectedVibsignalNamesForThrend = new List<string> { "加速度", "速度", "包络" }; //取得佳讯需要的振动信号类型ID //List<int> selectedTypeIDListForThrend = DBServices.GetInstance().VibratingSingalTypeProxy.GetDatas<VibratingSingalType> // (t => selectedVibsignalNamesForThrend.Contains(t.Name), true).Select(t => t.ID).ToList(); //if (signalForThrend != null && signalForThrend.DAQStyle == 1 && selectedTypeIDListForThrend.Contains(signalForThrend.SingalType)) //{ //if (site != null && device != null) // { // alarm = getData.GetThrendAlarm(record, signalForThrend, site, device); //} // } break; } return(alarm); }
/// <summary> /// 创建新的报警记录对象 /// </summary> /// <param name="dev">设备信息</param> /// <param name="msite">测量位置信息</param> /// <param name="signal">振动信号信息</param> /// <param name="signalAlmSet">振动信号报警设置信息</param> /// <param name="samplingData">采集时间</param> /// <param name="value">采集数据值</param> /// <returns></returns> private DevAlmRecord CreatNewVibrationAlmRecord(Device dev, MeasureSite msite, VibSingal signal, SignalAlmSet signalAlmSet, DateTime samplingTime, float?value) { try { DevAlmRecord nRecord = new DevAlmRecord(); //GetMonitorTree getMonitorTree = new GetMonitorTree(wgRepository, deviceRepository, monitorTreeRepository); nRecord.DevID = dev.DevID; nRecord.DevName = dev.DevName; nRecord.DevNO = dev.DevNO.ToString(); nRecord.MSiteID = msite.MSiteID; string measureSiteName = string.Empty; var measureSiteType = cacheDICT.GetInstance().GetCacheType <MeasureSiteType>(p => p.ID == msite.MSiteName).FirstOrDefault(); //空判断 王颖辉 2016-08-30 if (measureSiteType != null) { measureSiteName = measureSiteType.Name; } nRecord.MSiteName = measureSiteName; nRecord.SingalID = signal.SingalID; string singalName = string.Empty; var vibratingSingalType = cacheDICT.GetInstance().GetCacheType <VibratingSingalType>(p => p.ID == signal.SingalType).FirstOrDefault(); if (vibratingSingalType != null) { singalName = vibratingSingalType.Name; } nRecord.SingalName = singalName; nRecord.SingalAlmID = signalAlmSet.SingalAlmID; string eigenValueName = string.Empty; var eigenValueType = cacheDICT.GetInstance().GetCacheType <EigenValueType>(p => p.ID == signalAlmSet.ValueType).FirstOrDefault(); if (eigenValueType != null) { eigenValueName = eigenValueType.Name; } nRecord.SingalValue = eigenValueName; nRecord.MSAlmID = (int)EnumAlarmRecordType.DeviceVibration; nRecord.AlmStatus = signalAlmSet.Status; nRecord.SamplingValue = value; nRecord.WarningValue = signalAlmSet.WarnValue; nRecord.DangerValue = signalAlmSet.AlmValue; nRecord.BDate = samplingTime; nRecord.EDate = samplingTime; nRecord.LatestStartTime = samplingTime; nRecord.MonitorTreeID = string.Empty;//getMonitorTree.ConvertMonitorTreeIDString(dev.DevID, null); nRecord.Content = string.Format("{0}{1}{2}{3}{4}", nRecord.DevName, nRecord.MSiteName, nRecord.SingalName, nRecord.SingalValue, ConvertStatusToString(signalAlmSet.Status)); return(nRecord); } catch (Exception ex) { LogHelper.WriteLog(ex); return(null); } }
/// <summary> /// 保存速度实时数据汇总 /// </summary> /// <param name="param">上传数据对象</param> /// <param name="dev">设备信息</param> /// <param name="ws">WS信息</param> /// <param name="site">测量位置信息</param> /// <param name="vibSingal">振动信号信息</param> /// <param name="status">测量位置状态</param> private void SaveRealTimeCollectInfoWaveVel(UploadWaveDataParameter param, Device dev, MeasureSite site, VibSingal vibSingal, int peakStatus, int peakPeakStatus, int effStatus, DateTime peakSamplingDate, DateTime peakPeakSamplingDate, DateTime effSamplingDate) { try { //重新获取测点信息 MeasureSite newMeasureSite = measureSiteRepository.GetByKey(site.MSiteID); //获取实时数据信息 RealTimeCollectInfo realTimeCollectInfo = realTimeCollectInfoRepository .GetDatas <RealTimeCollectInfo>(p => p.MSID == site.MSiteID, false) .FirstOrDefault(); if (realTimeCollectInfo == null) { realTimeCollectInfo = new RealTimeCollectInfo(); MeasureSiteType siteType = cacheDICT.GetInstance().GetCacheType <MeasureSiteType>() .Where(p => p.ID == site.MSiteName).FirstOrDefault(); realTimeCollectInfo.DevID = dev.DevID; realTimeCollectInfo.MSID = site.MSiteID; realTimeCollectInfo.MSName = siteType.Name; realTimeCollectInfo.MSStatus = newMeasureSite.MSiteStatus; realTimeCollectInfo.MSDesInfo = siteType.Describe; realTimeCollectInfo.MSDataStatus = 1; realTimeCollectInfo.MSSpeedSingalID = vibSingal.SingalID; realTimeCollectInfo.MSSpeedVirtualValue = param.EffectiveValue; realTimeCollectInfo.MSSpeedPeakValue = param.PeakValue; realTimeCollectInfo.MSSpeedPeakPeakValue = param.PeakPeakValue; realTimeCollectInfo.MSSpeedVirtualStatus = effStatus; realTimeCollectInfo.MSSpeedPeakStatus = peakStatus; realTimeCollectInfo.MSSpeedPeakPeakStatus = peakPeakStatus; realTimeCollectInfo.MSSpeedPeakTime = (peakSamplingDate == DateTime.MinValue ? DateTime.Now : peakSamplingDate); realTimeCollectInfo.MSSpeedPeakPeakTime = (peakPeakSamplingDate == DateTime.MinValue ? DateTime.Now : peakPeakSamplingDate); realTimeCollectInfo.MSSpeedVirtualTime = (effSamplingDate == DateTime.MinValue ? DateTime.Now : effSamplingDate); #region 添加网关连接状态 ADDED BY QXM, 2016/11/18 //var wg = gatewayRepository.GetByKey(ws.WGID); //if (wg != null) //{ // realTimeCollectInfo.MSWGLinkStatus = wg.LinkStatus; //} #endregion realTimeCollectInfoRepository.AddNew(realTimeCollectInfo); } else { realTimeCollectInfo.MSStatus = newMeasureSite.MSiteStatus; realTimeCollectInfo.MSDataStatus = 1; realTimeCollectInfo.MSSpeedSingalID = vibSingal.SingalID; realTimeCollectInfo.MSSpeedVirtualValue = param.EffectiveValue; realTimeCollectInfo.MSSpeedPeakValue = param.PeakValue; realTimeCollectInfo.MSSpeedPeakPeakValue = param.PeakPeakValue; realTimeCollectInfo.MSSpeedVirtualStatus = effStatus; realTimeCollectInfo.MSSpeedPeakStatus = peakStatus; realTimeCollectInfo.MSSpeedPeakPeakStatus = peakPeakStatus; realTimeCollectInfo.MSSpeedPeakTime = (peakSamplingDate == DateTime.MinValue ? DateTime.Now : peakSamplingDate); realTimeCollectInfo.MSSpeedPeakPeakTime = (peakPeakSamplingDate == DateTime.MinValue ? DateTime.Now : peakPeakSamplingDate); realTimeCollectInfo.MSSpeedVirtualTime = (effSamplingDate == DateTime.MinValue ? DateTime.Now : effSamplingDate); realTimeCollectInfoRepository.Update(realTimeCollectInfo); #region 添加报警阈值在时实表中 List <EigenValueType> eigenValueTypeList = cacheDICT.GetInstance() .GetCacheType <EigenValueType>() .ToList(); //获取阈值 var alarmThresholdList = signalAlmSetRepository.GetDatas <SignalAlmSet>(item => item.SingalID == vibSingal.SingalID, true); if (alarmThresholdList != null && alarmThresholdList.Any()) { //阈值 foreach (var alarmThreshold in alarmThresholdList) { var eigenValue = eigenValueTypeList.Where(item => item.ID == alarmThreshold.ValueType).FirstOrDefault(); var vibSignalType = (int)EnumMeasureSiteThresholdType.VEL; var eigenValueType = (int)EnumEigenType.EffectivityValue; var samplingDate = DateTime.Now; switch (eigenValue.Code) { //有效值 case "EIGENVALUE_21_YXZ": { eigenValueType = (int)EnumEigenType.EffectivityValue; samplingDate = effSamplingDate; } break; //峰值 case "EIGENVALUE_22_FZ": { eigenValueType = (int)EnumEigenType.PeakValue; samplingDate = peakSamplingDate; } break; //峰峰值 case "EIGENVALUE_23_FFZ": { eigenValueType = (int)EnumEigenType.PeakPeakValue; samplingDate = peakPeakSamplingDate; } break; } var realTimeAlarmThreshold = realTimeAlarmThresholdRepository.GetDatas <RealTimeAlarmThreshold>(item => item.MeasureSiteID == site.MSiteID && item.MeasureSiteThresholdType == vibSignalType && item.EigenValueType == eigenValueType, true).FirstOrDefault(); //更新 if (realTimeAlarmThreshold != null) { //添加关联阈值表数据 realTimeAlarmThreshold.AlarmThresholdValue = alarmThreshold.WarnValue; realTimeAlarmThreshold.DangerThresholdValue = alarmThreshold.AlmValue; realTimeAlarmThresholdRepository.Update(realTimeAlarmThreshold); } else { //添加关联阈值表数据 realTimeAlarmThreshold = new RealTimeAlarmThreshold(); realTimeAlarmThreshold.MeasureSiteID = site.MSiteID; realTimeAlarmThreshold.MeasureSiteThresholdType = vibSignalType; realTimeAlarmThreshold.AddDate = DateTime.Now; realTimeAlarmThreshold.AlarmThresholdValue = alarmThreshold.WarnValue; realTimeAlarmThreshold.DangerThresholdValue = alarmThreshold.AlmValue; realTimeAlarmThreshold.EigenValueType = eigenValueType; realTimeAlarmThreshold.SamplingDate = samplingDate; realTimeAlarmThresholdRepository.AddNew(realTimeAlarmThreshold); } } } #endregion } } catch (Exception ex) { LogHelper.WriteLog(ex); } }
/// <summary> /// 保存和更新振动速度波形数据 /// </summary> /// <param name="param">采集波形参数</param> /// <param name="site">测量位置信息</param> /// <param name="dev">设备信息</param> /// <param name="ws">WS信息</param> /// <param name="signalTypeName">振动信号类型名称</param> private void SaveAndUpdateSignalVelData(UploadWaveDataParameter param, MeasureSite site, Device dev, int signalTypeID) { int status = (int)EnumAlarmStatus.Normal; float?peakWarnValue = null; float?peakAlmValue = null; float?peakPeakWarnValue = null; float?peakPeakAlmValue = null; float?effWarnValue = null; float?effAlmValue = null; int peakStatus = 0; int peakPeakStatus = 0; int effStatus = 0; DateTime peakSamplingDate = DateTime.MinValue; DateTime peakPeakSamplingDate = DateTime.MinValue; DateTime effSamplingDate = DateTime.MinValue; //特征值定义 try { //根据信号类型ID获取振动信号信息 VibSingal vibSignal = vibSignalRepository .GetDatas <VibSingal>(p => p.SingalType == signalTypeID && p.MSiteID == site.MSiteID, false) .FirstOrDefault(); if (vibSignal == null) { //此处可添加错误代码 return; } //判断振动波形数据是否重复 bool isDataRepeat = vibratingSingalCharHisVelRepository .GetDatas <VibratingSingalCharHisVel>(p => p.SingalID == vibSignal.SingalID && p.SamplingDate == param.SamplingDate && p.MonthDate == param.SamplingDate.Month, false).Any(); if (isDataRepeat) { //此处可添加错误代码 return; } //获取振动信号类型的警告和告警阈值 List <SignalAlmSet> signalAlmList = signalAlmSetRepository .GetDatas <SignalAlmSet>(p => p.SingalID == vibSignal.SingalID, false) .ToList(); //获取速度中的特征值类型信息 List <EigenValueType> eigenValueTypeList = cacheDICT.GetInstance() .GetCacheType <EigenValueType>(p => p.VibratingSignalTypeID == signalTypeID) .ToList(); float?hisDataValue = 0; if (signalAlmList != null) { foreach (SignalAlmSet signalAlm in signalAlmList) { foreach (EigenValueType eigenValueType in eigenValueTypeList) { if (signalAlm.ValueType == eigenValueType.ID) { switch (eigenValueType.Name) { case ConstObject.Peak_Value: { GetSamplingDataStatus(signalAlm.WarnValue, signalAlm.AlmValue, param.PeakValue, ref status, vibSignal.SingalID, signalAlm.ValueType); peakWarnValue = signalAlm.WarnValue; peakAlmValue = signalAlm.AlmValue; peakStatus = status; peakSamplingDate = param.SamplingDate; hisDataValue = param.PeakValue; break; } case ConstObject.Peak_Peak_Value: { GetSamplingDataStatus(signalAlm.WarnValue, signalAlm.AlmValue, param.PeakPeakValue, ref status, vibSignal.SingalID, signalAlm.ValueType); peakPeakWarnValue = signalAlm.WarnValue; peakPeakAlmValue = signalAlm.AlmValue; peakPeakStatus = status; peakPeakSamplingDate = param.SamplingDate; hisDataValue = param.PeakPeakValue; break; } case ConstObject.Effectivity_Value: { GetSamplingDataStatus(signalAlm.WarnValue, signalAlm.AlmValue, param.EffectiveValue, ref status, vibSignal.SingalID, signalAlm.ValueType); effWarnValue = signalAlm.WarnValue; effAlmValue = signalAlm.AlmValue; effStatus = status; effSamplingDate = param.SamplingDate; hisDataValue = param.EffectiveValue; break; } default: break; } //判断上传临时采集数据时,不判断告警信息和入库 if (/*param.DAQStyle != "2"*/ true) { if (ConstObject.AlarmsConfirmed && false)//此处添加持续报警判断条件 { //RecordAlarmCount recordAlarmCout = CollectionsExtensions.recordAlmCountList // .Where(p => p.SignalID == vibSignal.SingalID && p.EigenValueTypeID == signalAlm.ValueType).FirstOrDefault(); //if (recordAlarmCout == null) //{ // continue; //} //if (recordAlarmCout.WarnCount == 3 || recordAlarmCout.AlarmCount == 3 || status == (int)EnumAlarmStatus.Normal) //{ // //更新振动信号特征值阈值设置表 // signalAlm.Status = status; // signalAlmSetRepository.Update(signalAlm); // #region QXM ADDED 2017/01/19 // ModifyStatusBeyondSignal(signalAlm.SingalID); // #endregion // UpdateVibratingSingalAlarmVel(signalAlm, dev, site, vibSignal, param.SamplingDate, hisDataValue); // //vibSignal.SingalStatus = status; //} } else { if (signalAlm.Status != status || (signalAlm.Status == status && status != (int)EnumAlarmStatus.Normal)) { //更新振动信号特征值阈值设置表 signalAlm.Status = status; signalAlmSetRepository.Update(signalAlm); #region QXM ADDED 2017/01/19 ModifyStatusBeyondSignal(signalAlm.SingalID); #endregion UpdateVibratingSingalAlarmVel(signalAlm, dev, site, vibSignal, param.SamplingDate, hisDataValue); //vibSignal.SingalStatus = status; } } } } } } } if (FilterSamplingVel(ref param, peakAlmValue, peakPeakAlmValue, effAlmValue)) { if (param.IsWave) { RecordWaveToTxt(vibSignal.SingalID, param); } WaveUpperLimitValues waveValuesObject = cacheDICT.GetCacheType <WaveUpperLimitValues>(item => item.ID == vibSignal.UpLimitFrequency) .FirstOrDefault(); InsterVibratingSingalHisVel(param, site, dev, vibSignal, peakWarnValue, peakAlmValue, peakPeakWarnValue, peakPeakAlmValue, effWarnValue, effAlmValue, GetRealSamplingFrequency(waveValuesObject.WaveUpperLimitValue), param.IsWave); SaveRealTimeCollectInfoWaveVel(param, dev, site, vibSignal, peakStatus, peakPeakStatus, effStatus, peakSamplingDate, peakPeakSamplingDate, effSamplingDate); } } catch (Exception ex) { LogHelper.WriteLog(ex); } }
/// <summary> /// 速度历史表中添加数据 /// </summary> /// <param name="param">采集数据对象</param> /// <param name="site">测点信息</param> /// <param name="dev">设备信息</param> /// <param name="vibSignal">信号类型信息</param> /// <param name="peakWarnValue">峰值高报值</param> /// <param name="peakAlmValue">峰值高高报值</param> /// <param name="peakPeakWarnValue">峰峰值高报值</param> /// <param name="peakPeakAlmValue">峰峰值高高报值</param> /// <param name="effWarnValue">有效值高报值</param> /// <param name="effAlmValue">有效值高高报值</param> private void InsterVibratingSingalHisVel(UploadWaveDataParameter param, MeasureSite site, Device dev, VibSingal vibSignal, float?peakWarnValue, float?peakAlmValue, float?peakPeakWarnValue, float?peakPeakAlmValue, float?effWarnValue, float?effAlmValue, float realSamplingFrequency, bool isWaveDataSaved = true) { string rotate = ConstObject.RotationFrequency_Default; if (dev.Rotate > 0) { rotate = CalculateRotationFrequencyByVelocityWave(param, dev.Rotate, vibSignal); } int status = GetSignalStatus(vibSignal.SingalID); VibratingSingalCharHisVel vibSingalHisVel = new VibratingSingalCharHisVel() { SingalID = vibSignal.SingalID, MsiteID = site.MSiteID, DevID = dev.DevID, SamplingDate = param.SamplingDate, WaveDataPath = isWaveDataSaved ? GetWaveTxtFileName(vibSignal.SingalID, param.SamplingDate) : null, TransformCofe = 1, SamplingPointData = param.WaveData == null ? 0 : param.WaveData.Length, AlmStatus = status, DAQStyle = 1, PeakValue = param.PeakValue, PeakPeakValue = param.PeakPeakValue, EffValue = param.EffectiveValue, PeakWarnValue = peakWarnValue, PeakAlmValue = peakAlmValue, PeakPeakWarnValue = peakPeakWarnValue, PeakPeakAlmValue = peakPeakAlmValue, EffWarnValue = effWarnValue, EffAlmValue = effAlmValue, MonthDate = param.SamplingDate.Month, RealSamplingFrequency = realSamplingFrequency, Rotate = rotate, SamplingDataType = (int)EnumSamplingDataType.WiredSensor, }; vibratingSingalCharHisVelRepository.AddNew(vibSingalHisVel); }
/// <summary> /// 加速度历史表中添加数据 /// </summary> /// <param name="param">采集数据对象</param> /// <param name="site">测点信息</param> /// <param name="dev">设备信息</param> /// <param name="vibSignal">信号类型信息</param> /// <param name="peakWarnValue">峰值高报值</param> /// <param name="peakAlmValue">峰值高高报值</param> /// <param name="peakPeakWarnValue">峰峰值高报值</param> /// <param name="peakPeakAlmValue">峰峰值高高报值</param> /// <param name="effWarnValue">有效值高报值</param> /// <param name="effAlmValue">有效值高高报值</param> private void InsterVibratingSingalHisAcc(UploadWaveDataParameter param, MeasureSite site, Device dev, VibSingal vibSignal, float?peakWarnValue, float?peakAlmValue, float?peakPeakWarnValue, float?peakPeakAlmValue, float?effWarnValue, float?effAlmValue, float realSamplingFrequency, bool isSaveWaveData = true) { int status = GetSignalStatus(vibSignal.SingalID); VibratingSingalCharHisAcc vibSingalHisAcc = new VibratingSingalCharHisAcc() { SingalID = vibSignal.SingalID, MsiteID = site.MSiteID, DevID = dev.DevID, SamplingDate = param.SamplingDate, WaveDataPath = isSaveWaveData ? GetWaveTxtFileName(vibSignal.SingalID, param.SamplingDate) : string.Empty, TransformCofe = 1, SamplingPointData = param.WaveData == null ? 0 : param.WaveData.Length, AlmStatus = status, DAQStyle = 1, PeakValue = param.PeakValue, PeakPeakValue = param.PeakPeakValue, EffValue = param.EffectiveValue, PeakWarnValue = peakWarnValue, PeakAlmValue = peakAlmValue, PeakPeakWarnValue = peakPeakWarnValue, PeakPeakAlmValue = peakPeakAlmValue, EffWarnValue = effWarnValue, EffAlmValue = effAlmValue, MonthDate = param.SamplingDate.Month, RealSamplingFrequency = realSamplingFrequency, Rotate = GetRotationFrequency(site, param.SamplingDate, 1), SamplingDataType = (int)EnumSamplingDataType.WiredSensor }; vibSignal.SingalStatus = status; //vibSignalRepository.Update(vibSignal); vibratingSingalCharHisAccRepository.AddNew(vibSingalHisAcc); }