Читайте также:
|
|
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MathWorks.MATLAB.NET.Utility;
using MathWorks.MATLAB.NET.Arrays;
using MatLab;
namespace DiagSound
{
public partial class Form1: Form
{
string FileName;
Class1 obj = new Class1();//MatLab
MWNumericArray MW;
int res = 0;
Microsoft.Office.Interop.Excel.Application ObjExcel = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Sheets ObjSheet;
Microsoft.Office.Interop.Excel.Worksheet ObjWorkSheet;
Microsoft.Office.Interop.Excel.Workbook ObjWorkBook;
public int srav(double Vect, double Norma, double dx)
{
int res = 0;
if (Math.Abs(Vect - Norma) <= dx)
res++;
return res;
}
public int readMat(Microsoft.Office.Interop.Excel.Range Norma, double Vect, int i, int j)
{
Microsoft.Office.Interop.Excel.Range N;
Microsoft.Office.Interop.Excel.Range D;
N = Norma.get_Offset(i, j);
D = Norma.get_Offset(i + 18, j);
if (Math.Abs(Convert.ToDouble(N.Value2.ToString()) - Vect)
<= 2*Convert.ToDouble(D.Value2.ToString())) return 1;
else return 0;
}
public Form1()
{
InitializeComponent();
}
private void выходToolStripMenuItem_Click(object sender, EventArgs e)
{
Close();
}
private void button1_Click(object sender, EventArgs e)
{
obj.Graf(FileName);
}
private void wavфаToolStripMenuItem_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK &&
openFileDialog1.FileName.Length > 0)
FileName = openFileDialog1.FileName;
else MessageBox.Show("Error");
MW = (MWNumericArray)obj.Diag(FileName);
listBox1.Items.Add("=================");
listBox1.Items.Add("Wave-файл:");
listBox1.Items.Add(openFileDialog1.FileName);
listBox1.Items.Add("загружен!");
button1.Enabled = true;
if (openFileDialog2.FileName.Length > 0) button2.Enabled = true;
}
private void DataToolStripMenuItem_Click(object sender, EventArgs e)
{
if (openFileDialog2.ShowDialog() == System.Windows.Forms.DialogResult.OK &&
openFileDialog2.FileName.Length > 0)
{
listBox1.Items.Add("=================");
listBox1.Items.Add("База дефектов:");
listBox1.Items.Add(openFileDialog2.FileName);
listBox1.Items.Add("загружена!");
if (openFileDialog1.FileName.Length > 0) button2.Enabled = true;
}
}
private void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Программа разработана для курсовой работе\n по теме \"Автоматизированная система диагностики дефектов\nв конструкции электронных устройств\nс помощью акустических сигналов\"\nАвтор программы студент 3-го курса\nСургутского государственного университета \nВолков Александр\nкафедра АСОиУ\n2012г.","О программе");
}
private void button2_Click(object sender, EventArgs e)
{
ObjWorkBook = ObjExcel.Workbooks.Open(@openFileDialog2.FileName,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);
ObjSheet = ObjWorkBook.Sheets;
listBox1.Items.Add("=================");
listBox1.Items.Add("Начала диагностики");
for (int sample = 0; sample < (MW.NumberOfElements / 39) - 16; sample=sample+17)
{
res = 0;
ObjWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ObjSheet.get_Item(1);
Microsoft.Office.Interop.Excel.Range ObjRanges;
ObjRanges = ObjWorkSheet.get_Range("B2", Type.Missing);
// if (readMat(ObjRanges, (double)MW[ 1 + sample, 1], 0, 0) > 0)
for (int i = 0; i < 17; i++)
{
for (int j = 0; j < 39; j++)
res = res + readMat(ObjRanges, (double)MW[i + 1 + sample, j + 1], i, j);
}
if (res / 6.63 > 85)
{
listBox1.Items.Add("Стук " + Math.Round(res / 6.63, 2) + "% [" + (sample / 17) * 0.2 + "; " + Math.Round((sample / 17) * 0.2 + 0.2, 2) + "] сек");
//sample = sample + 17;
}
else
{
res = 0;
ObjWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ObjSheet.get_Item(2);
ObjRanges = ObjWorkSheet.get_Range("B2", Type.Missing);
// if (readMat(ObjRanges, (double)MW[1 + sample, 1], 0, 0) > 0)
for (int i = 0; i < 17; i++)
{
for (int j = 0; j < 39; j++)
res = res + readMat(ObjRanges, (double)MW[i + 1 + sample, j + 1], i, j);
}
if (res / 6.63 > 85)
{
listBox1.Items.Add("Треск " + Math.Round(res / 6.63, 2) + "% [" + Math.Round((sample / 17) * 0.2, 2) + "; " + Math.Round((sample / 17) * 0.2 + 0.2, 2) + "] сек");
//sample = sample + 17;
}
}
}
listBox1.Items.Add("Диагностика завершина");
ObjExcel.Quit();
}
private void добавитьToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Для диагностики сигнала необходимо сначала\nзагрузить Базу Дефектов и wave-файл содержащий\nсигнал, который нужно продиагностировать, после\nчего нажать кнопку Диагностика. После этого\nпрограмма начнет диагностировать сигнал и\nв случае обнаружения признаков дефекта\nвыводить в список наименование\nдефекта, процент схожести и отрезок времени\nна котором он обнаружил (в секундах)","Help");
}
}
}
Дата добавления: 2015-07-11; просмотров: 125 | Нарушение авторских прав