Vai al contenuto
PLC Forum


Un Form In Vb Per Spedire Dati Sulla Seriale


madmax

Messaggi consigliati

Ciao a tutti,

Sono nuovo di visual basic e vorrei riuscire a spedire una richiesta su una linea seriale.

Vorrei costruire un form con una finestra scorrevole piena di indirizzi numerici, selezionarne uno e poi spedirlo sulla seriale del PC premendo un pulsante.

Forse chiedo troppo ma se poteste scrivermi qualche riga di codice, sono veramente alle prime armi.....grazie...

:)

Link al commento
Condividi su altri siti


ciao

no, questo e' un forum per discutere ed imparare !!!

fai il sacrificio di leggere , di scaricare qualche tutorial , di chiedere come si fa'

ma non chiedere agli altri che ti scrivano il software!!!!!!!!!!!!

cio' che chiedi e' di una semplicita' lampante lo "sforzo"che dovresti fare e' minimo!

dario :ph34r:

Link al commento
Condividi su altri siti

Gianmario Pedrani

Concordo con Dario se vuoi che ti scrivano il software, ti conviene prenderti un programmatore e pagarlo, il questo forum la gente si aiuta e si scambiano idee ed opinioni nessuno fai il lavoro per gli altri, a questo indirizzo puoi trovare un po di info

ciaoooooooooooooooo

http://www.visual-basic.it/

http://programmazione.html.it/base/

:D

Link al commento
Condividi su altri siti

In effetti non è bello chiedere che qualcuno ti faccia il lavoro......

Mi sono documentato sull'argomento e ho capito che devo usare il controllo ms-comm di VB.

Ho costruito il modulo con il menù pieno di indirizzi e il pulsante per spedire l'indirizzo sulla seriale.

imposto i parametri di trasmissione:

MSComm1.CommPort = 1              ' Seleziono la COM1

MSComm1.Settings = "9600,n,8,1" ' Le impostazioni della seriale

MSComm1.PortOpen = True        ' Apre la porta.

Link al commento
Condividi su altri siti

Facendo doppio click sul pulsante, si apre la finestra del codice alla subroutine relativa all'evento "Click" del pulsante stesso.

All'interno della subroutine, scrivi questa riga di codice:

Call InviaIndirizzo

... dovrebbe bastare. :o

Ah, scusa, non avevo capito bene il tuo problema.

Dunque, per sapere quale indirizzo va passato alla Sub InviaIndirizzo, supponendo che l'elemento che contiene gli indirizzi sia una ComboBox e che si chiami Combo1, dovresti interrogare, se ricordo bene, la proprietà Text dell'elemento, sicché il codice diventa:

Call InviaIndirizzo Combo1.Text

Spero sia d'aiuto.

Modificato: da TRUNC
Link al commento
Condividi su altri siti

Per passare un argomento devi utilizzare le parentesi

Da autodidatta e principiante farei così:

Public Indirizzo as String

__________________________________________________________________________

Private Sub Command1_Click()

On Error GoTo Err_Command1_Click

Indirizzo = me.menù.text [usa me se fai riferimento ad un controllo sulla finestra attiva]

Call InviaIndirizzo(Indirizzo)

exit_Command1_Click:

Exit Sub

Err_Command1_Click:

MsgBox Err.Number & " " & Err.Description

Resume exit_Command1_Click

End Sub

___________________________________________________________________________

Modificato: da Hellis
Link al commento
Condividi su altri siti

ops hai ragione Trunc ho copincollato male, adesso sistemo l'uscita.

Io di solito metto quelle righe per una corretta interettazione degli errori.

Per la faccenda delle parentesi tieni conto che io sono autodidatta, e non sapevo che potessero essere ommesse.

Continuerò ad usarle, perchè mi danno un pò di senso d'ordine :)

Ciao, Luca

Link al commento
Condividi su altri siti

Ricordati anche di chiudere il canale di comunicazione, perchè non so se lo fa automaticamente quando scarica l'oggetto mscomm dalla memoria.

MSComm1.PortOpen = False

Potresti metterlo nell'evento Unload del Form.

Link al commento
Condividi su altri siti

I parametri vanno passati tra parentesi (obbligatorie) quando richiami una funzione (deve restituire un valore al chiamante) e senza quando richiami una procedura (non deve restituire un valore).

Lo vedi anche quando utilizzi, per esempio, "MsgBox", nei due modi:

COME FUNZIONE

variabile = MsgBox("Devo uscire dal programma?", vbYesNo, "CHIUSURA PROGRAMMA")

COME PROCEDURA

MsgBox "Uscita dal programma"

Modificato: da nll
Link al commento
Condividi su altri siti

Quindi per cui quando è possibile ommetterle rende più leggibile il listato, perchè se sono ommesse ovviamente so che chiamo una fuzione o una subroutine non per avere un valore di ritorno.

Ok capito, in effetti il msgbox lo uso come scrivi nll, ma alle chiamate con call o dirette con e senza parentesi non ci avevo pensato.

Per il listato di invio del pacchetto sulla porta com, così come è scritto e se la sub inviaindirizzo non viene utilizzata da nessun altro, si può conglobare tutto sotto al click di command button 1.

Link al commento
Condividi su altri siti

  • 2 weeks later...

Finalmente il sito è tornato funzionante...Grazie mille, mi siete stati d'aiuto... Non posso collaudare il tutto perchè mi manca il dispositivo a microcontrollore che dovrà ricevere le richieste... intanto volevo familiarizzare con i comandi per la seriale... grazie ancora ciaoooooo!!!!

max

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...