EO3000I_API  2.6.1.0
 All Data Structures Functions Variables Enumerations Enumerator Groups Pages
Telegram chaining and messages

It is not possible to send a radio telegram that is longer than 21 bytes. It is not possible to send a radio telegram that is longer than 21 bytes. If the information to be sent is longer, the Dolphin API allows you to do it by "chaining" telegrams. To chain telegram the following sequence must be followed:

  • The information to be sent must be packed in a message of type MESSAGE_TYPE.
  • The msg_send function, which creates the chained telegrams and send them, must be called from the application.

A message is splitted by msg_send into several chained telegrams following this scheme:

              Message                                         
         1 byte    N-Bytes      4 bytes                     
   |--------------|--------|---------------|               
   |    CHOICE    |  DATA  |   SOURCE_ID   |  –>  
   |--------------|--------|---------------|       

             Telegram 1
    1 byte      2bits 6 bits     2 bytes    1 byte   10 bytes    4 bytes       1 bytes
|--------------|-----|---------|---------|--------|---------|------------|---------------|
| R-ORG = 0x40 | SEQ | IDX = 0 |LEN = N  | CHOICE |  DATA   | SOURCE_ID  | STATUS = 0x00 |  +
|--------------|-----|---------|---------|--------|-------- |------------|---------------|

             Telegram 2
      1 byte     2bits 6 bits   <=13 bytes   4 bytes       1 bytes
 |--------------|-----|--------|---------|------------|----------------|        
  • | R-ORG = 0x40 | SEQ | IDX =1 | DATA | SOURCE_ID | STATUS = 0x00 | + ... |--------------|-----|--------|---------|------------|----------------|
  • There are so many telegrams as are necessary to encapsulate the message DATA.
  • The last telegram contains the minimum necessary DATA length to pack the last message DATA bytes.
  • Every telegram is sent by msg_send with choice RADIO_CHOICE_CDM
  • Every telegram belonging to the same message contains the same SEQ code. SEQ code changes from message to message. msg_send manages the SEQ value
  • IDX is an index that identifies the order of the telegrams. The first telegram receives IDX=0, the second IDX=1 and so on.
  • The field LEN indicates the amount of bytes contained in the message DATA fields. The LEN field is sent only in the first telegram.
  • The message CHOICE field is encapsulated in the first telegram, after the LEN field.
  • DATA is splitted in several telegrams without changing the byte order in the message. The 1st telegram can contain a maximum a 10 DATA bytes. The next telegrams a maximum of 13 bytes.
  • The telegrams SOURCE_ID is the same as in the message.
  • Telegram STATUS field is 0x00.

The secure teach-in message telegram chaining
This special message, used during the secure teach-in procedure (see sec_createTeachIn), is splitted in a slightly different form by the msg_send function. The reason for it is to save energy.

                                         Teach-in message
       1 byte      4 bits     2 bits    2 bits  1 byte  2 bytes  16 bytes      4 bytes 
 |---------------|---------- |--------|-------|-------|-------|----------|-----------|        
 | CHOICE = 0x35 | RESERVED  |  TYPE  |  INFO | SLF   |  RLC  |    KEY   | SOURCE_ID | &ndash;>
 |---------------|---------- |--------|-------|-------|-------|----------|-----------|       
                 |                                                       |
                 |<&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&ndash; DATA &mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;>|

                                   Telegram 1
   1 byte        2bits   2 bits   2 bits  2 bits  1 byte 2 bytes 10 bytes   4 bytes       1 byte
 |--------------|-------|--------|-------|-------|-----|-------|--------|-----------|--------------|
 | R-ORG = 0x35 | IDX=0 | CNT=2  |  TYPE | INFO  | SLF |  RLC  |   KEY  | SOURCE_ID |STATUS = 0x00 | +
 |--------------|-------|--------|-------|-------|-----|-------|--------|-----------|--------------|

                                   Telegram 2
         1 byte       2bits   6 bits    6 bytes    4 bytes          1 byte
    |--------------|-------|----------|--------|-----------------|----------------|       
+   | R-ORG = 0x35 | IDX=1 | RESERVED |   KEY  |    SOURCE_ID    | STATUS = 0x00  |     
    |--------------|-------|----------|--------|-----------------|----------------|
  • All telegrams are sent with choice RADIO_CHOICE_SEC_TI
  • The DATA contained in the original message is part of the a SECU_TYPE type variable, which contains the information about the security protocol in operation mode.
  • In the first telegram the field CNT indicates the amount of telegrams sent in total.
  • The field IDX (index) identifies the order of the telegram.
  • The DATA bytes that do not fit in the 1st telegram are packed in the 2nd telegram
  • The telegram SOURCE_ID is the same as the message ID.
  • The telegram STATUS is 0x00.