Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. Visual Studio 6.0
DLL comunicazione seriale
martedì 19 ottobre 2010 - 18.41
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
VB.NET
|
.NET 3.5
|
Windows 7
|
Windows XP
|
Visual Studio 2010
|
Visual Studio 2008
|
Visual Studio Express
|
MySQL 5.1
|
Access (.mdb)
|
Office 2007
|
Chrome
|
Safari
|
Firefox
|
Javascript
|
CSS 2.1
|
CSS 3.0
|
HTML 4.01
lucagian67
Profilo
| Newbie
2
messaggi | Data Invio:
mar 19 ott 2010 - 18:41
Ciao, premetto che sono alle prime armi e sono ormai disperato.
Devo fare un'applicazione dalla quale mi devo collegare a due apparati in seriale.
La casa che produce gli apparati mi ha dato una DLL per accedervi. Riesco a importare la dll con la Public Declare Function nomefunc Lib "nome.dll" ( ecc... ) ed accedere alle funzioni della dll. Per capirci meglio vi indico quali sono le funzioni della dll: ApreCom (apertura connessione), TxDati(trasmette dati e riceve risposta.
Ora se uso ApriCon e apro la connessione sulla com1 (verso il primo apparato) quando chiamo la TxDati vado a trasmettere e ricevere risposta dall'apparecchio connesso.
Ma siccome devo aprire le due connessioni contemporaneamente e inviare e ricevere risposta da entrambi le com (com1 e com3), come posso fare avendo a disposizione un unica funzione?
Io pensavo alla possibilità di duplicare la funzione, ma non riesco a trovare il modo?
Conto tanto su una vostra idea, non so più come fare. Grazie ciao
luigidibiasi
Profilo
| Guru
1.077
messaggi | Data Invio:
mer 20 ott 2010 - 10:35
>La casa che produce gli apparati mi ha dato una DLL per accedervi.
>Riesco a importare la dll con la Public Declare Function nomefunc
>Lib "nome.dll" ( ecc... ) ed accedere alle funzioni della dll.
>Per capirci meglio vi indico quali sono le funzioni della dll:
>ApreCom (apertura connessione), TxDati(trasmette dati e riceve
>risposta.
Dobbiamo capire essenzialmente se la funzione ApreCom ti restituisce un Handler alla risorsa che stai usando oppure se TxDati ti richiede la porta dove trasmettere. In entrambi i casi negativi dobbiamo capire se esiste una ulteriore funzione che 'pilota la dll' e gli fa usare la com che desideri...
>Ora se uso ApriCon e apro la connessione sulla com1 (verso il
>primo apparato) quando chiamo la TxDati vado a trasmettere e
>ricevere risposta dall'apparecchio connesso.
La DLL che usi non ti chiede nulla oltre che la COM da aprire?
Dovresti incollare almeno le firme delle funzioni nella DLL così possiamo farci un'idea migliore
Luigi Di Biasi
http://www.dibiasi.it/
http://netsell.dibiasi.it
- ecomm software -
http://blogs.dotnethell.it/luigidibiasi/
lucagian67
Profilo
| Newbie
2
messaggi | Data Invio:
mer 20 ott 2010 - 16:23
1460_COMCNC.zip
Ciao ti ringrazio in anticipo della disponibilità, ti posso dare tutto quello che ho, la header della dll e la dll in allegato.
Quando apro la comunicazione con la funzione OpenCnc() posso indicare i parametri tra cui la porta di comunicazione.
Per chiarezza ti indico qui di seguito le funzioni che uso:
Public Declare Function OpenCnc Lib "ComCnc.dll" (ByVal Com As Integer, ByVal CncType As Integer, ByVal Mode As Integer, ByVal Deb As Integer) As Integer
Public Declare Function CloseCnc Lib "ComCnc.dll" () As Integer
Public Declare Function TxCnc Lib "ComCnc.dll" (ByVal Command As String, ByVal Response As String) As Integer
Public Declare Function SetProtocol Lib "ComCnc.dll" (ByVal NewMode As Integer) As Integer
Allego file zip con documentazione dll.
Ringrazio di nuovo, ciao
luigidibiasi
Profilo
| Guru
1.077
messaggi | Data Invio:
sab 23 ott 2010 - 09:10
>Quando apro la comunicazione con la funzione OpenCnc() posso
>indicare i parametri tra cui la porta di comunicazione.
Ho letto la guida e credo di capire che più apparati vanno collegati insieme tramite una sorta di 'bus' (una periferica fornita come accessorio supplementare?) oppure tramite Rs422 (quindi presumo collegate alla stessa seriale rs422 in modalità broadcast o qualcosa di simile)
>Per chiarezza ti indico qui di seguito le funzioni che uso:
>Public Declare Function OpenCnc Lib "ComCnc.dll" (ByVal Com As
>Integer, ByVal CncType As Integer, ByVal Mode As Integer, ByVal
>Deb As Integer) As Integer
Mi sembra di capire che se lanci due volte al OpenCnc, anche scrivendo due programmi diversi che però referenziano la stessa DLL, la prima chiamata va a buon fine mentre la seconda no (la dll è shared tra i due programmi)? Fai questa prova e vedi se ti ritorna errore.
Purtroppo sei vincolato alla DLL che hanno implementato... credo tu debba usare le periferiche che loro ti indicano come compatibili...
Luigi Di Biasi
http://www.dibiasi.it/
http://netsell.dibiasi.it
- ecomm software -
http://blogs.dotnethell.it/luigidibiasi/
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !