From 18a986a128b88a6831cc55ecb8bf2d48a6c79618 Mon Sep 17 00:00:00 2001 From: YuYang Shen Date: Tue, 18 Mar 2025 16:03:59 +0800 Subject: [PATCH] Create Func : metadata_handler() Merged Func: WriteSingleFilePmu() + WriteSingleFileDps() --- .vs/Testrong.User.Program/v17/.suo | Bin 330240 -> 309760 bytes .../v17/DocumentLayout.backup.json | 6 +- .../v17/DocumentLayout.json | 18 +- Testrong.User.Program/UserProgram.cs | 356 ++++++++++-------- ...gnTimeResolveAssemblyReferencesInput.cache | Bin 2939 -> 2561 bytes ...ser.Program.csproj.AssemblyReference.cache | Bin 13553 -> 12946 bytes 6 files changed, 210 insertions(+), 170 deletions(-) diff --git a/.vs/Testrong.User.Program/v17/.suo b/.vs/Testrong.User.Program/v17/.suo index 5cca2024b7cc682e265094ef4e94679f8b28b3c9..3ea42da037cc8b34c2a7151d9e70c05f9b7e463b 100644 GIT binary patch delta 8909 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 slotList, string arm_dna, IFlowRunnerContext context, bool init_Flag, string Type = "NULL", int Channel = -1, string Mode = "NULL", string Rload = "NaN", string Range = "N/A", string filepath = "N/A", string filetime = "N/A") + { + //Are We Writing the header of MetaData? + if (init_Flag == true) + { + //Each Slot has its own Thread + //But We DON'T want to run in parallel in this case(Cali&Write file) + //So We Should Check Which Slot We Are Running... + if (SlotNum == slotList[0]) + { + + + swdata.WriteLine("Tester_Name,Board_Id,Slot_Ip,Stil_Version"); + for (int w = 0; w < 12; w++)//修改为12SLOT + { + if (w == (slotList[0] - 1)) + { + swdata.WriteLine($"Slot{SlotNum},{arm_dna},{context.Communicator.ServerIP},V1.0.0"); + } + else + { + swdata.WriteLine($"Slot{(w + 1)}"); + } + } + for (int i = 0; i < 1; i++) + { + swdata.WriteLine(); + } + swdata.Write("Slot_Dna,Channel_Type,Channel_No,Mode,R_Load,I_Range,V_Range,Meas_Range,File_Path,File_Time\n"); + } + else + { + int Cried = slotList.FindIndex(x => x.Equals(SlotNum)); + while (true) + { + Thread.Sleep(1000); + if (File.Exists(EXT_CAL_PATH + slotList[Cried - 1] + ".flag")) //Wait until previous thread flags completion + { + File.Delete(EXT_CAL_PATH + slotList[Cried - 1] + ".flag"); + break; + } + } + + File.Move(METADATA_PATH, EXT_CAL_PATH + "metadata_temp" + ".csv"); + StreamReader sr = new StreamReader(EXT_CAL_PATH + "metadata_temp" + ".csv", Encoding.UTF8); + int line = 0; + while (!sr.EndOfStream) + { + string tmp = sr.ReadLine(); + if (line == slotList[Cried]) + { + swdata.WriteLine("Slot" + SlotNum + "," + arm_dna + "," + context.Communicator.ServerIP + "," + "V1.0.0"); + } + else + { + swdata.WriteLine(tmp); + } + line++; + } + sr.Close(); + File.Delete(EXT_CAL_PATH + "metadata_temp" + ".csv"); + } + } + //Now We Are Writing the body of the file + else + { + swdata.Write($"{arm_dna},"); + swdata.Write($"{Type},"); + if (Type == "PMU") + { + swdata.Write($"{Channel},"); + } + else + { + swdata.Write($"PS{Channel},"); + } + swdata.Write($"{Mode},"); + swdata.Write($"{Rload},"); + swdata.Write($"{Range},"); + swdata.Write("20V,"); + swdata.Write("13V,"); + swdata.Write($"{filepath},"); + swdata.Write($"{filetime}\n"); + swdata.Flush(); + } + } + private int GetPMUTempSensorIndex(int channel) { if ((channel >= 65 && channel <= 80) || (channel >= 97 && channel <= 112) || (channel >= 193 && channel <= 208) || (channel >= 241 && channel <= 256)) @@ -727,19 +814,43 @@ namespace Testrong.User.Program } return DmmDic; } - public void WriteSingleFilePmu(string filename,int slot, string dna, int channel, string mode, string rload, double[,] extR, string range, double[] ForceValue, double[] AteMeasure, double[] DmmMeasure) + + //Write Data To File + /* + * Variable Definition + * string filename: filename + * int slot: Slot Number + * string dna: DNA Number + * string type: DPS/PMU + * int channel: Channel Number(PMU:1-256, DPS:1-32/64) + * string mode: FVMV/FVMI/FIMV/FZMV(PMU Only) + * string rload: External Resistance Load + * double[,] extR: Internal Resistance On the External Calibration Board + * string range: Board Measurment Range(5uA; 20uA; 200uA; 2mA; 60mA; 1A(DPS Only)) + * double[] ForceValue: ForceValue + * double[] AteMeasure: ATE Measure Value + * double[] DmmMeasure: DMM Measure Value + */ + public void WriteSingleFile(string filename,int slot, string dna, string type,int channel, string mode, string rload, double[,] extR, string range, double[] ForceValue, double[] AteMeasure, double[] DmmMeasure) { StreamWriter sw = new StreamWriter(filename, true, Encoding.UTF8); sw.AutoFlush = true; sw.Write("Tester_Name,Foo\n"); sw.Write($"Slot_No,{slot}\n"); sw.Write($"Board_Dna,{dna}\n"); - sw.Write("Channel_Type,PMU\n"); + sw.Write("Channel_Type,{type}\n"); sw.Write($"Channel_No,{channel}\n"); sw.Write($"Mode,{mode}\n"); sw.Write($"R_Load,{rload}\n"); sw.Write($"R_Int,{0}\n"); - sw.Write($"R_Ext,{extR[channel - 1, slot - 1]}\n"); + if(type == "PMU") + { + sw.Write($"R_Ext,{extR[channel - 1, slot - 1]}\n"); + } + else + { + sw.Write($"R_Ext,{0}\n"); + } sw.Write($"I_Range,{range}\n"); sw.Write("V_Range,20V\n"); sw.Write("Meas_Range,13V\n"); @@ -789,67 +900,7 @@ namespace Testrong.User.Program sw.Flush(); sw.Close(); } - public void WriteSingleFileDps(string filename, int slot, string dna, int channel, string mode, string rload, string range, double[] ForceValue, double[] AteMeasure, double[] DmmMeasure) - { - StreamWriter sw = new StreamWriter(filename, true, Encoding.UTF8); - sw.AutoFlush = true; - sw.Write("Tester_Name,Foo\n"); - sw.Write($"Slot_No,{slot}\n"); - sw.Write($"Board_Dna,{dna}\n"); - sw.Write("Channel_Type,DPS\n"); - sw.Write($"Channel_No,{channel}\n"); - sw.Write($"Mode,{mode}\n"); - sw.Write($"R_Load,{rload}\n"); - sw.Write($"R_Int,{0}\n"); - sw.Write($"R_Ext,{0}\n"); - sw.Write($"I_Range,{range}\n"); - sw.Write("V_Range,20V\n"); - sw.Write("Meas_Range,13V\n"); - sw.Write("\n"); - sw.Write("Force Value,ATE Measure,DMM Measure,Temperature\n"); - for (int writeLine = 0; writeLine < 5; writeLine++) - { - if (mode == "FVMV") - { - sw.Write($"{ForceValue[writeLine]:F8},"); - sw.Write($"{AteMeasure[writeLine]:F8},"); - sw.Write($"{DmmMeasure[writeLine]:F8},"); - } - else if (mode == "FVMI") - { - if (range == "60mA" || range == "1A") - { - sw.Write($"{ForceValue[writeLine]:F10},"); - sw.Write($"{AteMeasure[writeLine]:F15},"); - sw.Write($"{DmmMeasure[writeLine]:F15},"); - } - else - { - sw.Write($"{ForceValue[writeLine]:F10},"); - sw.Write($"{AteMeasure[writeLine]:F15},"); - sw.Write($"{(DmmMeasure[writeLine] / Convert.ToDouble(rload)):F15},"); - } - } - else if (mode == "FIMV") - { - if (range == "60mA" || range == "5uA") - { - sw.Write($"{ForceValue[writeLine]:F10},"); - sw.Write($"{AteMeasure[writeLine]:F15},"); - sw.Write($"{(DmmMeasure[writeLine] / Convert.ToDouble(rload)):F15},"); - } - else - { - sw.Write($"{ForceValue[writeLine]:F10},"); - sw.Write($"{AteMeasure[writeLine]:F15},"); - sw.Write($"{(DmmMeasure[writeLine] / Convert.ToDouble(rload)):F15},"); - } - } - sw.Write($"{0:F8}\n"); - } - sw.Flush(); - sw.Close(); - } + #endregion #region TestCase @@ -1302,17 +1353,7 @@ namespace Testrong.User.Program File.Delete(EXT_CAL_PATH + "metadata_temp" + ".csv"); dmm.InitDMM(ksightConnStr); } - Dictionary M013_PMU = new Dictionary() - { - {166,114 }, - {167,113 }, - {168,112 }, - {169,111 }, - {230,242 }, - {231,241 }, - {232,240 }, - {233,239 } - }; + string filetime = DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss"); for (int loopk = 0; loopk < 256; loopk++) { @@ -2193,65 +2234,21 @@ namespace Testrong.User.Program throw ex; } //-----Start Slot Number----- + //Write Meta DATA StreamWriter swdata; - if (SlotNum == slotList[0]) - { - dmm.Init(ksightConnStr); - swdata = new StreamWriter(METADATA_PATH, true, Encoding.UTF8); - swdata.AutoFlush = true; - swdata.WriteLine("Tester_Name,Board_Id,Slot_Ip,Stil_Version"); - for (int w = 0; w < 12; w++)//修改为12SLOT - { - if (w == (slotList[0] - 1)) - { - swdata.WriteLine($"Slot{SlotNum},{arm_dna},{context.Communicator.ServerIP},V1.0.0"); - } - else - { - swdata.WriteLine($"Slot{(w + 1)}"); - } - } - for (int i = 0; i < 1; i++) - { - swdata.WriteLine(); - } - swdata.Write("Slot_Dna,Channel_Type,Channel_No,Mode,R_Load,I_Range,V_Range,Meas_Range,File_Path,File_Time\n"); - } - else - { - int Cried = slotList.FindIndex(x => x.Equals(SlotNum)); - while (true) - { - Thread.Sleep(1000); - if (File.Exists(EXT_CAL_PATH + slotList[Cried - 1] + ".flag")) //Wait until previous thread flags completion - { - File.Delete(EXT_CAL_PATH + slotList[Cried - 1] + ".flag"); - break; - } - } - dmm.Init(ksightConnStr); - File.Move(METADATA_PATH, EXT_CAL_PATH + "metadata_temp" + ".csv"); - StreamReader sr = new StreamReader(EXT_CAL_PATH + "metadata_temp" + ".csv", Encoding.UTF8); - swdata = new StreamWriter(METADATA_PATH, true, Encoding.UTF8); - swdata.AutoFlush = true; - int line = 0; - while (!sr.EndOfStream) - { - string tmp = sr.ReadLine(); - if (line == slotList[Cried]) - { - swdata.WriteLine("Slot" + SlotNum + "," + arm_dna + "," + context.Communicator.ServerIP + "," + "V1.0.0"); - } - else - { - swdata.WriteLine(tmp); - } - line++; - } - sr.Close(); - File.Delete(EXT_CAL_PATH + "metadata_temp" + ".csv"); - } + swdata = new StreamWriter(METADATA_PATH, true, Encoding.UTF8); + swdata.AutoFlush = true; + + metadata_handler( + swdata: swdata, + SlotNum: SlotNum, + slotList: slotList, + arm_dna: arm_dna, + context: context, + init_Flag: true + ); //-----Start Data Collection----- + dmm.Init(ksightConnStr); List Info = slotTestInfo[SlotNum]; //{0:PMU_FVMV; 1:PMU_FVMI; 2:PMU_FIMV; 3:PMU_FZMV; 4:DPS_FVMV; 5:DPS_FVMI; 6:DPS_FIMV} for (int loopi = 0; loopi < Info.Count/*Info.Count*/; loopi ++)//-----Loop Mode and Type----- @@ -2387,7 +2384,7 @@ namespace Testrong.User.Program string[] PmuPinName_FZFV = new string[2]; for (int loopk = 0; loopk < ListChannels.Count/*ListChannels.Count*/; loopk++)//-----Loop Channel----- { - if (Info[loopi].chType == "PMU") + if (Type == "PMU") { int ch = ListChannels[loopk]; @@ -2564,7 +2561,7 @@ namespace Testrong.User.Program ForceValueDir.Add(ListChannels[loopk], ForceValue); testCh.Add(ListChannels[loopk]); } - if(Info[loopi].chType == "DPS") + else if(Type == "DPS") { string[] DpsPinName = { ("DPS" + ListChannels[loopk]) }; string[] allDpsPinNames = Select_DpsPin[testVersion]; @@ -2749,10 +2746,14 @@ namespace Testrong.User.Program testCh.Add(ListChannels[loopk]); } } + + //Read Back Value From DMM int DataCount = testCh.Count * SampliCount; double[] dmmRead = dmm.MultiRead(DataCount); dmm.ClearReadingMemory(); DmmMeasureDir = ReadBackDmm(dmmRead, testCh); + + //Write Data to File if (Type == "PMU") { for (int writeNum = 0; writeNum < testCh.Count; writeNum++) @@ -2761,18 +2762,36 @@ namespace Testrong.User.Program string filepath = "Slot" + SlotNum + "_PMU_" + "ch" + ch + "_" + Mode + "_" + Rload + "_" + Range + ".csv"; string filename = EXT_CAL_PATH + filepath; string filetime = DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss"); - WriteSingleFilePmu(filename, SlotNum, arm_dna, ch, Mode, rl, ExtBoard_Res, Range, ForceValueDir[ch], AteMeasureDir[ch], DmmMeasureDir[ch]); - swdata.Write($"{arm_dna},"); - swdata.Write("PMU,"); - swdata.Write($"{ch},"); - swdata.Write($"{Mode},"); - swdata.Write($"{rl},"); - swdata.Write($"{Range},"); - swdata.Write("20V,"); - swdata.Write("13V,"); - swdata.Write($"{filepath},"); - swdata.Write($"{filetime}\n"); - swdata.Flush(); + WriteSingleFile( + filename: filename, + slot: SlotNum, + dna: arm_dna, + type: Type, + channel: ch, + mode: Mode, + rload: rl, + extR: ExtBoard_Res, + range: Range, + ForceValue: ForceValueDir[ch], + AteMeasure: AteMeasureDir[ch], + DmmMeasure: DmmMeasureDir[ch] + ); + + metadata_handler( + swdata: swdata, + SlotNum: SlotNum, + slotList: slotList, + arm_dna: arm_dna, + context: context, + init_Flag: false, + Type:Type, + Channel:ch, + Mode:Mode, + Rload:rl, + Range:Range, + filepath:filepath, + filetime:filetime + ); } } else @@ -2783,18 +2802,39 @@ namespace Testrong.User.Program string filepath = "Slot" + SlotNum + "_DPS_" + "ch" + ch + "_" + Mode + "_" + Rload + "_" + Range + ".csv"; string filename = EXT_CAL_PATH + filepath; string filetime = DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss"); - WriteSingleFileDps(filename, SlotNum, arm_dna, ch, Mode, rl, Range, ForceValueDir[ch], AteMeasureDir[ch], DmmMeasureDir[ch]); - swdata.Write($"{arm_dna},"); - swdata.Write("DPS,"); - swdata.Write($"PS{ch},"); - swdata.Write($"{Mode},"); - swdata.Write($"{rl},"); - swdata.Write($"{Range},"); - swdata.Write("20V,"); - swdata.Write("13V,"); - swdata.Write($"{filepath},"); - swdata.Write($"{filetime}\n"); - swdata.Flush(); + double[,] ZeroExtR = { + { 0.0 , 0.0 , 0.0} + }; + WriteSingleFile( + filename:filename, + slot: SlotNum, + dna :arm_dna, + type: Info[loopi].chType, + channel:ch, + mode:Mode, + rload:rl, + extR: ZeroExtR, + range:Range, + ForceValue:ForceValueDir[ch], + AteMeasure:AteMeasureDir[ch], + DmmMeasure:DmmMeasureDir[ch] + ); + + metadata_handler( + swdata: swdata, + SlotNum: SlotNum, + slotList: slotList, + arm_dna: arm_dna, + context: context, + init_Flag: false, + Type: Type, + Channel: ch, + Mode: Mode, + Rload: rl, + Range: Range, + filepath: filepath, + filetime: filetime + ); } } } diff --git a/Testrong.User.Program/obj/x64/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/Testrong.User.Program/obj/x64/Debug/DesignTimeResolveAssemblyReferencesInput.cache index 94c84b6f4e8e911aef98a22199f0edf86d7589f9..0bd30f8a890710c26bcea5b27cf0ee1c5d8a3709 100644 GIT binary patch delta 195 zcmew@)+jPTnlWkedq%OzLR{(->s1-U5gfkBqKr2f(_sRW?=$gFPGFK|jDv}6zR&c7 zi7^?*omkH|`87Kqw{w1OZhoF#N={A&nv?)Ysx&V%Ik6-aB#&e>SnK2hc20zaK=U@g YX4hwA^hP$Oo70Q21SGIoh%1v30L+d+P5=M^ delta 526 zcmZn^`7Jg>LJB^v&rumWtf^t(y}>>=@k=G2T6J+e_$1wJdc%)sh3o3vZMu= w8PFy^Zr}Wr)EvE(oE#DZ1E_cNDK4eKI3Q1Jg`We5J8@KZg?|09DVrl>h($ diff --git a/Testrong.User.Program/obj/x64/Debug/Testrong.User.Program.csproj.AssemblyReference.cache b/Testrong.User.Program/obj/x64/Debug/Testrong.User.Program.csproj.AssemblyReference.cache index 70ab97986fcecf431097f16ebfd6f70c387cf98e..a5806c42826e843ab96cd1eb6c3f5dea2f8a39af 100644 GIT binary patch delta 242 zcmeyEIVp9*ImV=k7sMw2Wiy@Zz?j6CHF*KM+~h;*rkiD$b~7@D!{j_zd>G^5a(t|t z7#Y(catj&r;o=e;51AO_AmV0|bGRcJ)8KOUJhufHlVRrd$fhu6L*<+&&ywZZ+$48{ zi7^8ve?~Enu>dZAOOb!`MWq|e2)Fjg@=exM4}rLM^C9&u%rN(uP6o-{(czoSq7wjj LoAc&7I-(o^=*nBF delta 849 zcmbP~`Z06DIi_~T$q(ekR04|fb5lz)QcH_t484Qn-9qAB^U^c(Qd5gE^U{42lQV$q z$qSjyCQC6UG4(S}o~SB^q(>jO9!D0l%@-JVGcwkYVowuO3-NYrc4T?M$kaokM@rdp zn5GbK$z+g6OxYhYF*TEDQ4&`aQ#Xkg32@&QVCo>jB1V~6OcO}7