PDA

View Full Version : مبتدی: کمک!!!مشکل در دریافت متن از پورت سریال!



moh_mov
پنج شنبه 10 تیر 1389, 09:03 صبح
سلام خدمت دوستان....
برنامه ای نوشتم که از طریق پورت سریال محیطی برای chat می سازه....گرچه هنوز ناقصه!
مشکل من ابنه که در کد مورد نظر من data در طریق پورت سریال می فرستم ولی دریافت داده از سمت دیگر ندارم....data می رسد ولی برنامه نمی فهمد!:عصبانی++:
احتمال 99 درصد مشکل در قسمت read و readThread هست....لطف کنین کمک کنید!
مطئنا داده فرستاده می شه و من تونستم داده که به کامپیوتر دیگر می رسه رو بخونم...ولی....نمی تونم اونو نمایش بدم!
راستی من می خوام یک ساعت هم توش بگذارم که ساعت ویندوز رو نشون بده و بشه اون رو هم تغییر داد!کسی ایده ای داره؟


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 System.IO.Ports;
using System.Threading;

namespace Chat
{
public partial class Form1 : Form
{
static string messages;
static Boolean _port = true;
static SerialPort _serialPort=new SerialPort();
Thread readThread;
public Form1()
{
readThread = new Thread(Read);
InitializeComponent();

}
private void button4_Click(object sender, EventArgs e)
{
Dispose();
}

private void button2_Click(object sender, EventArgs e)
{
messages = textBox1.Text;
textBox1.Clear();
te.Text = te.Text + "\n" + messages;
serialportsend(messages);
}

private void button1_Click(object sender, EventArgs e)
{
if (_port)
{
openport();
button1.Text = "Close Port";
_port = false;
}
else
{
closeport();
button1.Text = "Open Port";
_port = true;
}
}
public void openport()
{
_serialPort.ReadTimeout = 500;
_serialPort.WriteTimeout = 500;
_serialPort.Open();
readThread.Start();
}
public void closeport()
{
readThread.Join();
_serialPort.Close();
}
public void serialportsend(String mess)
{
_serialPort.WriteLine(mess);
}
public void Read()
{
try
{
te.Text=messages + "\n" + _serialPort.ReadLine();
}
catch (TimeoutException) { }
}

private void te_TextChanged(object sender, EventArgs e)
{

}
}
}

moh_mov
پنج شنبه 10 تیر 1389, 10:38 صبح
سلام مجدد....
با افزایش این 2 تا کد تونستم ساعت اضافه کنم.....ولی می خوام بتونم این ساعت رو هم عوض کنم....

private void timer1_Tick(object sender, System.EventArgs e)
{
Time.Text = DateTime.Now.ToLongTimeString();
}


timer1.Start();

moh_mov
پنج شنبه 10 تیر 1389, 13:22 عصر
یعنی واقعا کسی نیست جواب منو بده؟

moh_mov
پنج شنبه 10 تیر 1389, 19:28 عصر
دوستان عزیز زحمت نکشید...مشکل حل شد....
در قسمت read باید کل try catch داخل while true قرار می گرفت!

csharpdoost
جمعه 11 تیر 1389, 16:04 عصر
دوست عزیز سلام
شما تو این برنامه تون میتونید یه تغییر بدید که اگه کسی بهتون زنگ زد شماره اونو ببینید؟

moh_mov
جمعه 11 تیر 1389, 18:54 عصر
دوست عزیز سلام
شما تو این برنامه تون میتونید یه تغییر بدید که اگه کسی بهتون زنگ زد شماره اونو ببینید؟
ببخشید...متوجه حرفتون نشدم؟!