Skip to content
DataMiner DoJo

More results...

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Search in posts
Search in pages
Search in posts
Search in pages
Log in
Menu
  • Blog
  • Questions
  • Learning
    • E-learning Courses
    • Open Classroom Training
    • Certification
      • DataMiner Fundamentals
      • DataMiner Configurator
      • DataMiner Automation
      • Scripts & Connectors Developer: HTTP Basics
      • Scripts & Connectors Developer: SNMP Basics
      • Visual Overview – Level 1
      • Verify a certificate
    • Tutorials
    • Video Library
    • Books We Like
    • >> Go to DataMiner Docs
  • Expert Center
    • Solutions & Use Cases
      • Solutions
      • Use Case Library
    • Markets & Industries
      • Media production
      • Government & defense
      • Content distribution
      • Service providers
      • Partners
      • OSS/BSS
    • DataMiner Insights
      • Security
      • Integration Studio
      • System Architecture
      • DataMiner Releases & Updates
      • DataMiner Apps
    • Agile
      • Agile Webspace
      • Everything Agile
        • The Agile Manifesto
        • Best Practices
        • Retro Recipes
      • Methodologies
        • The Scrum Framework
        • Kanban
        • Extreme Programming
      • Roles
        • The Product Owner
        • The Agile Coach
        • The Quality & UX Coach (QX)
    • DataMiner DevOps Professional Program
  • Downloads
  • More
    • Feature Suggestions
    • Climb the leaderboard!
    • Swag Shop
    • Contact
      • General Inquiries
      • DataMiner DevOps Support
      • Commercial Requests
    • Global Feedback Survey
  • PARTNERS
    • All Partners
    • Technology Partners
    • Strategic Partner Program
    • Deal Registration
  • >> Go to dataminer.services

Representing max values as interprete exceptions

Solved1.69K views19th July 2023exception interprete
3
Craig Dann 10th February 2021 0 Comments

Hi,

I would like to disable a double parameter under certain circumstances. I would like to do this by setting the value to be the maximum allowed value for a double (all other values are valid values). Could you please let me know how to represent this in the XML file? i.e. what do I put in the xxx below? Thanks

<Interprete>
<Type>double</Type>
<RawType>double</RawType>
<LengthType>fixed</LengthType>
<Length>8</Length>
<Exceptions>
<Exception id="1" value="xxx">
<Display state="disabled">NOT INITIALIZED</Display>
<Value>xxx</Value>
</Exception>
</Exceptions>
</Interprete>

Marieke Goethals [SLC] [DevOps Catalyst] Selected answer as best 19th July 2023

3 Answers

  • Active
  • Voted
  • Newest
  • Oldest
3
Laurens Moutton [SLC] [DevOps Enabler]8.73K Posted 10th February 2021 1 Comment

Hi,

When increasing the loglevel of the element when trying to set that value (Double.MaxValue), it can be seen from SLProtocol that this raw value is 0xFFFFFFFFFF FFEF7F (which matches the specs for a double that uses mantissa and exponent in the background). This is then converted into a VT_R8 which is the value that SLElement gets. When trying that value then it works for me. I tried the shorter 0x variant both with little and big endian without success.

The only thing that worked in my case when performing a protocol.SetParameter from a QAction with value Double.MaxValue was by specifying that VT_R8 number that I found when increasing the loglevel. I don't know if any rounding issues could occur but it's worth to try with below example.

Like João mentioned in his answer, we usually try to find a logical limit in the parameter to avoid having to rely on such large numbers. I seems strange that eg a Double.MaxValue - 1 would still be considered as a valid number, that one can't even be fully displayed on the element card, so there has to be a more logical high limit to the parameter that is being displayed in the UI.

<Interprete>
<RawType>double</RawType>
<LengthType>fixed</LengthType>
<Type>double</Type>
<Length>8</Length>
<Exceptions>
<Exception id="1" value="179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368">
<Display state="disabled">NOT INITIALIZED</Display>
<Value>179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368</Value>
</Exception>
</Exceptions>
</Interprete>

Marieke Goethals [SLC] [DevOps Catalyst] Selected answer as best 19th July 2023
Laurens Moutton [SLC] [DevOps Enabler] commented 11th February 2021

Adding some more info why that value works. In the background there are different types of program languages being used. A maximum double is (in big endian) equal to 0x7FEFFFFFFFFFFFFF in memory, these are the bytes that are being exchanged between the different processes and these bytes are according to IEEE 64-bit (8-byte) floating-point. It’s writing out the value as a number that is different between programming languages. The SLScripting QAction (usually) has C#, a maximum double is represented as 179769313486232 followed by 294 zeros. That is what João tried as solution to fill as value. Several server side processes, like SLProtocol, use C++ in the background, a maximum double there is represented as the large number that was written out like in my answer. It’s in such a kind of process where the comparison happens to check if the incoming value is equal to the value defined in the exception, so the C++ max value needs to be defined in the xml tag to have a match. Client side uses a different programming language and displays the value again like C# does. In other words, the exception value is depending on the way the used programming language displays it. If the developers of C++ ever decide to change the way a maximum double is displayed as a number and make it the same like C# then the driver will be broken. Similar if the developers of the DataMiner software ever decide to change to a different type of process in the background then the driver will also be broken. In my personal opinion I would not use such an extreme number as an exception value, there should be a more realistic number that is lower that can be used and won’t cause problems between different programming languages

1
João Severino [SLC] [DevOps Catalyst]12.94K Posted 10th February 2021 0 Comments

Hi Craig,

As Jarno mentioned, in the linked question, the answer indicates that a double parameter in DataMiner is a standard double-precision floating-point number whose maximum limit is 1.79769313486232E308.

I gave it a try in a test protocol and managed to add it as is to the default value tag of a parameter, which will show in DataMiner as Infinity

Do note that I had to change the raw type from double to numeric text in order to be able to add the default value.

I also tried to add an exception to the parameter but could not get it to display as desired.

Not sure if there is another way of getting it to work but, if possible in your application, I would advise you to try and restrict the range the numbers can take.

That way you could specify a value outside that range without relying on extreme numbers.

João Severino [SLC] [DevOps Catalyst] Answered question 10th February 2021
1
Jarno Lernou [SLC] [DevOps Enabler]5.00K Posted 10th February 2021 1 Comment

Hi Craig, a similar question was already asked. Does the answer serve what you need?

Edit

The other question was with RawType:numeric text, whereas here it's double. The maximum value will probably the same, as you specified 8 bytes as the length.

Craig Dann Posted new comment 10th February 2021
Craig Dann commented 10th February 2021

Thanks Jarno. It’s related, but I was wondering how to represent the value in the XML file. Thanks

Please login to be able to comment or post an answer.

My DevOps rank

DevOps Members get more insights on their profile page.

My user earnings

0 Dojo credits

Spend your credits in our swag shop.

0 Reputation points

Boost your reputation, climb the leaderboard.

Promo banner DataMiner DevOps Professiona Program
DataMiner Integration Studio (DIS)
Empower Katas

Recent questions

Web Applications exception in Cube due to invalid certificate 0 Answers | 0 Votes
Redundancy Groups and Alarming – Duplicate Alarms 0 Answers | 0 Votes
Correlation Engine: “Test rule” doesn’t result in a hit, despite functional rule 1 Answer | 3 Votes

Question Tags

adl2099 (115) alarm (62) Alarm Console (82) alarms (100) alarm template (83) Automation (223) automation scipt (111) Automation script (167) backup (71) Cassandra (180) Connector (109) Correlation (69) Correlation rule (52) Cube (151) Dashboard (194) Dashboards (188) database (83) DataMiner Cube (57) DIS (81) DMS (71) DOM (140) driver (65) DVE (56) Elastic (83) Elasticsearch (115) elements (80) Failover (104) GQI (159) HTTP (76) IDP (74) LCA (152) low code app (166) low code apps (93) lowcodeapps (75) MySQL (53) protocol (203) QAction (83) security (88) SNMP (86) SRM (337) table (54) trending (87) upgrade (62) Visio (539) Visual Overview (345)
Privacy Policy • Terms & Conditions • Contact

© 2025 Skyline Communications. All rights reserved.

DOJO Q&A widget

Can't find what you need?

? Explore the Q&A DataMiner Docs

[ Placeholder content for popup link ] WordPress Download Manager - Best Download Management Plugin