New posts are disabled while we improve the user experience.
You can browse the site, or for urgent issues, raise a query at MyAccount.
It depends on the type of field which holds this data. If it is Real, you need to use encodeReal. You can verify it from the RDMFieldDictionary file.
! !ACRONYM DDE ACRONYM FID RIPPLES TO FIELD TYPE LENGTH RWF TYPE RWF LEN !------- ----------- --- ---------- ---------- ------ -------- ------- ! TRDPRC_1 "LAST" 6 TRDPRC_2 PRICE 17 REAL64 7
For example, if you are using the TRDPRC_1 field, you need to call encodeReal. However, TREP may be unable to cache the data (Double.MAX_VALUE) because the value may exceed the 7 bytes (the RWF maximum field length for caching).
Therefore, you may need to create your custom fields which a negative field identifier to hold the Double.MAX_VALUE in TREP cache.
Instead of using Double.MAX_VALUE, you can set it as blank for no value.
In what language?
I'll take a guess that you mean Double.MAX_VALUE
, hence you are referring to Java?
Therefore my reply: Publish into a field of type DOUBLE
. According to the RFA Javadocs it can hold such a value.
But I'm wondering:
My 2c. :-)
Thanks for your reply.
Doule.max is a float data.
But wehen we use encode_doule api, we got a negative number which is not correct.
How to using encode_double api?
I have tested with direct connection by running QSConsumer to connect to QSProvider.
1. I have added a custom field with double type into RDMFieldDictionary file
TEST_DOUBLE "TEST DOUBLE" -12345 NULL DOUBLE 0 DOUBLE 8
Both QSProvider and QSConsumer use this local data dictionary.
2. Modify QSProvider to publish Double.MAX_VALUE in both refresh and update messages
_encoder.encodeFieldEntryInit( (short)-12345, OMMTypes.DOUBLE); _encoder.encodeDouble(Double.MAX_VALUE);;
3. Modify QSConsumer to check for Double.MAX_VALUE
if(data.getType()==OMMTypes.DOUBLE) { double d = ((OMMNumeric)data).toDouble(); if(d == Double.MAX_VALUE) { System.out.println("### Get Double.MAX_VALUE"); } }
The result from QSConsumer indicates that it can retrieve Double.MAX_VALUE in the custom double field (-12345 TEST_DOUBLE).
FIELD_LIST FIELD_ENTRY 6/TRDPRC_1: 10.6000 FIELD_ENTRY 22/BID: 10.4000 FIELD_ENTRY 25/ASK: 10.8000 FIELD_ENTRY 32/ACVOL_1: 700 FIELD_ENTRY -12345/TEST_DOUBLE: ### Get Double.MAX_VALUE