none
SerialPort 物件收到資料時,無法引發 DataReceived 事件! RRS feed

  • 問題

  • 請問

    Public UUSerialPort As New IO.Ports.SerialPort 

    Public Function UUSerialPortOpen() As Boolean
        try
          UUSerialPort.PortName = UUCardPort
          UUSerialPort.BaudRate = 9600
          UUSerialPort.StopBits = IO.Ports.StopBits.One
          UUSerialPort.DataBits = 8
          UUSerialPort.Parity = IO.Ports.Parity.None
          UUSerialPort.ReadTimeout = 100
          UUSerialPort.WriteTimeout = 100
          UUSerialPort.ReceivedBytesThreshold = 1
          UUSerialPort.Open()
          AddHandler UUSerialPort.DataReceived, AddressOf UUSerialPort_DataReceived
        Catch ex As Exception
          ......
          Return False
        End Try

          return true
    end sub

    Public Sub UUSerialPort_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs)
    .......
    end sub
    在 SerialPort 物件收到資料時,無法引發 DataReceived 事件! 這可能的狀況為何?

    謝謝!
    2009年7月22日 上午 06:20

解答

  • 非常抱歉! 是我自己搞烏龍 debug mode 設定不完整, 導致程序沒有進到 DataRecived.
    面上面針對 serialport 的設定是可以的.
    真的很抱歉!! 同時謝謝大伙撥空幫忙!

     

    • 已標示為解答 albert-ch 2009年7月22日 上午 08:23
    2009年7月22日 上午 08:23

所有回覆

  • 在 Open() 前先綁 DataReceived 事件常式看看。
    小人物一枚。
    2009年7月22日 上午 06:25
    版主
  • 1. 最可能的是它根本沒收到資料
    2. 如果有資料進來, 你是如何確認它沒有引發 DataReceived事件的 ?



    請關心自己的問題,不要問了就放空;這是對別人與自己的尊重
    2009年7月22日 上午 06:26
    版主
  • >>> 在 Open() 前先綁 DataReceived 事件常式看看。
    一樣沒進來!
    2009年7月22日 上午 06:39
  • 描述一下你的設備狀態, 有些設備是需要由PC先發送讀取命令後才會回傳資料的.
    就你所提供的資料, 無法判斷出問題點.

    請關心自己的問題,不要問了就放空;這是對別人與自己的尊重
    2009年7月22日 上午 06:47
    版主
  • 1. 最可能的是它根本沒收到資料  --> 同樣的裝備用 AxMscomm 可以讀到卡號.
    2. 如果有資料進來, 你是如何確認它沒有引發 DataReceived事件的 ? --> debug mode 設中斷點.

    2009年7月22日 上午 06:51
  • 1. 悠遊卡 reader 用 AxMscomm, reader 有讀取聲且可以讀到卡號.
    2. 悠遊卡 reader 用 serialport , reader 有讀取聲, 但Datarecived 沒引發.
    2009年7月22日 上午 06:55
  • 那該不會問題是出在
    Public Sub UUSerialPort_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs)

    end sub
    的程式內容吧  ?

    如果你的設備會主動發資料給PC , 你可以先參考以下文章 , 用那個程式測測看
    [Serial Port通訊檢測 ]
    請關心自己的問題,不要問了就放空;這是對別人與自己的尊重
    2009年7月22日 上午 07:02
    版主
  • 排版跑掉, 重貼.
    1. 悠遊卡 reader 用 AxMscomm, reader 有讀取聲且可以讀到卡號.
    2. 悠遊卡 reader 用 serialport , reader 有讀取聲, 但Datarecived 沒引發.
    2009年7月22日 上午 07:08
  • 該不會是:
     1. 你沒有呼叫 Public Function UUSerialPortOpen()
     2. 在 Public Function UUSerialPortOpen()中有某些變數是錯的 , ex: UUCardPort ,導致這個Function 根本就進入 Try - Catch ?


    請關心自己的問題,不要問了就放空;這是對別人與自己的尊重
    2009年7月22日 上午 08:12
    版主
  • 非常抱歉! 是我自己搞烏龍 debug mode 設定不完整, 導致程序沒有進到 DataRecived.
    面上面針對 serialport 的設定是可以的.
    真的很抱歉!! 同時謝謝大伙撥空幫忙!

     

    • 已標示為解答 albert-ch 2009年7月22日 上午 08:23
    2009年7月22日 上午 08:23