1 /* ****************************************************************************** *\ 2 3 INTEL CORPORATION PROPRIETARY INFORMATION 4 This software is supplied under the terms of a license agreement or nondisclosure 5 agreement with Intel Corporation and may not be copied or disclosed except in 6 accordance with the terms of that agreement 7 Copyright(c) 2020 Intel Corporation. All Rights Reserved. 8 9 File Name: SdkAnalyzer.cs 10 11 \* ****************************************************************************** */ 12 13 using System; 14 using System.Collections.Generic; 15 using System.ComponentModel; 16 using System.Data; 17 using System.Drawing; 18 using System.Linq; 19 using System.Text; 20 using System.Windows.Forms; 21 using System.Diagnostics; 22 using System.Threading; 23 using System.IO; 24 using Microsoft.Win32; 25 using System.Reflection; 26 using System.Security.AccessControl; 27 28 namespace msdk_analyzer 29 { 30 public static class _PATH 31 { 32 public static string TRACER_PATH = "\\Intel\\SDK_Tracer\\"; 33 public static string TRACER_LOG = "tracer.log"; 34 }; 35 36 public partial class SdkAnalyzerForm : Form 37 { 38 IDataCollector m_collector; 39 FileInfo file; 40 SdkAnalyzerForm()41 public SdkAnalyzerForm() 42 { 43 InitializeComponent(); 44 m_collector = new DataCollector(); 45 System.IO.Directory.CreateDirectory(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + _PATH.TRACER_PATH); 46 tbxLogOutput.Text = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + _PATH.TRACER_PATH + _PATH.TRACER_LOG; 47 m_collector.SetLog(tbxLogOutput.Text); 48 m_collector.Create(); 49 50 FileInfo log_path = new FileInfo(tbxLogOutput.Text); 51 if (log_path.Exists) 52 { 53 button_Open.Enabled = true; 54 btnDeleteLog.Enabled = true; 55 } 56 else 57 { 58 button_Open.Enabled = false; 59 btnDeleteLog.Enabled = false; 60 } 61 62 } 63 OnUpdateEtlFileSize(object sender, EventArgs e)64 void OnUpdateEtlFileSize(object sender, EventArgs e) 65 { 66 // 67 } 68 converter_ConversionUpdated(ConversionStatus sts, int percentage)69 void converter_ConversionUpdated(ConversionStatus sts, int percentage) 70 { 71 // 72 } 73 button_Start_Click(object sender, EventArgs e)74 private void button_Start_Click(object sender, EventArgs e) 75 { 76 //button disabled since running a collector might take significant time 77 78 if (m_collector.isRunning) 79 { 80 81 OnStop(); 82 } 83 else 84 { 85 if (checkBox_Append.Checked != true) 86 { 87 try 88 { 89 File.Delete(tbxLogOutput.Text); 90 lblBytesWritten.Text = "0"; 91 } 92 catch (System.Exception ex) 93 { 94 MessageBox.Show(ex.ToString()); 95 } 96 } 97 OnStart(); 98 } 99 } 100 OnStart()101 private void OnStart() 102 { 103 button_Start.Enabled = false; 104 checkBox_PerFrame.Enabled = false; 105 checkBox_Append.Enabled = false; 106 button_Open.Enabled = false; 107 btnDeleteLog.Enabled = false; 108 109 try 110 { 111 int nLevel = 112 checkBox_PerFrame.Checked ? 2 : 1; 113 m_collector.SetLevel(nLevel); 114 m_collector.SetLog(tbxLogOutput.Text); 115 this.Cursor = Cursors.WaitCursor; 116 m_collector.Start(); 117 MsdkAnalyzerCpp.start(); 118 119 this.Cursor = Cursors.Default; 120 button_Start.Text = "Stop"; 121 timer1.Enabled = true; 122 timer1.Start(); 123 124 } 125 catch (System.Exception ex) 126 { 127 MessageBox.Show(ex.ToString()); 128 checkBox_PerFrame.Enabled = true; 129 checkBox_Append.Enabled = true; 130 } 131 button_Start.Enabled = true; 132 } 133 OnStop()134 private void OnStop() 135 { 136 timer1.Stop(); 137 timer1.Enabled = false; 138 button_Start.Enabled = false; 139 140 try 141 { 142 this.Cursor = Cursors.WaitCursor; 143 m_collector.Stop(); 144 MsdkAnalyzerCpp.stop(); 145 RunConversionDialog(); 146 button_Start.Text = "Start"; 147 button_Start.Enabled = true; 148 checkBox_PerFrame.Enabled = true; 149 checkBox_Append.Enabled = true; 150 151 FileInfo log_path = new FileInfo(tbxLogOutput.Text); 152 if (log_path.Exists) 153 { 154 button_Open.Enabled = true; 155 btnDeleteLog.Enabled = true; 156 } 157 else 158 { 159 button_Open.Enabled = false; 160 btnDeleteLog.Enabled = false; 161 } 162 this.Cursor = Cursors.Default; 163 164 } 165 catch (System.Exception ex) 166 { 167 MessageBox.Show(ex.ToString()); 168 button_Start.Text = "Start"; 169 button_Start.Enabled = true; 170 checkBox_PerFrame.Enabled = true; 171 checkBox_Append.Enabled = true; 172 173 FileInfo log_path = new FileInfo(tbxLogOutput.Text); 174 if (log_path.Exists) 175 { 176 button_Open.Enabled = true; 177 btnDeleteLog.Enabled = true; 178 } 179 else 180 { 181 button_Open.Enabled = false; 182 btnDeleteLog.Enabled = false; 183 } 184 this.Cursor = Cursors.Default; 185 } 186 187 } 188 button_Open_Click(object sender, EventArgs e)189 private void button_Open_Click(object sender, EventArgs e) 190 { 191 try 192 { 193 Process.Start(tbxLogOutput.Text); 194 } 195 catch (System.Exception ex) 196 { 197 MessageBox.Show(ex.ToString()); 198 } 199 200 } 201 Form4_FormClosing(object sender, FormClosingEventArgs e)202 private void Form4_FormClosing(object sender, FormClosingEventArgs e) 203 { 204 m_collector.Delete(); 205 } 206 RunConversionDialog()207 protected void RunConversionDialog() 208 { 209 // 210 } 211 212 OnConvertionFinished()213 private void OnConvertionFinished() 214 { 215 216 button_Start.Enabled = true; 217 button_Start.Text = "Start"; 218 this.Cursor = Cursors.Default; 219 } 220 btnDeleteLog_Click(object sender, EventArgs e)221 private void btnDeleteLog_Click(object sender, EventArgs e) 222 { 223 try 224 { 225 File.Delete(tbxLogOutput.Text); 226 button_Open.Enabled = false; 227 btnDeleteLog.Enabled = false; 228 lblBytesWritten.Text = "0"; 229 } 230 catch (System.Exception ex) 231 { 232 MessageBox.Show(ex.ToString()); 233 } 234 235 } 236 237 timer1_Tick_1(object sender, EventArgs e)238 private void timer1_Tick_1(object sender, EventArgs e) 239 { 240 file = new FileInfo(tbxLogOutput.Text); 241 if (file.Exists) 242 lblBytesWritten.Text = (file.Length / 1000).ToString(); 243 } 244 245 } 246 } 247