zxo003
جمعه 28 مرداد 1390, 23:36 عصر
سلام
عرض کنم خدمت دوستان که من .NET کار نیستم و C++ و C را موضوعات شبکه ان در حد خیلی خوبی بلدم ...
یک برنامه با c# نوشتم (اولین برنامه من با محصولات ماکروسافت است ) ، کار این برنامه این که خروجی پورت سریال میگیره و در یک TextBox نمایش میده ...
من برای این کار از کامپونت سریال پورت (serialport) استفاده کردم ، میتوانم مشخصات پورت تعیین کنم و پورت باز کنم و اطلاعات ان بگیرم اما برای نمایش مشکل دارم !! (مسخره است نه !! مغزم منهدم شده !!)
این اول داستان (فعلا همین انجام بشه خوبه) بعدا میخواهم اطلاعات دریافتی تفکیک کنم و داده های ورودی کار کنم ! اطلاعات خروجی پورت این شکلی :
SHT15 temperature: 82.9 deg F
SHT15 humidity: 44%
SHT15 dewpoint: 58.7 deg F
BMP085 pressure: 1027.98 mbar
BMP085 temperature: 83.7 deg F
TEMT6000 light: 0.1%
Weather meters wind speed: 0.0 MPH FAIL
Weather meters wind direction: -1 degrees FAIL
Weather meters rainfall: 0.00 inches FAIL
External power: 0.00 Volts FAIL
اطلاعات وقتی در TextBox نمایش داده میشود سریع میپره ، یعنی در 3 خط نمایش میده و روی انها سریع اطلاعات جدید مینویسه !! من باید چی کار کنم ؟؟
این محتویات اصل داستان :
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;
namespace USB_Weather_Board__zxo003_
{
public partial class Form1 : Form
{
public string S_name;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
serialPort1.StopBits = System.IO.Ports.StopBits.Two;
serialPort1.BaudRate = 9600;
serialPort1.Parity = System.IO.Ports.Parity.None;
serialPort1.DataBits = 8;
//serialPort1.Parity = Parity.None;
//SerialPort1.StopBits = StopBits.One;
//SerialPort1.DataBits = 8;
//SerialPort1.Handshake = Handshake.None;
serialPort1.PortName = "com8";
serialPort1.Open();
serialPort1.DiscardInBuffer();
serialPort1.DiscardOutBuffer();
}
catch
{
MessageBox.Show("خطا در باز کردن پورت", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void button2_Click(object sender, EventArgs e)
{
serialPort1.Close();
}
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
textBox1.Text = serialPort1.ReadExisting();
}
}
}
--------------------
** این عرض کنم که برنامه را برای محیط کنسول 30 دقیقه ای نوشتم در codeblocks که مثل آدم کار میکنه اما من لازم دارم که گرافیکی باشه به خاطر همین و دلایل دیگه سویچ کردم روی C# .
** این را هم عرض کنم که جستجو کردم در این بخش C# اما هیچ چیز ببه درد بخور نیافتم !!
عرض کنم خدمت دوستان که من .NET کار نیستم و C++ و C را موضوعات شبکه ان در حد خیلی خوبی بلدم ...
یک برنامه با c# نوشتم (اولین برنامه من با محصولات ماکروسافت است ) ، کار این برنامه این که خروجی پورت سریال میگیره و در یک TextBox نمایش میده ...
من برای این کار از کامپونت سریال پورت (serialport) استفاده کردم ، میتوانم مشخصات پورت تعیین کنم و پورت باز کنم و اطلاعات ان بگیرم اما برای نمایش مشکل دارم !! (مسخره است نه !! مغزم منهدم شده !!)
این اول داستان (فعلا همین انجام بشه خوبه) بعدا میخواهم اطلاعات دریافتی تفکیک کنم و داده های ورودی کار کنم ! اطلاعات خروجی پورت این شکلی :
SHT15 temperature: 82.9 deg F
SHT15 humidity: 44%
SHT15 dewpoint: 58.7 deg F
BMP085 pressure: 1027.98 mbar
BMP085 temperature: 83.7 deg F
TEMT6000 light: 0.1%
Weather meters wind speed: 0.0 MPH FAIL
Weather meters wind direction: -1 degrees FAIL
Weather meters rainfall: 0.00 inches FAIL
External power: 0.00 Volts FAIL
اطلاعات وقتی در TextBox نمایش داده میشود سریع میپره ، یعنی در 3 خط نمایش میده و روی انها سریع اطلاعات جدید مینویسه !! من باید چی کار کنم ؟؟
این محتویات اصل داستان :
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;
namespace USB_Weather_Board__zxo003_
{
public partial class Form1 : Form
{
public string S_name;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
serialPort1.StopBits = System.IO.Ports.StopBits.Two;
serialPort1.BaudRate = 9600;
serialPort1.Parity = System.IO.Ports.Parity.None;
serialPort1.DataBits = 8;
//serialPort1.Parity = Parity.None;
//SerialPort1.StopBits = StopBits.One;
//SerialPort1.DataBits = 8;
//SerialPort1.Handshake = Handshake.None;
serialPort1.PortName = "com8";
serialPort1.Open();
serialPort1.DiscardInBuffer();
serialPort1.DiscardOutBuffer();
}
catch
{
MessageBox.Show("خطا در باز کردن پورت", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void button2_Click(object sender, EventArgs e)
{
serialPort1.Close();
}
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
textBox1.Text = serialPort1.ReadExisting();
}
}
}
--------------------
** این عرض کنم که برنامه را برای محیط کنسول 30 دقیقه ای نوشتم در codeblocks که مثل آدم کار میکنه اما من لازم دارم که گرافیکی باشه به خاطر همین و دلایل دیگه سویچ کردم روی C# .
** این را هم عرض کنم که جستجو کردم در این بخش C# اما هیچ چیز ببه درد بخور نیافتم !!