/// <summary> /// AddRealData /// </summary> /// <param name="realdata">NowRegistData</param> public static void AddRealData(SampleData realdata) { lock (lockobj_samples) { //�ŏI��M���Ԃ�X�V LastDataReceiveTime = realdata.SampleTime; //���[�h1�̏ꍇ if (RM_3000.Sequences.TestSequence.GetInstance().Mode == Sequences.TestSequence.ModeType.Mode1) { //���[�h�P�̏���ɓ����Ă��邩�H bMode1_Now_Record = Judge_Mode1_Condition(realdata); //���ϑ���̏ꍇ if (SystemSetting.MeasureSetting.Mode1_MeasCondition.MeasConditionType == Mode1_MeasCondition.EnumMeasConditionType.MEAS_AVG_SHOTS) { // �ۑ��^�C�~���O = ���ω��Z����� if (bMode1_Now_Record) { for (int shotindex = 0 ; shotindex < TmpAverage_Samples.Count ; shotindex++) { SampleData tmp = TmpAverage_Samples[shotindex]; for (int i = 0; i < tmp.ChannelDatas.Length; i++) { if (realdata.ChannelDatas[i] == null) continue; if (realdata.ChannelDatas[i].DataValues is Value_Standard) { //����͂܂���������ς��Ă��� if (shotindex == 0) { ((Value_Standard)realdata.ChannelDatas[i].DataValues).Value /= TmpAverage_Samples.Count + 1; } ((Value_Standard)realdata.ChannelDatas[i].DataValues).Value += ((Value_Standard)tmp.ChannelDatas[i].DataValues).Value / (TmpAverage_Samples.Count + 1); ////�S�đ������Ȃ�A���ω��Z //if (shotindex + 1 == TmpAverage_Samples.Count) // ((Value_Standard)realdata.ChannelDatas[i].DataValues).Value /= TmpAverage_Samples.Count + 1; } else if (realdata.ChannelDatas[i].DataValues is Value_MaxMin) { //����͂܂���������ς��Ă��� if (shotindex == 0) { ((Value_MaxMin)realdata.ChannelDatas[i].DataValues).MaxValue /= TmpAverage_Samples.Count + 1; ((Value_MaxMin)realdata.ChannelDatas[i].DataValues).MinValue /= TmpAverage_Samples.Count + 1; } ((Value_MaxMin)realdata.ChannelDatas[i].DataValues).MaxValue += ((Value_MaxMin)tmp.ChannelDatas[i].DataValues).MaxValue / (TmpAverage_Samples.Count + 1); ((Value_MaxMin)realdata.ChannelDatas[i].DataValues).MinValue += ((Value_MaxMin)tmp.ChannelDatas[i].DataValues).MinValue / (TmpAverage_Samples.Count + 1); ////�S�đ������Ȃ�A���ω��Z //if (shotindex + 1 == TmpAverage_Samples.Count) //{ // ((Value_MaxMin)realdata.ChannelDatas[i].DataValues).MaxValue /= TmpAverage_Samples.Count + 1; // ((Value_MaxMin)realdata.ChannelDatas[i].DataValues).MinValue /= TmpAverage_Samples.Count + 1; //} } } } //���ߍ��ݗp��N���A TmpAverage_Samples.Clear(); GC.Collect(); } // �ۑ��^�C�~���O�ł͂Ȃ� else { //���Ϗ����p�ɗ��ߍ��� TmpAverage_Samples.Add(realdata); } } } //�ۑ��w�����肩�AMode1�Ȃ���[�h�P����OK���� if (bRecord && (bMode1_Now_Record || RM_3000.Sequences.TestSequence.GetInstance().Mode != Sequences.TestSequence.ModeType.Mode1)) { //�e�X�g�f�[�^�Ƃ��ċL�� RealMeasureData.SampleDatas.Add(realdata); } //���[�h1�ŕۑ��^�C�~���O�ł͂Ȃ����́A�`��ɂ���߂Ȃ��B if (bCond_MeasurePause) return; SampleData realdata_sample = (SampleData)realdata.Clone(); //���[�h�P����擾�Ȃ�I�t�Z�b�g�p���I�[����ݒ� if (SystemSetting.MeasureSetting.Mode == (int)ModeType.MODE1 && receiveCount == 0) { //�`�����l�������[�v for (int i = 1; i < realdata_sample.ChannelDatas.Length; i++) { if (realdata_sample.ChannelDatas[i] == null) continue; if (realdata_sample.ChannelDatas[i].DataValues == null) continue; //�`�����l����B��R�Ȃ�� if (SystemSetting.ChannelsSetting.ChannelSettingList[i - 1].ChKind == ChannelKindType.B || SystemSetting.ChannelsSetting.ChannelSettingList[i - 1].ChKind == ChannelKindType.R) { //TagNo1�Ń`�F�b�N if (SystemSetting.RelationSetting.RelationList[i].TagNo_1 != -1 && RealTimeData.DataTagSetting.GetTag(SystemSetting.RelationSetting.RelationList[i].TagNo_1).StaticZero == 0) { //�m�[�}���f�[�^ if (realdata_sample.ChannelDatas[i].DataValues is Value_Standard) { RealTimeData.DataTagSetting.GetTag(SystemSetting.RelationSetting.RelationList[i].TagNo_1).StaticZero = ((Value_Standard)realdata_sample.ChannelDatas[i].DataValues).Value; } //MaxMin�f�[�^ else { RealTimeData.DataTagSetting.GetTag(SystemSetting.RelationSetting.RelationList[i].TagNo_1).StaticZero = (((Value_MaxMin)realdata_sample.ChannelDatas[i].DataValues).MinValue + ((Value_MaxMin)realdata_sample.ChannelDatas[i].DataValues).MaxValue) / 2; } } //TagNo2 �Ń`�F�b�N if (SystemSetting.RelationSetting.RelationList[i].TagNo_2 != -1 && RealTimeData.DataTagSetting.GetTag(SystemSetting.RelationSetting.RelationList[i].TagNo_2).StaticZero == 0) { //�m�[�}���Ȃ�Ύg��Ȃ� if (realdata_sample.ChannelDatas[i].DataValues is Value_Standard) { } //MaxMin�Ńf�[�^��g�� else { RealTimeData.DataTagSetting.GetTag(SystemSetting.RelationSetting.RelationList[i].TagNo_2).StaticZero = (((Value_MaxMin)realdata_sample.ChannelDatas[i].DataValues).MinValue + ((Value_MaxMin)realdata_sample.ChannelDatas[i].DataValues).MaxValue) / 2; } } } } } Samples.Add(realdata_sample); receiveCount++; } }