PDA

View Full Version : سوال: دریافت اطلاعات از پورت سریال (serialport)



zxo003
جمعه 28 مرداد 1390, 22: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# اما هیچ چیز ببه درد بخور نیافتم !!

zxo003
شنبه 29 مرداد 1390, 21:10 عصر
چند گزینه مطرح است !

1- یعنی به تازه وارد ها جواب نمی دهید !
2- هیچ کس سواد لازم را ندارد !!
3- آن کسانی که بلد هستند بسیار کوته فکر هستند و به دیگران یاد نمیدهند !
4- کسانی که بلد هستند علاقه به آموزش دادن به دیگران ندارند !!
5- آن کسانی که بلد هستند این تاپیک ندید !!

---------------
امید است گزینه 5 باشد !

pswin.pooya
شنبه 29 مرداد 1390, 21:43 عصر
** این عرض کنم که برنامه را برای محیط کنسول 30 دقیقه ای نوشتم در codeblocks که مثل آدم کار میکنه اما من لازم دارم که گرافیکی باشه به خاطر همین و دلایل دیگه سویچ کردم روی C# .

توی C/C++ راهکارهای زیادی برای UI هست:


GTK
GTK+
QT
wxwidgets
MFC
....

واقعا تعجب میکنم از لینوکس و C++ سوئیچ کردی به ویندوز و C# !!!!


1- یعنی به تازه وارد ها جواب نمی دهید !
2- هیچ کس سواد لازم را ندارد !!
3- آن کسانی که بلد هستند بسیار کوته فکر هستند و به دیگران یاد نمیدهند !
4- کسانی که بلد هستند علاقه به آموزش دادن به دیگران ندارند !!
5- آن کسانی که بلد هستند این تاپیک ندید !!

تازه یک روز گذشته اینهمه سر و صدا راه انداختی. آبرو برنامه نویسهای C++ ر. بیخیال شو. آبروی جماعت برنامه نویس رو بردی. من الان حدود دو هفته هست که دارم روی 10 خط کد سروکله میزنم اینهمه سر و صدا راه نداختم

forough.tg
شنبه 29 مرداد 1390, 22:57 عصر
با سلام به شما
من میخوام با استفاده از یه میکرویی که به یه سنسور lm35وصله و داره دما رو میخونه ، دمای محیط رو رو کاموتر نشون بدم
و میخوام ازتون خواهش کنم ارگومان های دستور read و دلیلشون رو بهم بگید..........خواهشا

zxo003
یک شنبه 30 مرداد 1390, 00:29 صبح
توی C/C++ راهکارهای زیادی برای UI هست:



GTK
GTK+
QT
wxwidgets
MFC
....


واقعا تعجب میکنم از لینوکس و C++ سوئیچ کردی به ویندوز و C# !!!!



تازه یک روز گذشته اینهمه سر و صدا راه انداختی. آبرو برنامه نویسهای C++ ر. بیخیال شو. آبروی جماعت برنامه نویس رو بردی. من الان حدود دو هفته هست که دارم روی 10 خط کد سروکله میزنم اینهمه سر و صدا راه نداختم

سلام

بله همه آنهای را که می گوید خوب بلدم ، حتی یک دو جین دیگر هم میشناسم و تکنیک های تبدیل را هم بلدم و ....

عضو یک تیم خارجکی شدم (یک پروژه اپن سورس UAV ) آنها دارن با C# کار میکنند و قسمتی هم که از کار به من محول شده فقط و فقط با C# (آن هم از مدل ویژوال 2010 )قبول میکنند ! و تبدیل و غیره را هم قبول ندارند و ... (منظورم درست نتوانستم در پست اول برسونم )

من هم نگفتم جمع کردم آمدم روی .NET که آبروی C++/C بریزه که !!!!! C# یک چیزای داره که c/C++ نداره ، آنها هم یک چیزای دارند که این نداره ، هیچم آبرو ریزی نیست اگر کسی کلا کوچ کنه ، هرچند من نیازی برای کوچ کردن ندارم ، من این تجربه 7-8 ساله برنامه نویسیم به ثابت کرده هیچ زبانی با هیچ زبانی دیگری قابل مقایسه نیست و با توجه به نوع کار بهترین زبان انتخاب میکنید ، آدم باید همه چی بلد باشه برای همچین مواقعی ....

کار نشد نداره سرم خیلی شلوغ ، فعلا روی این پروژه کار نمیکنم ، وقت کردم درستش میکنم مثل آدم کار کنه با آموزش این جور کار ها و نمونه برنامه و ... میزارم حالش ببرید ....

ولی خدای جواب یک سوال بده : چرا آبروی جماعت برنامه نویس بردم ؟ به نظر من ندانستن عیب نیست ، اما سوال نکردن عیب است .

موفق باشید

zxo003
یک شنبه 30 مرداد 1390, 00:33 صبح
با سلام به شما
من میخوام با استفاده از یه میکرویی که به یه سنسور lm35وصله و داره دما رو میخونه ، دمای محیط رو رو کاموتر نشون بدم
و میخوام ازتون خواهش کنم ارگومان های دستور read و دلیلشون رو بهم بگید..........خواهشا

سلام

این سوال شما خودش یک دو جین مطلب است ، این گونه سوالات باید از کتاب بخوانید بعد تمرین کنید تا جواب بگیرید ، بهترین کتابها به نظر من در این C# برای انتشارات دیتل و راکسه ، هر جفتشون هم ترجمه ان در بازار یافت می شود .

موفق باشید

pswin.pooya
یک شنبه 30 مرداد 1390, 10:05 صبح
من هم نگفتم جمع کردم آمدم روی .NET که آبروی C++/C بریزه که !!!!! C# یک چیزای داره که c/C++ نداره ، آنها هم یک چیزای دارند که این نداره ، هیچم آبرو ریزی نیست اگر کسی کلا کوچ کنه ، هرچند من نیازی برای کوچ کردن ندارم ، من این تجربه 7-8 ساله برنامه نویسیم به ثابت کرده هیچ زبانی با هیچ زبانی دیگری قابل مقایسه نیست و با توجه به نوع کار بهترین زبان انتخاب میکنید ، آدم باید همه چی بلد باشه برای همچین مواقعی ....

کار نشد نداره سرم خیلی شلوغ ، فعلا روی این پروژه کار نمیکنم ، وقت کردم درستش میکنم مثل آدم کار کنه با آموزش این جور کار ها و نمونه برنامه و ... میزارم حالش ببرید ....

ولی خدای جواب یک سوال بده : چرا آبروی جماعت برنامه نویس بردم ؟ به نظر من ندانستن عیب نیست ، اما سوال نکردن عیب است .
کسی نگفت چون سوال پرسیدی و یا کوچ کردی آبروریزی شده. منظور من اون 5 مورد زیر بود که گفتی:


1- یعنی به تازه وارد ها جواب نمی دهید !
2- هیچ کس سواد لازم را ندارد !!
3- آن کسانی که بلد هستند بسیار کوته فکر هستند و به دیگران یاد نمیدهند !
4- کسانی که بلد هستند علاقه به آموزش دادن به دیگران ندارند !!
5- آن کسانی که بلد هستند این تاپیک ندید !!

mamrez_kh
یک شنبه 30 مرداد 1390, 11:21 صبح
لینک برنامه (http://barnamenevis.org/showthread.php?64210-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%AF%D8%B1-%D8%B3%D9%8A-%D8%B4%D8%A7%D8%B1%D9%BE&p=1321925&viewfull=1#post1321925)

پی نوشت: خطاب به عزیزان، فکر نکنم اینجا جای بحث و جدل باشه