using BaseLibRWFile; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net.Http; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using static System.Windows.Forms.VisualStyles.VisualStyleElement.ListView; namespace HRT_Measure { public class HRT_Help { public static string strDataDirectoryNormal = @"D:\数据表\Normal"; public static string strDataDirectoryAll = @"D:\数据表\All"; public static List listResultTitleNormal = new List(); public static List listResultTitleAll = new List(); //public static event Action eventDisplayResult; #region 结果数据存放 public static List dListCtl1_Channel1_Thickness = new List(); public static List dListCtl1_Channel1_Flatness = new List(); public static List dListCtl1_Channel1_Height = new List(); public static List dListCtl1_Channel1_TopValue = new List(); public static List dListCtl1_Channel1_BottomValue = new List(); public static List dListCtl1_Channel1_ThicknessAll = new List(); public static List dListCtl1_Channel1_Diff = new List(); public static List dListCtl1_Channel2_Thickness = new List(); public static List dListCtl1_Channel2_Flatness = new List(); public static List dListCtl1_Channel2_Height = new List(); public static List dListCtl1_Channel2_TopValue = new List(); public static List dListCtl1_Channel2_BottomValue = new List(); public static List dListCtl1_Channel2_ThicknessAll = new List(); public static List dListCtl1_Channel2_Diff = new List(); public static List dListCtl1_Channel3_Thickness = new List(); public static List dListCtl1_Channel3_Flatness = new List(); public static List dListCtl1_Channel3_Height = new List(); public static List dListCtl1_Channel3_TopValue = new List(); public static List dListCtl1_Channel3_BottomValue = new List(); public static List dListCtl1_Channel3_ThicknessAll = new List(); public static List dListCtl1_Channel3_Diff = new List(); public static List dListCtl1_Channel4_Thickness = new List(); public static List dListCtl1_Channel4_Flatness = new List(); public static List dListCtl1_Channel4_Height = new List(); public static List dListCtl1_Channel4_TopValue = new List(); public static List dListCtl1_Channel4_BottomValue = new List(); public static List dListCtl1_Channel4_ThicknessAll = new List(); public static List dListCtl1_Channel4_Diff = new List(); public static List dListCtl1_Channel5_Thickness = new List(); public static List dListCtl1_Channel5_Flatness = new List(); public static List dListCtl1_Channel5_Height = new List(); public static List dListCtl1_Channel5_TopValue = new List(); public static List dListCtl1_Channel5_BottomValue = new List(); public static List dListCtl1_Channel5_ThicknessAll = new List(); public static List dListCtl1_Channel5_Diff = new List(); public static List dListCtl1_Channel6_Thickness = new List(); public static List dListCtl1_Channel6_Flatness = new List(); public static List dListCtl1_Channel6_Height = new List(); public static List dListCtl1_Channel6_TopValue = new List(); public static List dListCtl1_Channel6_BottomValue = new List(); public static List dListCtl1_Channel6_ThicknessAll = new List(); public static List dListCtl1_Channel6_Diff = new List(); public static List dListCtl2_Channel1_Thickness = new List(); public static List dListCtl2_Channel1_Flatness = new List(); public static List dListCtl2_Channel1_Height = new List(); public static List dListCtl2_Channel1_TopValue = new List(); public static List dListCtl2_Channel1_BottomValue = new List(); public static List dListCtl2_Channel1_ThicknessAll = new List(); public static List dListCtl2_Channel1_Diff = new List(); public static List dListCtl2_Channel2_Thickness = new List(); public static List dListCtl2_Channel2_Flatness = new List(); public static List dListCtl2_Channel2_Height = new List(); public static List dListCtl2_Channel2_TopValue = new List(); public static List dListCtl2_Channel2_BottomValue = new List(); public static List dListCtl2_Channel2_ThicknessAll = new List(); public static List dListCtl2_Channel2_Diff = new List(); public static List dListCtl2_Channel3_Thickness = new List(); public static List dListCtl2_Channel3_Flatness = new List(); public static List dListCtl2_Channel3_Height = new List(); public static List dListCtl2_Channel3_TopValue = new List(); public static List dListCtl2_Channel3_BottomValue = new List(); public static List dListCtl2_Channel3_ThicknessAll = new List(); public static List dListCtl2_Channel3_Diff = new List(); public static List dListCtl2_Channel4_Thickness = new List(); public static List dListCtl2_Channel4_Flatness = new List(); public static List dListCtl2_Channel4_Height = new List(); public static List dListCtl2_Channel4_TopValue = new List(); public static List dListCtl2_Channel4_BottomValue = new List(); public static List dListCtl2_Channel4_ThicknessAll = new List(); public static List dListCtl2_Channel4_Diff = new List(); public static List dListCtl2_Channel5_Thickness = new List(); public static List dListCtl2_Channel5_Flatness = new List(); public static List dListCtl2_Channel5_Height = new List(); public static List dListCtl2_Channel5_TopValue = new List(); public static List dListCtl2_Channel5_BottomValue = new List(); public static List dListCtl2_Channel5_ThicknessAll = new List(); public static List dListCtl2_Channel5_Diff = new List(); public static List dListCtl2_Channel6_Thickness = new List(); public static List dListCtl2_Channel6_Flatness = new List(); public static List dListCtl2_Channel6_Height = new List(); public static List dListCtl2_Channel6_TopValue = new List(); public static List dListCtl2_Channel6_BottomValue = new List(); public static List dListCtl2_Channel6_ThicknessAll = new List(); public static List dListCtl2_Channel6_Diff = new List(); #endregion /// mes 开始时间 public static string strBeginTime = ""; /// mes 结束时间 public static string strEndTime = ""; /// mes 总产量 public static int iTotalCount = 0; /// mes OK产量 public static int iOkCount = 0; /// mes NG产量 public static int iNgCount = 0; /// mes 不良信息统计 public static List listNGInfo = new List(); public static void LoadResultTitle() { strDataDirectoryNormal += $"\\{ProgramHelp.Instance.ProConfig.当前料号}"; strDataDirectoryAll += $"\\{ProgramHelp.Instance.ProConfig.当前料号}"; listResultTitleNormal.Clear(); listResultTitleAll.Clear(); listResultTitleNormal.Add("产品编号"); listResultTitleNormal.Add("产品号"); listResultTitleNormal.Add("时间"); listResultTitleAll.Add("产品编号"); listResultTitleAll.Add("产品号"); listResultTitleAll.Add("时间"); //for (int i = 0; i < ProgramHelp.Instance.ProPara.厚度测量总数; i++) //{ // listResultTitleAll.Add(ProgramHelp.Instance.ProPara.厚度测量名称[i]); // if (ProgramHelp.Instance.ProPara.厚度是否保存[i]) // { // listResultTitleNormal.Add(ProgramHelp.Instance.ProPara.厚度测量名称[i]); // } //} listResultTitleNormal.Add("凹面平面度"); listResultTitleNormal.Add("凸面平面度"); listResultTitleAll.Add("凹面平面度"); listResultTitleAll.Add("凸面平面度"); //for (int i = 0; i < ProgramHelp.Instance.ProPara.高度测量总数; i++) //{ // listResultTitleNormal.Add(ProgramHelp.Instance.ProPara.高度测量名称[i]); // listResultTitleAll.Add(ProgramHelp.Instance.ProPara.高度测量名称[i]); //} listResultTitleNormal.Add("左极差"); listResultTitleAll.Add("左极差"); listResultTitleNormal.Add("右极差"); listResultTitleAll.Add("右极差"); listResultTitleNormal.Add("左右极差"); listResultTitleAll.Add("左右极差"); listResultTitleNormal.Add("结果"); listResultTitleAll.Add("结果"); } public static object objSaveData = new object(); public static void SaveDataToCsv(int index, List listDataNormal, List listDataAll) { lock (objSaveData) { try { if (!Directory.Exists(strDataDirectoryNormal)) { Directory.CreateDirectory(strDataDirectoryNormal); } if (!Directory.Exists(strDataDirectoryAll)) { Directory.CreateDirectory(strDataDirectoryAll); } string strDate = DateTime.Now.ToString("yyyy-MM-dd"); //string strTime = DateTime.Now.ToString("HH:mm:ss"); string pathNormal = strDataDirectoryNormal + $"\\{strDate}.csv"; string pathAll = strDataDirectoryAll + $"\\{strDate}.csv"; if (!File.Exists(pathNormal)) { using (FileStream fs = new FileStream(pathNormal, FileMode.Append, FileAccess.Write)) { using (StreamWriter sw = new StreamWriter(fs)) { sw.WriteLine(string.Join(",", listResultTitleNormal.ToArray())); } } } if (!File.Exists(pathAll)) { using (FileStream fs = new FileStream(pathAll, FileMode.Append, FileAccess.Write)) { using (StreamWriter sw = new StreamWriter(fs)) { sw.WriteLine(string.Join(",", listResultTitleAll.ToArray())); } } } using (FileStream fs = new FileStream(pathNormal, FileMode.Append, FileAccess.Write)) { using (StreamWriter sw = new StreamWriter(fs)) { sw.WriteLine(string.Join(",", listDataNormal.ToArray())); } } using (FileStream fs = new FileStream(pathAll, FileMode.Append, FileAccess.Write)) { using (StreamWriter sw = new StreamWriter(fs)) { sw.WriteLine(string.Join(",", listDataAll.ToArray())); } } } catch (Exception ex) { MessageBox.Show("写data报错!" + ex.ToString()); } } } public static bool JudgeResult(double currentValue, double standartValue, double positiveValue, double negativeValue) { if (currentValue >= (standartValue - negativeValue) && currentValue <= (standartValue + positiveValue)) { return true; } else { return false; } } public static void CalYield(bool isThicknessOK, bool isFlatnessOK, bool isHeightOK,bool isDiffOK) { iTotalCount++; if (isThicknessOK && isFlatnessOK && isHeightOK && isDiffOK) { iOkCount++; } else { iNgCount++; if (!isThicknessOK) listNGInfo.Add("厚度不良"); if (!isFlatnessOK) listNGInfo.Add("平面度不良"); if (!isHeightOK) listNGInfo.Add("高度不良"); if(!isDiffOK) listNGInfo.Add("极差不良"); } } public static object objCalResult = new object(); public async Task UploadFileAsync(string url, string fileName) { using (var client = new HttpClient()) { using (var content = new MultipartFormDataContent()) { // 添加API密钥 //content.Add(new StringContent("MachineCode"), ProgramHelp.Instance.ProConfig.机器编号); // 添加文件 using (var fileStream = File.OpenRead(fileName)) { var streamContent = new StreamContent(fileStream); var fileContent = new ByteArrayContent(await streamContent.ReadAsByteArrayAsync()); fileContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("multipart/form-data"); content.Add(fileContent, "file", Path.GetFileName(fileName)); } var response = await client.PostAsync(url, content); response.EnsureSuccessStatusCode(); } } } public static object objHalfGet = new object(); } }