Thinking more about this, I do not like the multiple repeated data blocks in records. I think that something like the DA block is a really good idea for low latency transmission, but not for archiving and data center output.
For real time, the protocol for the sender would be:
- Send Header
- Repeat send DA blocks
- Send TE block
- Repeat from 1.
The receiver would:
- Receive Header, hold in memory
- Repeat on receive transient DA block:
- += number of samples
- += number of bytes
- append data bytes
- Recieve TE block, append, close record
- Repeat from 1.
The archive storage would then look more like the 0622 spec with a header, one data section and a footer.
Consider a low latency case were we are sending a DA block every 0.1 seconds with 10 samples from a 100sps channel, not unreasonable if early warning is really going to work. The final record would have 6 bytes of DA block "header" bloat for the data which might fit into 10 bytes!
Over the wire, this makes sense as you want the low latency, but in the archive or for an end user it is terrible. Of course you can concatenate DA blcoks, but as soon as you do that why would you not concatenate all DA blocks within a record?
Thinking more about this, I do not like the multiple repeated data blocks in records. I think that something like the DA block is a really good idea for low latency transmission, but not for archiving and data center output.
For real time, the protocol for the sender would be:
The receiver would:
The archive storage would then look more like the 0622 spec with a header, one data section and a footer.
Consider a low latency case were we are sending a DA block every 0.1 seconds with 10 samples from a 100sps channel, not unreasonable if early warning is really going to work. The final record would have 6 bytes of DA block "header" bloat for the data which might fit into 10 bytes!
Over the wire, this makes sense as you want the low latency, but in the archive or for an end user it is terrible. Of course you can concatenate DA blcoks, but as soon as you do that why would you not concatenate all DA blocks within a record?