Sorry for the delayed reply.
The block that is received by FCM is nothing but the data that is received over the FCM flow. For instance, if you have subscribed to FCM flow for V24 and have switched the flow to data mode, then whatever your external application (eg. hyperterminal) sends to the module in one go constitutes one block.
When the external application sends something to the module, that is received in the UART FIFO buffers. This leads to the generation of an interrupt. Now, when the task which has the responsibility of reading UART, reads these FIFO buffers, it will pack the data recevied from the UART in one block and will send this to the Open-AT application for further processing.
So, there is nothing like start and ending delimiter for the block. The Open-AT application will receive an indication of the amount of data that is received along with the pointer to the received block. This can be used by Open-AT application to read the received data. When the data handler function returns TRUE, it indicates that the Open-AT application has successfully treated the received data (block) and the OS releases the memory which was reserved for the block (i.e. received chunk of data).
I hope this answers to your queries.
Open AT Fan.