/// <summary> /// Initializes a new instance of the BottomWave class. /// </summary> public BottomWave(int index, short value, short channel, xfActCode actionCode) { Index = index; Value = value; Channel = channel; ActionCode = actionCode; }
/// <summary> /// 读取 xxc 文件 /// </summary> /// <param name="filePath">文件路径</param> public AnalysisedData ReadFileSummary(string filePath) { // 判断 if (!File.Exists(filePath)) { throw new FileNotFoundException(filePath); } // 下位机空多个空编码值压缩展开后数量 int PULSE_length = 0; // B显Gps数量 int GPSsize_one = 0; // 忽略空白截取位置 记录变量 int j_ignore = -1; // 连续编码值个数 int STEP_length = 0; // 一次截取连续编码值个数 int All_STEP_length = 0; // 最新一个忽略空白 编码位置 int ignore_new_index = -1; // 用于不同分辨率状态下调整图像 //File_Start_Blank_Size = App.frm_W / 2; //File_End_Blank_Size = play_size - App.frm_W / 4; // 文件头添加空编码值分辨率不同而不同 int i = Common.File_Start_Blank_Size; int j = Common.File_Start_Blank_Size; // 倒车中追加的空编码值个数 int back_add_step_size = 0; // 倒车位置及长度记录 List <int> back_length_one = new List <int>(); List <int> back_index_one = new List <int>(); List <int> ignore_length_one = new List <int>(); List <int> ignore_index_one = new List <int>(); // 编码值的总数 用于进度条 int kk = 0; short macType = -1; int fileLength = 0; // 下位机空多个空编码值压缩展开后数量 using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read)) { // TODO:: 保证在 int 范围? fileLength = (int)fileStream.Length; using (BinaryReader firstdi = new BinaryReader(fileStream)) { try { while (true) { short firstData = ReadShort(firstdi); switch (firstData) { case (short)xfActCode.StepNum: // 读取 Pluse 累加 int readshort = ReadShort(firstdi); kk += readshort; // 此处+1为 忽略空白总数 预留位置 忽略空白开始、结束标记位占用 文件长度中 // STEP_PULSE_length标记位与长度数值 位置 // 当连续出现 STEP_PULSE_length时,xxc长度则大于实际数据长度 xxc数组末尾为空值 PULSE_length += readshort; break; case (short)xfActCode.Encoder_Step: kk++; break; case (short)xfActCode.MacType: macType = ReadShort(firstdi); back_add_step_size = GetBackAddStepSize(macType); // 读入机型后切换显示面板 // TODO::刷新 UI // 读入机型后切换显示面板 // newBFile_DrawPanel_one.readMactype(); break; case (short)xfActCode.GPS: GPSsize_one++; break; default: break; } } } catch (EndOfStreamException ex) { // 读取结束 // Logging } } } // 得到参数数组长度 //1500--文件末尾增加空编码值 //PULSE_length-需要膨胀的编码脉冲累计个数 // xxc_list = new short[500+(int) f.length()+1500 + // PULSE_length+Power_ON_Size*Power_ON_blank_Size]; // B显数据列表//readB所得出的数据链表 short[] xxc_list_one = new short[Common.File_Start_Blank_Size + fileLength + Common.File_End_Blank_Size + PULSE_length]; // readB所得出的编码值链表 int[] StepPulse_list = new int[Common.File_Start_Blank_Size + kk + Common.File_End_Blank_Size];; for (int size = 0; size < Common.File_Start_Blank_Size; size++) { xxc_list_one[size] = (short)xfActCode.Encoder_Step; StepPulse_list[size] = size; } // 忽略空白截取范围 int ignore_Size = 1000; // 忽略空白中前后插入空白距离 20170901 50改100 邓 int ignore_spacing_Size = 100; // 忽略空白中最大拼孔值差 int ignore_probe_distance_max = 250; //* 0.文件查询 1.报告查询 2.轨迹查询 3.xxa选项卡 4.一体机选项卡,5,文件播放 6.自动打开文件 7.自动导入文件8.显示耦合 //* 9.显示零点 10.0°调节 11.半自动播放 12.忽略空白模式 13.倒车抹除模式. 14上海版本界面 15.周期管理 16、二次波显示 bool[] BFile_Systemsetting_boolean_list = new bool[17] { true, true, true, true, true, true, false, false, false, true, false, false, false, false, true, true, true }; // 实际工作编码长度 int StepPulse_listsize = j; //TODO::xxb 处理略过 // xxc 不用处理倒车 // 下位机空多个空编码值压缩展开后数量 using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read)) { using (BinaryReader di = new BinaryReader(fileStream)) { try { if (macType == 0 || macType == 1) { while (true) { short data = ReadShort(di); if (data == (short)xfActCode.Encoder_Step)// 编码脉冲 { if (BFile_Systemsetting_boolean_list[12]) { All_STEP_length++; } xxc_list_one[i] = data; StepPulse_list[j] = i; i++; j++; } // 倒车结束 else if (data == (short)xfActCode.BackEnd) { if (BFile_Systemsetting_boolean_list[13]) { // 改为倒车抹除 // 倒车长度 -- 编码脉冲 short back_Length = ReadShort(di); if (back_Length >= 32766 || ignore_new_index > (j - back_Length - back_add_step_size)) { back_length_one.Add(0); back_index_one.Add(0); xxc_list_one[i] = data; i++; xxc_list_one[i] = back_Length; } else { int index_Max = j; int index_Max_i = i; // 此处减去400为 倒车结束后 下位机自动追加400空编码脉冲 // 向前找参数 j = index_Max - back_Length - back_add_step_size; // 开机倒车问题 防止将重要参数抹除 if (j < Common.File_Start_Blank_Size + 10) { j = Common.File_Start_Blank_Size + 10; } // 此if用于忽略空白时记录倒车标记位置 防止忽略将倒车剪去 if (BFile_Systemsetting_boolean_list[12]) { // 与倒车储存的参数拉开一个编码值 j_ignore = j; All_STEP_length = 0; } i = StepPulse_list[j]; xxc_list_one[i] = data; i++; xxc_list_one[i] = back_Length; i++; for (int index = StepPulse_list[j]; index < index_Max_i; index++) { xfActCode actCode = (xfActCode)xxc_list_one[index]; switch (actCode) { // 关机状态及复位模式(工作模式) // 开机状态及复位模式(工作模式) // 里程归零(工作模式) case xfActCode.PowerOff: case xfActCode.PowerOn: case xfActCode.KMRound: xxc_list_one[i] = (short)actCode; i++; break; // 机号,正常时0为结束标记,加脉冲标记是为防止字符串漏写0 // 人员,轨型,轨型,线号,场号,股号,铁号处理方式相同 case xfActCode.MacNum: case xfActCode.User: case xfActCode.RailType: case xfActCode.LineNum: case xfActCode.SiteNum: case xfActCode.TrackNum: case xfActCode.RailNum: int num = 1; xxc_list_one[i] = (short)actCode; i++; while (xxc_list_one[index + num] != 0) { xxc_list_one[i] = xxc_list_one[index + num]; i++; num++; } xxc_list_one[i] = 0; i++; break; // 轨高,轨头高,螺孔高,行别,里程方向,线别,工作模式 // 反射报警,穿透报警 case xfActCode.RailHgt: case xfActCode.RailHeadHgt: case xfActCode.RailBoltHgt: case xfActCode.LinkType: case xfActCode.Count: case xfActCode.LineType: case xfActCode.WorkMode: case xfActCode.BackAlarm: case xfActCode.PassAlarm: case xfActCode.Brightness: xxc_list_one[i] = (short)actCode; i++; xxc_list_one[i] = xxc_list_one[index + 1]; i++; break; // 旧标记,增益,探头角度,声程,零点 // 探头位置(水平偏移也称为拼孔值) case xfActCode.OldMark: case xfActCode.Gain: case xfActCode.ProbeAng: case xfActCode.TestRange: case xfActCode.ZeroDelay: case xfActCode.ProbePosition: xxc_list_one[i] = (short)actCode; i++; xxc_list_one[i] = xxc_list_one[index + 1]; i++; xxc_list_one[i] = xxc_list_one[index + 2]; i++; break; // 探头射向 case xfActCode.ProbeDir: xxc_list_one[i] = (short)actCode; i++; xxc_list_one[i] = xxc_list_one[index + 1]; i++; xxc_list_one[i] = xxc_list_one[index + 2]; i++; xxc_list_one[i] = xxc_list_one[index + 3]; i++; break; // 新标记 case xfActCode.NewMark: xxc_list_one[i] = (short)actCode; i++; xxc_list_one[i] = xxc_list_one[index + 1]; i++; xxc_list_one[i] = xxc_list_one[index + 2]; i++; xxc_list_one[i] = xxc_list_one[index + 3]; i++; int new_mark_num = 4; while (xxc_list_one[index + new_mark_num] != 0) { xxc_list_one[i] = xxc_list_one[index + new_mark_num]; i++; new_mark_num++; } xxc_list_one[i] = 0; i++; break; case xfActCode.SpROT_CUST: case xfActCode.SpSECT1: case xfActCode.SpELR1: case xfActCode.SpELR2: case xfActCode.SpTID: case xfActCode.SpRID: case xfActCode.SpRWT: case xfActCode.SpTRF: case xfActCode.SpUIC: case xfActCode.SpSECT2: xxc_list_one[i] = (short)actCode; i++; for (int add = 1; add < 16; add++) { xxc_list_one[i] = xxc_list_one[index + add]; i++; } xxc_list_one[i] = 0; i++; break; case xfActCode.SpOPER: int SpOPER_int = 1; xxc_list_one[i] = (short)actCode; i++; while (xxc_list_one[index + SpOPER_int] != 0 && SpOPER_int <= Common.SpOPER_String_size) { xxc_list_one[i] = xxc_list_one[index + SpOPER_int]; i++; SpOPER_int++; } xxc_list_one[i] = 0; i++; break; case xfActCode.SpLR: int SpLR_int = 1; xxc_list_one[i] = (short)actCode; i++; while (xxc_list_one[index + SpLR_int] != 0 && SpLR_int <= Common.SpLR_String_size) { xxc_list_one[i] = xxc_list_one[index + SpLR_int]; i++; SpLR_int++; } xxc_list_one[i] = 0; i++; break; case xfActCode.SpPROC: int SpPROC_int = 1; xxc_list_one[i] = (short)actCode; i++; while (xxc_list_one[index + SpPROC_int] != 0 && SpPROC_int <= Common.SpPROC_String_size) { xxc_list_one[i] = xxc_list_one[index + SpPROC_int]; i++; SpPROC_int++; } xxc_list_one[i] = 0; i++; break; case xfActCode.SpCUST: int SpCUST_int = 1; xxc_list_one[i] = (short)actCode; i++; while (xxc_list_one[index + SpCUST_int] != 0 && SpCUST_int <= Common.SpCUST_String_size) { xxc_list_one[i] = xxc_list_one[index + SpCUST_int]; i++; SpCUST_int++; } xxc_list_one[i] = 0; i++; break; default: break; } } } } else { // 此if用于忽略空白时记录倒车标记位置 防止忽略将倒车剪去 if (BFile_Systemsetting_boolean_list[12]) { j_ignore = j; All_STEP_length = 0; } // 不抹除时按顺序写入数据 short back_Length = ReadShort(di); xxc_list_one[i] = data; i++; xxc_list_one[i] = back_Length; i++; // 如果倒车大于三米 则计算里程时不应减去 if (back_Length >= 32766) { back_Length = 0; } // 记录倒车位置和添加位置 back_length_one.Add((int)back_Length); back_index_one.Add(j); } } else if (data <= (short)xfActCode.Time && data >= (short)xfActCode.BattPercent) { // 20170918只忽略米包信息 // 遇到非米包信息 // 记录编码脉冲位置 // 用于忽略空白 xxc_list_one[i] = data; i++; } // TODO 忽略问题 2017-09-16 由遇到什么停止 改为 遇到什么不停止比如 米包不停下 else if (data < (short)xfActCode.Encoder_Step) { // 表示 出去上方所有的标记位 以外都需要记录位置 if (BFile_Systemsetting_boolean_list[12]) { /*********************** 此部分为将一个完整B显点数据写入 老数据结构写4位 新结构写3位 ***********************/ // 如果空白长度不足以忽略时 if (All_STEP_length < ignore_Size) { xxc_list_one[i] = data; i++; } /****************** 空白长度足以忽略时 ****************************/ else if (All_STEP_length > ignore_Size) { j = j_ignore; // 得到当前B显点后一个编码值xxc数组位置 // j值永远为当前编码脉冲的下一位 // 用于可能得到里程时间等显示信息 i = StepPulse_list[j]; // 此循环为忽略空白填充空编码值 for (int length = 0; length < ignore_spacing_Size; length++) { xxc_list_one[i] = (short)xfActCode.Encoder_Step; StepPulse_list[j] = i; i++; j++; } xxc_list_one[i] = (short)xfActCode.STEP_BLANK_end; i++; // 记录忽略空白位置及长度 用于作业参数中工作里程计算 // WorkInfoMileage_values ignore_length_one.Add(All_STEP_length); ignore_index_one.Add(j); ignore_new_index = j; // 此循环为忽略空白填充空编码值 // ignore_probe_distance_max为防止拼孔混乱添加 for (int length = 0; length < ignore_spacing_Size + ignore_probe_distance_max; length++) { xxc_list_one[i] = (short)xfActCode.Encoder_Step; StepPulse_list[j] = i; i++; j++; } xxc_list_one[i] = data; i++; } // 进入到这里 即为需要忽略空白停下的位置 j_ignore = j; All_STEP_length = 0; } else { // 不忽略时 改怎么记录怎么记录 xxc_list_one[i] = data; i++; } } else { xxc_list_one[i] = data; i++; } } } else { while (true) { // TODO:: 如果为xxC 不用处理倒车 short data = ReadShort(di); if (data == (short)xfActCode.StepNum) { STEP_length = ReadShort(di); if (BFile_Systemsetting_boolean_list[12]) { All_STEP_length = All_STEP_length + STEP_length; } for (int length = 0; length < STEP_length; length++) { xxc_list_one[i] = (short)xfActCode.Encoder_Step; StepPulse_list[j] = i; i++; j++; } } else if (data == (short)xfActCode.Encoder_Step) {// TODO 编码脉冲 if (BFile_Systemsetting_boolean_list[12]) { All_STEP_length++; } xxc_list_one[i] = data; StepPulse_list[j] = i; // 此处i++必须放在 StepPulse_list[j] = i; 之后 否则指向向后偏移一位 i++; j++; } else if (data <= (short)xfActCode.Time && data >= (short)xfActCode.BattPercent) { // 20170918只忽略米包信息 // 遇到非米包信息 // 记录编码脉冲位置 // 用于忽略空白 xxc_list_one[i] = data; i++; } else if (data < (short)xfActCode.Encoder_Step) { // 表示 出去上方所有的标记位 以外都需要记录位置 if (BFile_Systemsetting_boolean_list[12]) { /*********************** 此部分为将一个完整B显点数据写入 老数据结构写4位 新结构写3位 ***********************/ // 如果空白长度不足以忽略时 if (All_STEP_length < ignore_Size) { xxc_list_one[i] = data; i++; } /****************** 空白长度足以忽略时 ****************************/ else if (All_STEP_length > ignore_Size) { j = j_ignore; // 得到当前B显点后一个编码值xxc数组位置 // j值永远为当前编码脉冲的下一位 // 用于可能得到里程时间等显示信息 i = StepPulse_list[j]; xxc_list_one[i] = (short)xfActCode.STEP_BLANK_end; i++; // 此循环为忽略空白填充空编码值 // ignore_probe_distance_max为防止拼孔混乱添加 for (int length = 0; length < ignore_spacing_Size + ignore_probe_distance_max; length++) { xxc_list_one[i] = (short)xfActCode.Encoder_Step; StepPulse_list[j] = i; i++; j++; } xxc_list_one[i] = data; i++; } j_ignore = j; All_STEP_length = 0; } else { xxc_list_one[i] = data; i++; } } else { xxc_list_one[i] = data; i++; } } } } catch (EndOfStreamException ex) { // 读取结束 // Logging } catch (Exception ex) { Console.WriteLine(ex.Message); } // 文件尾添加Ecoder for (int size = 0; size < Common.File_End_Blank_Size; size++) { xxc_list_one[i + size] = (short)xfActCode.Encoder_Step; StepPulse_list[j + size] = i + size; } // 防止文件以倒车结束编码值指针为储存 // TODO::lwh StepPulse_listsize 可以用 StepPulse_list.size 来替换么? // 不太可以把 tepPulse_list.size在忽略空白时 会大于 StepPulse_listsize StepPulse_listsize = j + Common.File_End_Blank_Size; } } return(new AnalysisedData(xxc_list_one)); }
public HT10D_Info ReadFileSummary(string filePath) { // 判断 if (!File.Exists(filePath)) { throw new FileNotFoundException(filePath); } HT10D_Info mHT10D_Info = new HT10D_Info(); mHT10D_Info.FilePath = filePath; short[] data_list; int fileLength = 0; using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read)) { fileLength = (int)fileStream.Length; data_list = new short[fileLength]; int i = 0; using (BinaryReader firstdi = new BinaryReader(fileStream)) { try { while (true) { short firstData = ReadShort(firstdi); data_list[i] = firstData; i++; } } catch (Exception e) { //throw; } } } for (int index = 0; index < data_list.Length; index++) { xfActCode actCode = (xfActCode)data_list[index]; short[] temp = new short[AViewLength]; switch (actCode) { case xfActCode.HT_WeldNum: mHT10D_Info.DamageInfo.WeldNum = GetUTF8String(data_list, index); index += mHT10D_Info.DamageInfo.WeldNum.Length; break; case xfActCode.HT_SwitchNum: mHT10D_Info.DamageInfo.SwitchNum = GetUTF8String(data_list, index); index += mHT10D_Info.DamageInfo.SwitchNum.Length; break; case xfActCode.HT_RailNum: mHT10D_Info.DamageInfo.RailNum = GetUTF8String(data_list, index); index += mHT10D_Info.DamageInfo.RailNum.Length; break; case xfActCode.HT_WeldType: mHT10D_Info.DamageInfo.WeldType = data_list[index + 1]; index += 1; break; case xfActCode.HT_WeldDesc: mHT10D_Info.DamageInfo.WeldDesc = GetUTF8String(data_list, index); index += mHT10D_Info.DamageInfo.WeldDesc.Length; break; case xfActCode.HT_RailDesc: mHT10D_Info.DamageInfo.RailDesc = GetUTF8String(data_list, index); index += mHT10D_Info.DamageInfo.RailDesc.Length; break; case xfActCode.HT_RailFactory: mHT10D_Info.DamageInfo.RailFactory = GetUTF8String(data_list, index); index += mHT10D_Info.DamageInfo.RailFactory.Length; break; case xfActCode.HT_RailSteel: mHT10D_Info.DamageInfo.RailSteel = GetUTF8String(data_list, index); index += mHT10D_Info.DamageInfo.RailSteel.Length; break; case xfActCode.HT_FurnaceNum: mHT10D_Info.DamageInfo.FurnaceNum = GetUTF8String(data_list, index); index += mHT10D_Info.DamageInfo.FurnaceNum.Length; break; case xfActCode.HT_DamageType: mHT10D_Info.DamageInfo.DamageType = data_list[index + 1]; index += 1; break; case xfActCode.HT_DamageSize: mHT10D_Info.DamageInfo.DamageSize = data_list[index + 1]; index += 1; break; case xfActCode.HT_DamagePos: mHT10D_Info.DamageInfo.DamagePos = data_list[index + 1]; index += 1; break; case xfActCode.HT_DamageDesc: mHT10D_Info.DamageInfo.DamageDesc = GetUTF8String(data_list, index); index += mHT10D_Info.DamageInfo.DamageDesc.Length; break; case xfActCode.HT_PosDesc: mHT10D_Info.DamageInfo.PosDesc = GetUTF8String(data_list, index); index += mHT10D_Info.DamageInfo.PosDesc.Length; break; case xfActCode.HT_X: mHT10D_Info.DamageInfo.HT_X = data_list[index + 1]; index += 1; break; case xfActCode.HT_Y: mHT10D_Info.DamageInfo.HT_Y = data_list[index + 1]; index += 1; break; case xfActCode.HT_GainDelta: mHT10D_Info.DamageInfo.GainDelta = data_list[index + 1]; index += 1; break; case xfActCode.HT_TestRange: mHT10D_Info.DamageInfo.TestRange = data_list[index + 1]; index += 1; break; case xfActCode.HT_PulseShift: mHT10D_Info.DamageInfo.PulseShift = data_list[index + 1]; index += 1; break; case xfActCode.HT_Launch: mHT10D_Info.DamageInfo.Launch = data_list[index + 1]; index += 1; break; case xfActCode.HT_Receiving: mHT10D_Info.DamageInfo.Receiving = data_list[index + 1]; index += 1; break; case xfActCode.HT_Damping: mHT10D_Info.DamageInfo.Damping = data_list[index + 1]; index += 1; break; case xfActCode.HT_Intensity: mHT10D_Info.DamageInfo.Intensity = data_list[index + 1]; index += 1; break; case xfActCode.HT_PulseWidth: mHT10D_Info.DamageInfo.PulseWidth = data_list[index + 1]; index += 1; break; case xfActCode.HT_Suppress: mHT10D_Info.DamageInfo.Suppress = data_list[index + 1]; index += 1; break; case xfActCode.HT_Bandwidth: mHT10D_Info.DamageInfo.Bandwidth = data_list[index + 1]; index += 1; break; case xfActCode.HT_Detection: mHT10D_Info.DamageInfo.Detection = data_list[index + 1]; index += 1; break; case xfActCode.HT_WorkMode: mHT10D_Info.DamageInfo.WorkMode = data_list[index + 1]; index += 1; break; case xfActCode.HT_ProbeType: mHT10D_Info.DamageInfo.ProbeType = data_list[index + 1]; index += 1; break; case xfActCode.HT_RepeatFreq: mHT10D_Info.DamageInfo.RepeatFreq = data_list[index + 1]; index += 1; break; case xfActCode.HT_FrontDist: mHT10D_Info.DamageInfo.FrontDist = data_list[index + 1]; index += 1; break; case xfActCode.HT_ZeroDelay: mHT10D_Info.DamageInfo.ZeroDelay = data_list[index + 1]; index += 1; break; case xfActCode.HT_Crystal: mHT10D_Info.DamageInfo.Crystal = data_list[index + 1]; index += 1; break; case xfActCode.HT_ProbeFreq: mHT10D_Info.DamageInfo.ProbeFreq = data_list[index + 1]; index += 1; break; case xfActCode.HT_SoundVelocity: mHT10D_Info.DamageInfo.SoundVelocity = data_list[index + 1]; index += 1; break; case xfActCode.HT_Thickness: mHT10D_Info.DamageInfo.Thickness = data_list[index + 1]; index += 1; break; case xfActCode.HT_AmpMode: mHT10D_Info.DamageInfo.AmpMode = data_list[index + 1]; index += 1; break; case xfActCode.HT_WaveType: mHT10D_Info.DamageInfo.WaveType = data_list[index + 1]; index += 1; break; case xfActCode.HT_MeasureUnit: mHT10D_Info.DamageInfo.MeasureUnit = data_list[index + 1]; index += 1; break; case xfActCode.HT_SurfaceCompEn: mHT10D_Info.DamageInfo.SurfaceCompEn = data_list[index + 1]; index += 1; break; case xfActCode.HT_MeasureTrigger: mHT10D_Info.DamageInfo.MeasureTrigger = data_list[index + 1]; index += 1; break; case xfActCode.HT_Language: mHT10D_Info.DamageInfo.Language = data_list[index + 1]; index += 1; break; case xfActCode.HT_APicture: mHT10D_Info.AViewImage = GetViewImage(data_list, index); break; case xfActCode.HT_BPicture: mHT10D_Info.BViewImage = GetViewImage(data_list, index); break; case xfActCode.HT_ChanNum: mHT10D_Info.DamageInfo.ChanNum = data_list[index + 1]; index += 1; break; case xfActCode.HT_GateHand: mHT10D_Info.DamageInfo.GateHand = data_list[index + 1]; break; case xfActCode.HT_GateWidth: mHT10D_Info.DamageInfo.GateWidth = data_list[index + 1]; break; case xfActCode.HT_GateHight: mHT10D_Info.DamageInfo.GateHeight = data_list[index + 1]; break; case xfActCode.AWAVE: if (mHT10D_Info.AViewList == null) { mHT10D_Info.AViewList = new List <short[]>(); } GetAViewList(mHT10D_Info, data_list, index); index += AViewLength / 2; break; default: if ((int)actCode < -10000 && (int)actCode > -12000) { Console.WriteLine(actCode); } break; } } return(mHT10D_Info); }