DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

Mehrere Novalue-Zeichen in einem DataPlugIn verwenden

Solved!
Go to solution

Nach längerer DIAdem-Abstinenz, versuchte ich mich an einem DataPlugIn, um die CSV-Dateien des "dnt RoomLogg Pro" einzulesen.
Bis auf die Interpretation der Werte bei Sensorausfall als Novalue hat das auch geklappt.
Abhängig vom Messkanal (Temperatur, Luftfeuchte, ...) ist die Zeichenfolge für Novalue entweder "---.-" oder "--".
Mein Versuch, die Novalue-Zeichenkette im PlugIn mit der File-Formatter-Eigenschaft "NoValueSign" (abhängig vom einzulesenden Kanal) umzuschalten, schlug fehl:

Sub ReadStore(oFile)
 
  'Tell the file how the string data is formed.
  oFile.Formatter.Delimiters   = ","
  oFile.Formatter.DecimalPoint = "."
  oFile.Formatter.TimeFormat = "YYYY/MM/DD hh:mm"
  oFile.Formatter.LineFeeds    = vbNewLine
  

  dim sRow : sRow = oFile.GetNextLine
  if inStr(sRow, "HeatIndex(C)") <= 0 then RaiseError("Dieses Dateiformat wird nicht unterstützt.")
  
  'Create a file accessor
  Dim oBlock, oDirectAccessChn, saChnName, saChnUnit, iLoop, iMaxChnCount
  
  Set oBlock = oFile.GetStringBlock()
 
  call GetChnNameAndUnit(sRow, saChnName, saChnUnit, iMaxChnCount)
  
  'Provide the data to USI
  Root.Properties.Add "datetime", Now
  Dim oGroup : Set oGroup = Root.ChannelGroups.Add(oFile.Info.FileName)
 
  Set oDirectAccessChn = oBlock.Channels.Add(saChnName(0), eTime)
  call oDirectAccessChn.Properties.Add("Unit_String", saChnUnit(0))
  oGroup.Channels.AddDirectAccessChannel(oDirectAccessChn)
  for iLoop = 1 to iMaxChnCount 
    oFile.Formatter.NoValueSign = "---.-"
    if iLoop = 2 then oFile.Formatter.NoValueSign = "--"
    Set oDirectAccessChn = oBlock.Channels.Add(saChnName(iLoop), eR64)
    call oDirectAccessChn.Properties.Add("Unit_String", saChnUnit(iLoop))
    oGroup.Channels.AddDirectAccessChannel(oDirectAccessChn)
  next
End Sub

Wie kann eine Berücksichtigung mehrerer NoValue-Strings oder eine Umschaltung realisiert werden?

 

Viele Grüße in die DIAdem-Welt

Martin

0 Kudos
Message 1 of 4
(990 Views)
Solution
Accepted by topic author MS_DC

Hallo Martin,

 

es ist möglich, dass ein DataPlugin diese Flexibilität nicht unterstützt. Wenn dem so ist, dann müssen alle Werte manuell eingelesen und überprüft werden. Wenn du mir einen Datensatz per Mail schickst (die Adresse ist dir ja bekannt), kann ich mir das genauer ansehen.

 

Gruß

Walter

Message 2 of 4
(973 Views)

Nach Prüfung haben wir festgestellt, dass ein DataPlugin diese Flexibilität nicht unterstützt. In solchen Fällen müssen die Werte einzeln importiert und geprüft werden.

 

Gruß

Walter

0 Kudos
Message 3 of 4
(924 Views)

Vielen Dank für die Unterstützung!
Mit der Einzelprüfung der Werte sind vom Kanal abhängige Formate zwar flexibel möglich (NoValueStrings, Datum/Zeitformate, ...), allerdings leidet die Ladegeschwindigkeit stark darunter.
Falls technisch möglich, würde zukünftig das Setzen der Formatter-Parameter während des Ladevorgangs sehr helfen.

Gruß Martin

0 Kudos
Message 4 of 4
(916 Views)