Autore Topic: Missing As Classe serial  (Letto 684 volte)

Offline takoda

  • Gamberetto
  • *
  • Post: 10
    • Mostra profilo
Missing As Classe serial
« il: 02 Gennaio 2013, 09:01:47 »
Salve a tutti e buon Anno sto iniziando un progetto presumo molto lungo e sto incontrando problemi alle prime righe come da titolo!
Ho creato una classe che richiama la classe serial di gb.net!


' Gambas class file ModBusRtuSerial

Export

Private SPort As SerialPort
Public MbStatus As String
SPort = New SerialPort() As "SPort"

 
Public Function MbPortOpen(PortName As String, PortBaudRate As Integer, PortDataBit As Integer, PortParity As Integer) As Boolean
  If SPort.RNG = False
    SPort.PortName = PortName
    SPort.Speed = PortBaudRate
    SPort.DataBits = PortDataBit
    SPort.Parity = PortParity
  
    
     SPort.Open()
      
    
  Endif
End


E nel form main creo un istanza


' Gambas class file Fmain

Public Mb1 As ModBusRtuSerial

Public Sub _new()

End

Public Sub Form_Open()
 Mb1.MbPortOpen("tty0", 9600, 8, 2)
 
End
' Gambas class file
Se invece inserisco SPort = New SerialPort() As "SPort" all'interno della funzione ricevo Null object alla chiamata Mb1.MbPortOpen("tty0", 9600, 8, 2)

All' esecuzione del programma l'errore è Missing As  alla chiamata SPort = New SerialPort() As "SPort"
Grazie!
« Ultima modifica: 02 Gennaio 2013, 09:23:48 da takoda »

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Missing As Classe serial
« Risposta #1 il: 02 Gennaio 2013, 10:02:24 »
Prova andare su "progetto - proprietà - opzioni"

i simboli dei moduli sono public   --SI--
i controlli dei form sono public     --SI--

Offline takoda

  • Gamberetto
  • *
  • Post: 10
    • Mostra profilo
Re: Missing As Classe serial
« Risposta #2 il: 02 Gennaio 2013, 10:33:32 »
Grazie per la risposta ma le proprietà sono già impostate su public!

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.292
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Missing As Classe serial
« Risposta #3 il: 02 Gennaio 2013, 10:49:46 »
Ritengo tu debba modificare la prima dichiarazione nella classe principale così:
Codice: gambas [Seleziona]

Public Mb1 As New ModBusRtuSerial


e nella classe secondaria:
Codice: gambas [Seleziona]

Private SPort As New SerialPort As "SPort"

(eliminando ovviamente la successiva riga: SPort = New SerialPort As "SPort". Altrimenti questa riga dovrà essere spostata all'interno della routine !)
« Ultima modifica: 03 Gennaio 2013, 13:50:58 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline takoda

  • Gamberetto
  • *
  • Post: 10
    • Mostra profilo
[RISOLTO]Re: Missing As Classe serial
« Risposta #4 il: 02 Gennaio 2013, 11:14:46 »
OK grazie sembra funzionare !
Siete mitici!
« Ultima modifica: 04 Gennaio 2013, 10:22:47 da takoda »