ik ben bezig met een programma te schrijven die monitoring doet van verscheidende sensoren.. De data van de sensoren gaan eerst naar een database waar ik ze dan constant uitlees.
ik heb dus een klasse clsMain en clsTag, clsMain is de klasse waar alle berekeningen gebeuren, clsTag is de klasse voor 1 enkele 'tag' of 1 parameter uit de db. Het is dus de bedoeling vanuit clsMain meerdere oTag objecten uit clsTag te maken en in deze tag apart adhv een sqlcommand die ik meegeef de value van de respectievelijke tag uit de db te halen.
In het tagobject heb ik dan een timer die om de 3 seconden de database controleert of de waarde die dan ter beschikking is verschilt met de waarde die ik de vorige keer had gebruikt. Is de waarde niet dezelfde dan wordt een event afgevuurd waarvan de handler in clsMain staat en dus in clsMain wordt uitgevoerd.
code in clsMain waar de tags worden geinitialiseerd
Code: Selecteer alles
For
i = 1 To 15
SelectCase i
Case 1
sTagVar = "dTempLNG"
sTag = "63TI026.PNT"'C
oTag = New clsTag(sTagVar, oServer, sTag)
arrTags.Add(oTag)
Case 2
sTagVar = "dDrukLNG"
sTag = "68PIC007.MEAS"'barg
oTag = New clsTag(sTagVar, oServer, sTag)
arrTags.Add(oTag)
...
en dan de handler die dus ook in clsMain staat
Code: Selecteer alles
Private Sub oTag_gotUpdate (Byval sender As clsTag, Byval dValue As Double) Handles oTag.gotUpdate
SelectCase sender.TagVar
Case"dTempLNG"
dTempLNG = dValue
MessageBox.Show("Var: " & sender.TagVar & " value1: " & dValue)
Case"dDrukLNG"
dDrukLNG = dValue
MessageBox.Show("Var: " & sender.TagVar & " value1: " & dValue)
...
Als ik daar bijv die i = 1 to 15 verander naar i = 1 to 2 dan krijg ik enkel een messagebox voor dDrukLNG en niets voor dTempLNG ondertussen ik daar eigenlijk ook een oTag object voor heb die om de 3 seconden kijkt naar een update..
iemand een idee wat er hier zou mis kunnen lopen??
alvast bedankt!