Hi all!
I've been trying to solve a problem for a while now, but without success. Maybe someone can help me!
I have two problems with one param:
- I get SNMP data that is equal to 77.5 (units in kHz). When I put it into dataminer it gives me 775.
- I've had a protocol failure like this:
pid: 9003 reason: System.ArgumentException: Cannot convert measurementtype to one of the existing types: digital threshold
at Skyline.DataMiner.Net.Tools.GetMeasurementType(String strType)
at Skyline.DataMiner.Net.MessageBuilder.BuildParameterInfo(ParameterInfoSourceType sourceType, String[][] xmlData, String context, List`1 otherParams, List`1 cachedStrings)
at Skyline.DataMiner.Net.Parser.ProtocolHelper.BuildOneParameterInfo(List`1 allParameters, ParameterInfoSourceType sourceType, String[][] oneParameterData, Boolean isControlProtocol, Dictionary`2 paramsToDuplicate, List`1 cachedStrings, String context)
Here is the parameter in question:
<Param id="9003" trending="false">
<Name>PeakThres</Name>
<Description>Peak Alarm Threshold</Description>
<Information>
<Subtext>
<![CDATA[Peak Alert Threshold from 65kHz to 90kHz.]]>
</Subtext>
</Information>
<Type>read</Type>
<Interprete>
<RawType>numeric text</RawType>
<LengthType>next param</LengthType>
<Type>string</Type>
</Interprete>
<SNMP>
<Enabled>true</Enabled>
<OID type="complete">1.3.6.1.4.1.41853.1.1.4.2.8.1.3</OID>
<Type>octetstring</Type>
</SNMP>
<Display>
<RTDisplay>true</RTDisplay>
<Units>kHz</Units>
<Decimals>1</Decimals>
</Display>
<Alarm>
<Monitored>true</Monitored>
</Alarm>
<Measurement>
<Type>number</Type>
</Measurement>
</Param>
Many thanks for your help!
Julien
As this question has now been open for a long time and there has been no further reaction from you, I will now close it. If you still want more information about this, could you post a new question?
Hi Julien,
Can you please try changing the interprete type from string to double?
<Interprete>
<RawType>numeric text</RawType>
<LengthType>next param</LengthType>
<Type>double</Type>
</Interprete>
The GetMeasurementType method seems to be called with "digital threshold" as argument. Had a quick look at what that method is doing, and apparently the value of the argument needs to be "threshold digital" instead. I'm not sure what is calling the that method though.
Thanks for your reply Tom!
Done !
From what I found I have either for Measurement>Type>Digital Threshold :
“Obsolete. Allows an analogue signal to be interpreted as a digital signal by assigning it a threshold value. ”
Otherwise for Measurement>Threshold :
“This element must only be specified if Protocol.Params.Param.Measurement.Type is set to “digital threshold”.”
But I don’t know, it’s not really what I want, I think.
Hi,
I see that this question has been inactive for some time. Do you still need help with this? If you’ve been able to solve this with Tom’s answer, could you select the answer? Or if you’ve found a solution of your own in the meantime, could you post an answer of your own for the reference of other users?