PDA

View Full Version : مبتدی: کمک برای عیب یابی یک برنامه کار با پورت سریال



exeroox@gmail.com
یک شنبه 06 مهر 1393, 23:32 عصر
با سلام


اول بزارین یکم گله کنم از بچه های این انجمن چون من این سوال رو پنج روزی میشه که گذاشتم و لی کسی جوابی بهم نداده .برای همین دوباره مشکلم و تو یک تاپیک جدید مطرح کردم .امیدوارم ایندفعه یکی کمک کنه
یک مشکل کوچیک تو یک برنامه کار با پورت سریال دارم.
تو این برنامه با توجه به کد های ورودی از پورت سریال یک فایل صوتی پخش میشه.مشکل اینه که به اضای
هر یک کد وارد شده فایل صوتی پخش نمیشه مثلا کد ak47 باید 3 بار ارسال بشه تا یکبار صدای مربوطه پخش بشه
جالب اینجاست که برای کدهای دیگه این تعداد متفاوته.مثلا برای کد mp5 باید این کد رو 15 بار به برنامه ارسال کرد
تا یکبار فایل صوتی مربوطش پخش بشه.برنامه سادست و حجم کمی هم داره ولی چون آشنایم با برنامه نویسی کمه
نتونستم مشکل رو تشخیص بدم
البته یک نکته دیگم وجود داره . اینه که زمانی که یک صدا پخش میشه اگر دستور پخش صدای دیگه ایی بیاد صدای
اولی قطع میشه و صدای دوم پخش میشه که اگر بشه هردو همزمان باهم پخش بشه عالیه
این هم تصویر برنامه .
untitledddd.JPG (http://barnamenevis.org/attachment.php?attachmentid=123876&d=1411630240)

فایل اپن سرس برنامه هم تو لینک زیر موجوده
http://s5.picofile.com/file/8144420818/firs.rar.html

و باید بگم که رشته تحصیلیم الکترونیکه اولین تجربه بنده در برنامه نویسی با C#‎‎‎‎‎‎‎‎‎‎‎‎ هست
و پیشاپیش از توجه و کمکتون سپاسگزارم
کد برنامه هم همینه


using System;


using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Media;
using System.IO.Ports;
using System.Windows.Forms;

namespace firs
{
public partial class Form1 : Form
{
string StrRecieve;
public Form1()
{
InitializeComponent();
}
private void DisplayText(object sender, EventArgs e)
{
textBox1.AppendText(StrRecieve);
switch (StrRecieve)
{
case "ak47":
SoundPlayer sound = new SoundPlayer("ak47.wav");

sound.Play();
break;
case "m4":
SoundPlayer sound1 = new SoundPlayer("m4.wav");

sound1.Play();
break;
case "shotgun":
SoundPlayer sound2 = new SoundPlayer("shotgun.wav");

sound2.Play();
break;
case "rovelver":
SoundPlayer sound3 = new SoundPlayer("rovelver.wav");

sound3.Play();
break;
case "mp5":
SoundPlayer sound4 = new SoundPlayer("mp5.wav");

sound4.Play();
break;
}

}
public void PortList()
{

comboBox1.Items.Clear();

string[] ports = SerialPort.GetPortNames();

comboBox1.Items.AddRange(ports);

comboBox1.Sorted = true;
btnrefresh.Enabled = true;

}

private void btnrefresh_Click(object sender, EventArgs e)
{
PortList();
}

private void btnopen_Click(object sender, EventArgs e)
{
try
{

serialPort1.PortName = comboBox1.SelectedItem.ToString();

serialPort1.Open();

listBox1.Items.Add(comboBox1.SelectedItem.ToString () + " open ");



comboBox1.Enabled = false;

}
catch (Exception exx)
{
listBox1.Items.Add(exx.Message);
}
}

private void btnclose_Click(object sender, EventArgs e)
{
serialPort1.Close();

listBox1.Items.Add(comboBox1.SelectedItem.ToString () + " close ");

comboBox1.Enabled = true;


}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{

}

private void Form1_Load(object sender, EventArgs e)
{
PortList();
}

private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
StrRecieve = serialPort1.ReadExisting();
this.Invoke(new EventHandler(DisplayText));
}

private void btnm1_Click(object sender, EventArgs e)
{
SoundPlayer sound = new SoundPlayer("ak47.wav");

sound.Play();
}

private void btnm2_Click(object sender, EventArgs e)
{
SoundPlayer sound1 = new SoundPlayer("m4.wav");

sound1.Play();
}

private void btnm3_Click(object sender, EventArgs e)
{
SoundPlayer sound3 = new SoundPlayer("rovelver.wav");

sound3.Play();
}

private void btnm4_Click(object sender, EventArgs e)
{
SoundPlayer sound2 = new SoundPlayer("shotgun.wav");

sound2.Play();
}

private void btnm5_Click(object sender, EventArgs e)
{
SoundPlayer sound4 = new SoundPlayer("mp5.wav");

sound4.Play();
}
}

}