NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 4239 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
صفحه 3 از 4 نخستنخست 1234 آخرینآخرین
نمایش نتایج: از 41 به 60 از 66

موضوع: چگونگی شناسائی اتوماتیک پورت comو خواص آن در vb.net

  1. #41
    مدیر باز نشسته behnam6500 آواتار ها
    تاریخ عضویت
    Jan 2009
    نوشته ها
    801
    تشکر
    311
    تشکر شده 899 بار در 390 پست

    پیش فرض

    مرتضا این یه کلاس برای پورت سریال هست که برای یکی از پروژه ها ساخته بودمش...

    این کلاس رو توی پروژت اضافه کن شاید بتونی مشکلت رو با این حل کنی

    [PHP]
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO.Ports;

    namespace CEWorld.IO.Ports
    {
    public class SerialPort
    {
    private System.IO.Ports.SerialPort ComPort = new System.IO.Ports.SerialPort();

    public string[] GetPortNames()
    {
    string[] PortNames = System.IO.Ports.SerialPort.GetPortNames();
    string[] p = { string.Empty };

    foreach (string Port in PortNames)
    {
    p[p.GetUpperBound(0)] = Port;
    Array.Resize(ref p, p.Length + 1);
    }
    Array.Resize(ref p, p.Length - 1);
    return p;
    }

    public bool OpenPort(string PortName)
    {
    if (ComPort.IsOpen)
    ComPort.Close();

    ComPort.PortName = PortName;
    try
    {
    ComPort.Open();
    return true;
    }
    catch
    {
    return false;
    }
    return true;
    }

    public bool IsPortOpen()
    {
    return ComPort.IsOpen;
    }

    public void ClosePort()
    {
    if (ComPort.IsOpen)
    ComPort.Close();
    }

    public string Send(string value)
    {
    ComPort.DiscardInBuffer();
    ComPort.NewLine = "\r";


    ComPort.WriteLine(value);

    int t = 0;
    string retData = string.Empty;

    while (t <= 50)
    {
    retData = ComPort.ReadExisting();

    if (!string.IsNullOrEmpty(retData))
    {
    return retData.Replace("\r", string.Empty).Replace("\n", string.Empty);
    }

    System.Threading.Thread.Sleep(10);
    t++;
    }
    ComPort.DiscardInBuffer();
    return string.Empty;
    }
    }
    }
    [/PHP]

  2. تشکرها از این نوشته :

    KHM

  3. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  4. #42
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض

    ممنون بهنام جان

    ولی اگه اشتباه نکنم این کلاسی که نوشتی مال #C هست! من بلد نیستم ازش توی VB.NET استفاده کنم. میشه بگب چطور می تونم این کارو بکنم؟ اصلا شدنی هست؟

    الان اون کاری رو که توی پست قبلی گفتم انجام دادم. فعلا که خوب داره کار می کنه. تا ببینم می تونه جواب بقیه ی کارمم بده یا نه. ولی هنوز نفهمیدم چرا اون برنامه قبلیه که همه چیشم درسته چرا کار نمی کنه.

    اینم کد جدید که کار می کنه ، البته فعلا!!!
    کد:
    Imports System.IO.Ports
    
    Public Class Form1
    
        Dim Entr As Char = Chr(13)
        Dim portnames() As String
        Dim serialdata As String
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            SerialPort1.BaudRate = 19200
        End Sub
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
            portnames = SerialPort.GetPortNames()
    
            For i As Integer = 1 To portnames.Length
    
                SerialPort1.PortName = portnames(i - 1)
                SerialPort1.ReadTimeout = 100
                SerialPort1.WriteTimeout = 20
    
                Try
                    If SerialPort1.IsOpen = False Then
    
                        TextBox1.Text = "Opening port..."
                        SerialPort1.Open()
                        SerialPort1.Write("mrk" + Entr)
                        SerialPort1.Close()
    
                    End If
                Catch ex As Exception
                    SerialPort1.Close()
                End Try
    
            Next
    
        End Sub
    End Class
    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

  5. #43
    مدیر باز نشسته behnam6500 آواتار ها
    تاریخ عضویت
    Jan 2009
    نوشته ها
    801
    تشکر
    311
    تشکر شده 899 بار در 390 پست

    پیش فرض

    یکی از مزیتهای دات نت همین استفاده از چند زبان در یک پروژه هست!

    اصولن برای استفاده از این امر یا باید یه رفرنس بسازی ازش، یا در یه Solution استفاده کنی... ولی در Asp.net در تنظیمات web.config میتونی زبان دوم رو تعریف کنی... به هر حال...

    این هم کدش به زبان vb.net

    [PHP]Imports System
    Imports System.Collections.Generic
    Imports System.Linq
    Imports System.Text
    Imports System.IO.Ports

    Namespace CEWorld.IO.Ports
    Public Class SerialPort
    Private ComPort As New System.IO.Ports.SerialPort()

    Public Function GetPortNames() As String()
    Dim PortNames As String() = System.IO.Ports.SerialPort.GetPortNames()
    Dim p As String() = {String.Empty}

    For Each Port As String In PortNames
    p(p.GetUpperBound(0)) = Port
    Array.Resize(p, p.Length + 1)
    Next
    Array.Resize(p, p.Length - 1)
    Return p
    End Function

    Public Function OpenPort(PortName As String) As Boolean
    If ComPort.IsOpen Then
    ComPort.Close()
    End If

    ComPort.PortName = PortName
    Try
    ComPort.Open()
    Return True
    Catch
    Return False
    End Try
    Return True
    End Function

    Public Function IsPortOpen() As Boolean
    Return ComPort.IsOpen
    End Function

    Public Sub ClosePort()
    If ComPort.IsOpen Then
    ComPort.Close()
    End If
    End Sub

    Public Function Send(value As String) As String
    ComPort.DiscardInBuffer()
    ComPort.NewLine = vbCr


    ComPort.WriteLine(value)

    Dim t As Integer = 0
    Dim retData As String = String.Empty

    While t <= 50
    retData = ComPort.ReadExisting()

    If Not String.IsNullOrEmpty(retData) Then
    Return retData.Replace(vbCr, String.Empty).Replace(vbLf, String.Empty)
    End If

    System.Threading.Thread.Sleep(10)
    t += 1
    End While
    ComPort.DiscardInBuffer()
    Return String.Empty
    End Function
    End Class
    End Namespace

    [/PHP]

  6. #44
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض

    ممنون بهنام جان. ولی این کدی که گذاشتی واسه من خیلی خفنه! (کفـــمان بریــد! از بعضی جاهایش سر در نیاوردیم!) من علاقه دارم که کد خودم رو بنویسم. یعنی اهل کپی پیست نیستم. از طرفی مثل شما حرفه ای هم نیستم.

    الان یه کدی نوشتم که باید داده رو از پورت سریال بخونه ، اما نمی خونه! کجاش مشکل داره به نظر شما؟
    توضیح اینکه قسمت ارسال همون قبلیه ، فقط قسمت دریافت بهش اضافه شده.

    کد:
    Imports System.IO.Ports
    
    Public Class Form1
    
        Dim Entr As Char = Chr(13)
        Dim portnames() As String
        Dim serialdata As String
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
        End Sub
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
            portnames = SerialPort.GetPortNames()
            SerialPort1.BaudRate = 57600
            For i As Integer = 1 To portnames.Length
    
                SerialPort1.PortName = portnames(i - 1)
                SerialPort1.ReadTimeout = 100
                SerialPort1.WriteTimeout = 20
    
                Try
                    If SerialPort1.IsOpen = False Then
    
                        TextBox1.Text = "Opening port..."
                        SerialPort1.Open()
                        SerialPort1.Write("mrk" + Entr)
                        SerialPort1.Close()
    
                    End If
                Catch ex As Exception
                    SerialPort1.Close()
                End Try
    
            Next
    
        End Sub
    
    
        Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
    
            serialdata = SerialPort1.ReadLine()
            show_recieved_data()
    
        End Sub
    
        Private Sub show_recieved_data()
    
            TextBox2.Text = serialdata
    
        End Sub
    
    End Class
    ویرایش توسط morteza_rk : 17-06-2012 در ساعت 04:59
    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

  7. #45
    مدیر باز نشسته behnam6500 آواتار ها
    تاریخ عضویت
    Jan 2009
    نوشته ها
    801
    تشکر
    311
    تشکر شده 899 بار در 390 پست

    پیش فرض

    برای کار با سریال و دریافت داده حتمن از delegate استفاده کنید. چرا که از عملکرد برنامه اطمینان 100% پیدا میکنید. اصلش هم باید از delegate استفاده کرد.

    این قطعه کدی هست که در یکی از پروژه هام نوشته بودم برای این منظور. البته با سی شارپ بوده که به وی بی باز نویسیش کردم برات...

    [PHP]Private Delegate Sub SerialWork(Serial As System.IO.Ports.SerialPort)
    Private Delegate Sub SetReadSerialData(data As String)

    Private Sub SerialWorkProcedure(Serial As System.IO.Ports.SerialPort)
    If McuRS232.IsOpen Then
    Dim _DataReceived As String = McuRS232.ReadExisting()
    ReadSerialData(_DataReceived)
    End If
    End Sub

    Private Sub McuRS232_DataReceived(sender As Object, e As System.IO.Ports.SerialDataReceivedEventArgs)
    Dim SW As SerialWork = SerialWorkProcedure
    SW.BeginInvoke(McuRS232, Nothing, Nothing)
    End Sub

    Private Sub ReadSerialData(data As String)
    If Me.InvokeRequired Then
    Try
    Dim RSD As SetReadSerialData = ReadSerialData
    Me.Invoke(RSD, data)
    Catch generatedExceptionName As Exception
    End Try
    Else
    'inja dade vojud darad!
    DataReceived += data
    End If
    End Sub
    [/PHP]


    سی شارپ:

    [PHP]
    private delegate void SerialWork(System.IO.Ports.SerialPort Serial);
    private delegate void SetReadSerialData(string data);

    private void SerialWorkProcedure(System.IO.Ports.SerialPort Serial)
    {
    if (McuRS232.IsOpen)
    {
    string _DataReceived = McuRS232.ReadExisting();
    ReadSerialData(_DataReceived);
    }
    }

    void McuRS232_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
    {
    SerialWork SW = SerialWorkProcedure;
    SW.BeginInvoke(McuRS232, null, null);
    }

    void ReadSerialData(string data)
    {
    if (this.InvokeRequired)
    {
    try
    {
    SetReadSerialData RSD = ReadSerialData;
    this.Invoke(RSD, data);
    }
    catch (Exception)
    {
    }
    }
    else
    {
    //inja dade vojud darad!
    DataReceived += data;
    }
    }
    [/PHP]
    ویرایش توسط behnam6500 : 17-06-2012 در ساعت 17:11

  8. تشکرها از این نوشته :

    KHM

  9. #46
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض

    ممنون بهنام جان

    حسابی به تو و ama_trig زحمت دادم. ولی در عوض کلی چیز یاد گرفتم. میرم که این تیکه کد رو تست کنم.
    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

  10. #47
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض

    دادا برنامه از سه نقطه ایراد می گیره. دوتاش میگه که آرگومان واسه توابع ندادی. یکیش هم از یه متغیر ایراد می گیره که میگه تعریف نشده. من برنامه رو پیوست کردم. بی زحمت یه نگاه بهش بنداز.

    من چون سی شارپ بلد نیستم نتونستم با مقایسه این دو کد به نتیجه ای برسم. شرمنده.
    فايل هاي پيوست شده فايل هاي پيوست شده
    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

  11. تشکرها از این نوشته :


  12. #48
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض

    راستی چون نمی دونستم Delegate چیه ، راجع بهش تحقیق کردم. اینو فهمیدم :

    "همه ی متدهایی که ما در برنامه نویسی به کار می بریم ، شیء نیستن. و در واقع یک آدرس سخت افزاری در حافظه دارن. که این آدرس درواقع مدخل این متدها در حافظه هست و هروقت ما این متدهارو فراخوانی کنیم این آدرس فراخوانی میشه.

    حالا ما می تونیم آدرس یک متد رو به یک Delegate اختصاص بدیم. خب این کار چه فایده ای داره؟
    وقتیکه ما یکبار یک Delegate رو فراخوانی می کنیم درواقع متد نسبت داده شده به اون فراخوانی میشه. و برای متدهای دیگه هم میشه با یه تغییر کوچیک از همین Delegate برای فراخوانیشون استفاده کرد. این کار باعث میشه که هر متد دارای یک آدرس سخت افزاری در حافظه نباشه ، بلکه از طریق Delegate بهش دسترسی داشته باشیم.

    به عبارت دیگه با این روش متدها در زمان فراخوانیشون از حافظه فضا اشغال می کنن نه در زمان کامپایل کردن ، که همون اول بهشون آدرس سخت افزاری میده (چه فراخوانی بشن و چه فراخوانی نشن).

    به عبارت ساده تر میشه گفت یک Delegate مشابه یک اشاره گر (Pointer) در محیط برنامه نویسی C عمل می کنه. "

    درست گفتم بهنام جان؟
    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

  13. #49
    کاربر علاقه مند
    تاریخ عضویت
    May 2009
    نوشته ها
    23
    تشکر
    4
    تشکر شده 16 بار در 11 پست

    پیش فرض

    مشکل برنامه ی قبلی بر طرف شد؟
    کد:
    serialdata = SerialPort1.ReadLine()
    نگفتین ایراد چی هست؟ گیر می کنه؟

    کلا من که همیشه با این روش های async مشکل دارم، بخصوص روی baud های مقدار بالا، بعضی وقتها سخت افزار یک بار یه چیز طولانی می فرسته، ولی توی این مدل که نوشته میشه، دو بار یه چیزی invoke یا raise می شه، بخاطر همین کلا پیغامی کار می کنم، تا هم مطمئن باشم سخت افزار درسته(هنگ نکرده، ... ) هم نوشتنش هم راحت تره، بخصوص الان که می شه با حداقل منابع سیستم، قفل کرد روی readline
    ، همون کاری که برنامه ی اول می کرد.
    یه نکته کاراکتر ("\r\n") باید دو تا باشن برای دات نت!

  14. #50
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض

    نگفتین ایراد چی هست؟ گیر می کنه؟
    مهندس من که نتونستم بفهمم ایرادش چیه. اگه دستور serialdata = SerialPort1.ReadLine() بذارم بعد از خط serialdata = SerialPort1.Write() همون چیزی رو که می فرسته می خونه! یعنی PC داره کلمه mrk رو می فرسته و همینم می خونه نه اون چیزی که از سمت میکرو میاد.

    اگرم مثل برنامه ی قبلی از تابع datarecieved استفاده کنم اصلا کار نمی کنه. من که نتونستم بفهمم مشکل از کجاست.

    دارم برنامه ی آخر بهنام رو تست می کنم که اونم فعلا سه تا پیغام خطا میده که من نتونستم رفعشون کنم تا حالا.
    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

  15. #51
    عضو جدید delta2010 آواتار ها
    تاریخ عضویت
    Jun 2010
    نوشته ها
    18
    تشکر
    13
    تشکر شده 4 بار در 4 پست

    پیش فرض

    سلام
    من میخوام یک رشته ساده را از طریق پورت سریال ارسال و دریافت کنم بوسیله visual basic 2010
    لطف می کنید یک برنامه ساده برای من بزارین که یک فیلد داشته باشه که اطلاعات را نشون بده و یک فیلد که رشته نوشته شده توی اون را به پورت سریال ارسال کنه

    واقعاً ممنون میشم

  16. #52
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض

    من میخوام یک رشته ساده را از طریق پورت سریال ارسال و دریافت کنم بوسیله visual basic 2010
    سلام دادا ، یه سر به لینک زیر بزن. یه برنامه با VB.NET 2010 گذاشتم.

    http://www.iranmicro.ir/forum/showthread.php?t=6228
    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

  17. #53
    مدیر باز نشسته behnam6500 آواتار ها
    تاریخ عضویت
    Jan 2009
    نوشته ها
    801
    تشکر
    311
    تشکر شده 899 بار در 390 پست

    پیش فرض

    بابت اون 3 خطا عذر میخوام. دلیلش این بود که موقع بازنویسی کد به vb.net ، حواسم به syntax آدرس دهی متد ها نبود و اونارو مثل سی شار ادرس دهی کرده بودم!

    صحیح برنامه اینجاست

    [PHP]
    Private Delegate Sub SerialWork(ByVal Serial As System.IO.Ports.SerialPort)
    Private Delegate Sub SetReadSerialData(ByVal data As String)
    Dim DataReceived As String = String.Empty

    Private Sub SerialWorkProcedure(ByVal Serial As System.IO.Ports.SerialPort)
    If SerialPort1.IsOpen Then
    Dim _DataReceived As String = SerialPort1.ReadExisting()
    ReadSerialData(_DataReceived)
    End If
    End Sub

    Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs)
    Dim SW As New SerialWork(AddressOf SerialWorkProcedure)
    SW.BeginInvoke(SerialPort1, Nothing, Nothing)
    End Sub

    Private Sub ReadSerialData(ByVal data As String)
    If Me.InvokeRequired Then
    Try
    Dim RSD As New SetReadSerialData(AddressOf ReadSerialData)
    Me.Invoke(RSD, data)
    Catch generatedExceptionName As Exception
    End Try
    Else
    'inja dade vojud darad!
    DataReceived += data
    End If
    End Sub

    [/PHP]

  18. #54
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض

    بابت اون 3 خطا عذر میخوام. دلیلش این بود که موقع بازنویسی کد به vb.net ، حواسم به syntax آدرس دهی متد ها نبود و اونارو مثل سی شار ادرس دهی کرده بودم!
    خواهش میشه دادا ، من باید عذر خواهی کنم که چند روزه شما و ama_trig رو مشغول این برنامه کردم.
    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

  19. #55
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض

    دادا نمیشه! دارم روانی میشم.

    مگه من نباید اونجائیکه نوشتی "inja dade vojud darad" مقدار datareceived رو بریزم توی یه textbox ؟
    پس چرا هیچی نشون نمیده؟

    اصلا تابع SerialPort1_DataReceive انگار اجرا نمیشه! آخه اونجا یه دستور میزارم که اگه اجرا شد توی یه textbox نشون بده. ولی هیچی نشون نمیده.

    واااااااااااایییییییییییی ی.... مغزم درد می کنه!
    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

  20. #56
    مدیر باز نشسته behnam6500 آواتار ها
    تاریخ عضویت
    Jan 2009
    نوشته ها
    801
    تشکر
    311
    تشکر شده 899 بار در 390 پست

    پیش فرض

    پروژت رو بزار اینجا

  21. #57
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض

    بفرما داداش ، ببخشید دیگه.
    فايل هاي پيوست شده فايل هاي پيوست شده
    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

  22. تشکرها از این نوشته :


  23. #58
    مدیر باز نشسته behnam6500 آواتار ها
    تاریخ عضویت
    Jan 2009
    نوشته ها
    801
    تشکر
    311
    تشکر شده 899 بار در 390 پست

    پیش فرض

    پروژت رو ازش جواب گرفتم.

    دوتا ایراد تو کارت بود که باعث میشد جواب نده.

    اولی اینکه event دریافت از پورت رو به component serial نسبت نداده بودی! این یه نمره...

    دومی اینکه در button اول، پورت رو باز میکنی، میفرستی و میبندی... در دکمه دوم میخوای بخونی ولی از پورتی که اصلن باز نشده! این هم یه نمره!

    برای مورد اول در properties به seriaport1 رخداد datareceived عنوان متد SerialPort1_DataReceived رو نسبت بده.

    این هم خروجی که از برنامت گرفتم رو با یه ماژول sim908 تست کردم (دم دستم بود)

    mrk

    NORMAL POWER DOWN

    +CREG: 3
    ??????????????
    RDY

    +CPIN: NOT INSERTED

    +CFUN: 1

    +CREG: 2

    +CREG: 0

    GPS Ready

  24. تشکرها از این نوشته :

    KHM

  25. #59
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض

    برای مورد اول در properties به seriaport1 رخداد datareceived عنوان متد SerialPort1_DataReceived رو نسبت بده.
    از توی Properties بلد نیستم. ولی فهمیدم چی گفتی. الان نسبت دادم. اگه ممکنه از توی properties نسبت دادن رو هم بگو.

    دومی اینکه در button اول، پورت رو باز میکنی، میفرستی و میبندی... در دکمه دوم میخوای بخونی ولی از پورتی که اصلن باز نشده! این هم یه نمره!
    من کلا با باز و بسته کردن پورت توی VB.NET مشکل دارم. الان وقتیکه خط Serialport1.close رو حذف می کنم برنامه کار می کنه ولی فقط یکبار! بعداز اون دیگه هرچی دکمه ی اول رو بزنم بی فایدست. حالا نمی دونم دقیقا پورت رو کجا باید ببندم.
    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

  26. #60
    مدیر باز نشسته behnam6500 آواتار ها
    تاریخ عضویت
    Jan 2009
    نوشته ها
    801
    تشکر
    311
    تشکر شده 899 بار در 390 پست

    پیش فرض

    نه! برنامه با هر بار کلیک کردن شما اطلاعات رو نشون میده!

    شما یه text box کوچیک گذاشتی که اطلاعات data receive نشون بده! اطلاعات اون متغیر شامل تمامی داده هایی هست که پورت دریافت کرده!

    باید بعد از \r\n محتویات متغیر رو خالی کنی تا خود داده جدید توش بشینه. بعد از این کار یه textbox بضورت multi line بزار و در رخداد دریافتت که داده نهایی داری اینطوری بنویس:

    textbox1.text+=datareeived;

    جواب میده...

صفحه 3 از 4 نخستنخست 1234 آخرینآخرین

موضوعات مشابه

  1. ساخت چراغ اتوماتیک
    توسط espadana در انجمن طراحی و ساخت و آزمایش مدارت الکترونیک
    پاسخ: 11
    آخرين نوشته: 08-11-2013, 23:34
  2. شارژر اتوماتیک باتری اتومبیل
    توسط Ma3ood در انجمن الکترونیک
    پاسخ: 0
    آخرين نوشته: 23-09-2013, 12:46
  3. شارژر اتوماتیک
    توسط mapmap در انجمن طراحی و ساخت و آزمایش مدارت الکترونیک
    پاسخ: 13
    آخرين نوشته: 25-03-2013, 00:48
  4. برای زبان c++ و c از کجا می تونم طرز کار با پورتها رو یاد بگیرم؟
    توسط microweb در انجمن میکرو کنترلر های 32 بیتی(arm)
    پاسخ: 22
    آخرين نوشته: 30-05-2012, 14:23
  5. كليد پوش باتون 4 پايه
    توسط forghan در انجمن آموزش نرم افزارهای برق و الکترونیک
    پاسخ: 1
    آخرين نوشته: 08-06-2011, 15:02

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •