question

Upvotes
Accepted
1 1 2 3

Correct way to structure a page partial update

Hello,

I am using EMA Java application to post page based data, in the case which we are required to post an update to a page which starts somewhere in the middle of the column (e.g. row 1, column 10). What is the correct way to structure the code to achieve this? I noticed if given just a String then it posts it directly from column 0, which is incorrect in this case...

I am working on using a ByteBuffer to post the update, with some information which was reverse engineered from this article: https://developers.refinitiv.com/en/article-catalog/article/how-to-parse-page-based-data-using-elektron-sdk-java


However there is no example of doing this when creating the packet. Is the below correct? And is there any examples in java of doing what I am describing?

private static final char CHAR_CSI = 0x9B;
private static final char HPA = 0x60;


// 1 + 4 + 1 + 80 = Bytes Required for all data
ByteBuffer bbuf = ByteBuffer.allocate(86);
bbuf.putChar(CHAR_CSI);
bbuf.putInt(column);
bbuf.putChar(HPA);
bbuf.put(page.getText().getBytes());


Many thanks

elektronrefinitiv-realtimeelektron-sdkema-apirrtjava
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Hello @Faris

Thank you for your participation in the forum. Is the reply below satisfactory in resolving your query?


If so please can you click the 'Accept' text next to the appropriate reply? This will guide all community members who have a similar question.

Thanks,


AHS

@Faris

Please be informed that a reply has been verified as correct in answering the question, and has been marked as such.

Thanks,

-AHS

1 Answer

· Write an Answer
Upvote
Accepted
79.1k 250 52 74

@Faris

The code should look like this:

                ByteBuffer bbuf = ByteBuffer.allocate(8);
                byte[] partial = {
                          27,//0x1B <CSI1>
                          91,//0x5B <CSI2>
                          49,48, //0x31 (1), 0x30 (0) 
                          96,//0x60 <HPA>
                          65,//0x41 (A)
                          66,//0x42 (B)
                          67 //0x43 (C)
                          };
                bbuf.put(partial);
                
                bbuf.rewind();
                fieldList.add(EmaFactory.createFieldEntry().buffer(215, bbuf));

The raw buffer in the trace file looks like this:

<fieldEntry fieldId="215" data="1B5B 3130 6041 4243"/>

The output is:

0123456789ABC34567890123456789012345678901234567890123456789

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.