[EMA C++]How to get all values of one FID

hello:

I want to get all the values of one FID, what should I do.

Is there any dictionary?

image

Best Answer

  • Hi @luxiangyuan

    As you will note from the output, Currency is a Enum (enumerated) type field.

    Please refer to the enumtype.def file which comes with the ElektronSDK installation.

    You will find it in the Java\etc folder

    In the file search for the Enum FID you are interested in e.g.

    ! ACRONYM FID 
    ! ------- ---
    ! CURRENCY 15
    CURRENCY_2 1084
    CURRENCY_3 1085
    ....
    ....

    and below the list of the FIDs that share the same enumerated values, you will find the enum values:

    ! VALUE DISPLAY MEANING 
    ! ----- ------- -------
    0 " " Not allocated
    4 "AFA" Afghanistan afghani (from 1925 until 2003)
    8 "ALL" Albanian lek
    12 "DZD" Algerian dinar
    20 "ADP" Andorran peseta
    24 "AON" Angolan new kwanza .... ....

    In your code you can obtain the Display string or the numeric value as follows:

    System.out.println(fieldEntry.hasEnumDisplay() ? fieldEntry.enumDisplay() : fieldEntry.enumValue()); 

    So,the above snippet checks if a display string is present in the dictionary (normally should be present) and outputs the display string. IF the display string is not available (e.g. out of date dictionary file) then it outputs the numeric value.

    When writing a consumer, you should ideally use the default DictionaryType of ChannelDictionary (downloaded from server) to ensure you have the latest.

Answers

  • thank you!!!

    “ChannelDictionary ”?

    what is it?

    how can I download it, will you please give me a link?

  • Hi @luxiangyuan

    As I mentioned above, this is the default dictionary type and EMA will automatically download it behind the scenes (for the API to use for decoding fields etc) - unless you change the DicitonaryType to FileDictionary in your EMA config (not recommended).

    The files provided in the Java\etc folder can be used for your local reference - but you should obtain the latest whenever there is a new release of the ElektronSDK.