Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [VB.net 1.1] Accesso a porte USB

    Salve, mi chiamo Francesco ed è la prima volta che scrivo su questo forum.
    Sto gestendo un applicativo che interagisce con HW esterno e che in prima battuta utilizzava un interfaccia RS232 e successivamente tramite una connessione USB.
    Il passaggio da un interfaccia hw all'altra non è stata del tutto indolore ma gli statment che utilizzo per aprire la porta sono praticamente gli stessi.
    Attualmente l'unica difficolta che incontro è legata alla impossibilità di indirizzare porte con nome superiore al com9 e non ne capisco il motivo.
    L'ambito tecnologico è quello del framework 1.1 con Visual studio 2003 ed il linguaggio di riferimento è VB.net
    Per completezza qui di seguito riporto il metodo che utilizzo per aprire la connessione verso la porta i-esima.
    Ci tengo a sottolineare che l'istruzione che va in errore è la chiamata relativa alla CreateFile.

    C'è Qualcuno tra voi che si è già scontrato con problemi simili?

    Saluti
    Francesco

    codice:
    Public Overloads Sub Open()
            ' Get Dcb block,Update with current data
            Dim uDcb As DCB, iRc As Integer
            ' Set working mode
            Dim iMode As Integer = Convert.ToInt32(IIf(meMode = Mode.Overlapped, _
                FILE_FLAG_OVERLAPPED, 0))
    
            ' Initializes Com Port
            If miPort > 0 Then
                Try
                    ' Creates a COM Port stream handle 
                    mhRS = CreateFile("COM" & miPort.ToString, _
                    GENERIC_READ Or GENERIC_WRITE, 0, 0, _
                    OPEN_EXISTING, iMode, 0)
                    If mhRS <> -1 Then
                        ' Clear all comunication errors
                        Dim lpErrCode As Integer
                        iRc = ClearCommError(mhRS, lpErrCode, 0&)
                        ' Clears I/O buffers
                        iRc = PurgeComm(mhRS, PurgeBuffers.RXClear Or _
                            PurgeBuffers.TxClear)
                        ' Gets COM Settings
                        iRc = GetCommState(mhRS, uDcb)
                        ' Updates COM Settings
                        Dim sParity As String = "NOEM"
                        sParity = sParity.Substring(meParity, 1)
                        ' Set DCB State
                        Dim sDCBState As String = String.Format( _
                            "baud={0} parity={1} data={2} stop={3}", _
                            miBaudRate, sParity, miDataBit, CInt(meStopBit))
                        iRc = BuildCommDCB(sDCBState, uDcb)
                        'CODAN 17/05/05
                        If (uDcb.Bits1 <> 12305) Then
                            uDcb.Bits1 = 12305
                        End If
                        'FINE
                        iRc = SetCommState(mhRS, uDcb)
                        If iRc = 0 Then
                            Dim sErrTxt As String = pErr2Text(GetLastError())
                            Throw New CIOChannelException( _
                                "Unable to set COM state0" & sErrTxt)
                        End If
                        ' Setup Buffers (Rx,Tx)
                        iRc = SetupComm(mhRS, miBufferSize, miBufferSize)
                        ' Set Timeouts
                        pSetTimeout()
                    Else
                        ' Raise Initialization problems
                        Throw New CIOChannelException( _
                            "Unable to open COM" & miPort.ToString)
                    End If
                Catch Ex As Exception
                    ' Generica error
                    Throw New CIOChannelException(Ex.Message, Ex)
                End Try
            Else
                ' Port not defined, cannot open
                Throw New ApplicationException("COM Port not defined, " + _
                    "use Port property to set it before invoking InitPort")
            End If
        End Sub

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    visto che sei nuovo ti da il benvenuto indicandoti che devi leggere il regolamento prima di postare..

  3. #3
    Originariamente inviato da Stoicenko
    visto che sei nuovo ti da il benvenuto indicandoti che devi leggere il regolamento prima di postare..
    Letto il regolamento e corretto il tiro grazie

  4. #4
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    ottimo.. come mai devi usare il framework 1.1?

  5. #5
    Originariamente inviato da Stoicenko
    ottimo.. come mai devi usare il framework 1.1?
    Perchè è un software di cui ho ereditato la gestione due anni fa e siccome l'applicativo è molto complesso non se ne è mai effettuato il porting sotto 2.0 o superiore attualmente l'applicativo è stabile ed ha un a regolare evoluzione funzionale per cui il cliente non è disposto a buttare 5 anni di investimenti.

  6. #6
    Non C'è Nessuno che abbia già avuto questo tipo di problema e che magari l'abbia risolto?

  7. #7

    Problema risolto

    Guardate qua c'è qui riportata la soluzione:
    http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx
    http://support.microsoft.com/kb/115831

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.