MicroSCADA keyed file format specification?
Is there a proper specification available for MicroSCADA keyed files? I must be able to process the files externally.
The only description I have found is the one in programming SCIL manual in Chapter 5.5.4:
The keyed files are implemented as a number of data blocks, index blocks and a status block. The data blocks contain the data records of the file. Each data block contains a number of consecutive (in the order specified by the key) data records organized in the order of the key.
The index blocks make up the index of data blocks in order to achieve fast access of data. An index block contains a set of (key, block number) pairs, where the key is the first key of the data block addressed by the block number. The pairs contained in an index block are again organized in the order of the key. When the file grows, more than one index block is needed. Upper level index blocks are then created. In the upper level index blocks, the block number addresses a lower level index block instead of a data block.
The status block, which is the first block of the file, contains book-keeping information of the file, such as the length of the key and address of the topmost index block.
When a new data record is written into the file (or an existing one is expanded), the index is first used to locate the ’would-be’ data block for the record. If there is enough free space in the block, the data is written into the block. Otherwise, the
neighboring data blocks are examined. If there is enough free space in the neighboring blocks to rearrange the old records and the new one into these three data blocks, it is done. Otherwise, a new data block is created and its key is inserted in an index block.
The same procedure is then repeated for the index block. When a data record is deleted from a file (or an existing one is shortened), the free space of a data block grows. When it is possible to combine the data block with its neighbors, it is done and the freed block is inserted in the free block list of the file
for later re-use.
This information, however, is not enough to implement a reader.
This question has not yet been answered.