Untitled

 avatar
unknown
plain_text
4 months ago
7.1 kB
2
Indexable
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Management;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using AnoleAPI;

namespace EvalBoard
{
    public partial class Form1 : Form
    {
        // Log file Path
        private string logDirectory = "D:\\Software\\Software\\WINIC\\AnoleTestAPP-BMD\\AnoleTestAPP-BMD\\EvalBoard\\LOG";
        private string logFilePath;

        // Declaration Of the input variables
        public int Offset_write_input;
        public int data_write_input;
        public int offset_read_input;
        public int data_read_output;

        public Form1()
        {
            InitializeComponent();
            CreateLog();
        }

        public void CreateLog()
        {
            try
            {
                Directory.CreateDirectory(logDirectory);
                logFilePath = Path.Combine(logDirectory, $"Log_{DateTime.Now:yyyyMMdd_HHmmss}.txt");

                using (StreamWriter logFile = new StreamWriter(logFilePath, true))
                {
                    logFile.WriteLine("Log created at: " + DateTime.Now);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error creating log file: " + ex.Message);
            }
        }

        public void WriteToLog(string message)
        {
            try
            {
                using (StreamWriter logFile = new StreamWriter(logFilePath, true))
                {
                    logFile.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " - " + message);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error writing to log: " + ex.Message);
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            WriteToLog("PCI Connect Button Clicked ");
            bool driver_status = FPGACommunicationHandler.FPGAInstance.InitializeWinDriver();
            MessageBox.Show("Driver status " + driver_status);
            WriteToLog("Driver Open Status is " + driver_status);
            bool Device_status = FPGACommunicationHandler.FPGAInstance.DeviceOpen();
            MessageBox.Show("Device open " + Device_status);
            WriteToLog("Device  Open Status is " + Device_status);

            if (driver_status)
            {
                string vendorId = "10EE"; // Replace with user-provided vendor ID
                string deviceId = "9038"; // Replace with user-provided device ID
                Check_Device_Info(vendorId, deviceId);
            }
            else
            {
                WriteToLog("Device is not present.");
            }
        }

        private void Eval_Read_Click(object sender, EventArgs e)
        {
            FPGACommunicationHandler.FPGAInstance.ReadFromFPGARegister(0, offset_read_input, ref data_read_output);
            Read_Value_FromPCI.Text = data_read_output.ToString();
        }

        private void Offset_User_Input_TextChanged(object sender, EventArgs e)
        {
            offset_read_input = int.Parse(Read_Offset_input.Text);
        }

        private void Data_User_Input_TextChanged(object sender, EventArgs e)
        {
            data_write_input = int.Parse(Data_User_Input.Text);
        }

        private void Read_Value_FromPCI_TextChanged(object sender, EventArgs e)
        {
            Read_Value_FromPCI.Text = data_read_output.ToString();
        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {
            // Placeholder for future implementation
        }

        private void label1_Click(object sender, EventArgs e)
        {
            // Placeholder for future implementation
        }

        private void label2_Click(object sender, EventArgs e)
        {
            // Placeholder for future implementation
        }

        private void EvalBoard_Write_Click(object sender, EventArgs e)
        {
            FPGACommunicationHandler.FPGAInstance.WriteToFPGARegister(0, Offset_write_input, data_write_input);
        }

        /// <summary>
        /// Check device information and log it.
        /// </summary>
        private void Check_Device_Info(string vendorId, string deviceId)
        {
            try
            {
                ManagementObjectSearcher deviceSearcher = new ManagementObjectSearcher(
                    $"SELECT * FROM Win32_PnPEntity WHERE PNPDeviceID LIKE '%{vendorId}%' AND PNPDeviceID LIKE '%{deviceId}%'");

                bool deviceFound = false;

                using (StreamWriter logFile = new StreamWriter(logFilePath, true))
                {
                    foreach (ManagementObject device in deviceSearcher.Get())
                    {
                        deviceFound = true;
                        string deviceName = (string)device["Name"];
                        Device_Info.Text = deviceName;

                        logFile.WriteLine("Device Name: " + device["Name"]);
                        logFile.WriteLine("Device ID: " + device["DeviceID"]);
                        logFile.WriteLine("Description: " + device["Description"]);
                        logFile.WriteLine("Manufacturer: " + device["Manufacturer"]);
                        logFile.WriteLine();

                        string deviceIdEscaped = device["DeviceID"].ToString().Replace("\\", "\\\\");
                        ManagementObjectSearcher driverSearcher = new ManagementObjectSearcher(
                            $"SELECT * FROM Win32_PnPSignedDriver WHERE DeviceID = '{deviceIdEscaped}'");

                        foreach (ManagementObject driver in driverSearcher.Get())
                        {
                            logFile.WriteLine("Driver Name: " + driver["DeviceName"]);
                            logFile.WriteLine("Driver Version: " + driver["DriverVersion"]);
                            logFile.WriteLine("Driver Provider: " + driver["DriverProviderName"]);
                            logFile.WriteLine("Driver Date: " + driver["DriverDate"]);
                            logFile.WriteLine();
                        }
                    }

                    if (!deviceFound)
                    {
                        logFile.WriteLine("Device not found.");
                    }
                }
            }
            catch (ManagementException e)
            {
                File.AppendAllText(logFilePath, "An error occurred while querying for WMI data: " + e.Message + Environment.NewLine);
            }
            catch (Exception e)
            {
                File.AppendAllText(logFilePath, "An unexpected error occurred: " + e.Message + Environment.NewLine);
            }
        }
    }
}
Editor is loading...
Leave a Comment