Italian Creazione evento per classe SNMP

MaAncheNo

Member
Licensed User
Longtime User
Salve,
sto creando una classe per dialogare tramite protocollo SNMP con i dispositivi presenti nella rete locale, in particolare con le stampanti da cui devo estrapolare i livelli di consumo
Lo scheletro iniziale della classe funziona e gestisco correttamente i messaggi SNMP (over UDP), il problema è che non so come gestire l'evento dati ricevuti nella classe dalla Main Activity.

E' possibile aggiungere alla classe degli eventi?
 

LucaMs

Expert
Licensed User
Longtime User
Sembra che tu stia semplicemente chiedendo come usare gli eventi di una classe creata da te (anche se mi sembra strano, visto che sei in grado di ricevere il dato nell'oggetto che hai creato - almeno così mi pare d'aver capito).

B4X:
' MiaClasse

#Event: DatoArrivato(Dato As Int)

Sub Class_Globals
   Private mCallBack As Object
   Private mEventName As String
End Sub

'Initializes the object. You can add parameters to this method if needed.
Public Sub Initialize(Callback As Object, EventName As String)
   mCallBack = Callback
   mEventName = EventName
End Sub

Public Sub LeggoDato(Dato As Int)
   ' Informo il modulo che contiene l'istanza di questa classe
   Dim FullSubName As String
   FullSubName = mEventName & "_DatoArrivato"
   If SubExists(mCallBack, FullSubName) Then
     CallSubDelayed2(mCallBack, FullSubName, Dato)
   End If
End Sub


B4X:
' Main

Sub Process_Globals
   Private mMioOggetto As MiaClasse
End Sub

Sub Activity_Create(FirstTime As Boolean)
   mMioOggetto.Initialize(Me, "SNMP")
End Sub

Sub Activity_Resume
   ' Simulazione ricezione dato
   mMioOggetto.LeggoDato(999)
End Sub

Sub SNMP_DatoArrivato(Dato As Int)
   ToastMessageShow("Dato ricevuto: " & Dato, True)
   Log("Dato ricevuto: " & Dato)
End Sub
 
Last edited:

MaAncheNo

Member
Licensed User
Longtime User
Grazie! E' esattamente quello che "semplicemente" chiedevo.
:):) Semplice se lo sai.... Ho poca dimestichezza nella costruzione delle classi e non ero riuscito a trovare esempi.
Grazie ancora!
 
Top