The mechanism to receive the data uses events and methods as
described below:
The transmission sends blocks of information.
Stage 1
Except the last one, each block generates the event DataArrivalInFastMode. When the event occurs, run the method Get_CurrentBlock to read the current block. The block consists of integer weights separated by a Carriage Return. At this stage, just store the blocks into a string array. This stage repeats until the last block arrives. That is, if there are 10 blocks, then ‘stage 1’ occurs 9 times.
Stage 2
The last block generates the event DataArrivalLastInFastMode. Run the method Get_LastBlock in order to read the last portion of the integer weights and store them too in the string array used in stage 1.
Run the method Get_Time_ms in order to get the time stamp.
Stage 3
After the last block was received and stored, the weights may be processed:
1.Recalling that the values are separated by Carriage Return, parse the string array and keep the individual values in a numeric array. One clean way to do that is write the array to file by Print and read back the file using Input. Note that a value may be split between two blocks, e.g., the value ‘123’ may appear as ‘12’ in the end of one block and ‘3’ in the beginning of the next block. The above way using a file handles the parsing well.
2.As described in the beginning of this section, the values are integers that were accepted by multiplying the actual weight by
1, 10, 100, 1000 or 10000. You may find the actual weight by multiplying the integer weight by a “Resolution_Factor” which is 1, 0.1, 0.01, 0.001 or 0.0001, respectively. You may find the Resolution_Factor yourself, but for your convenience there is the method Get_Resolution_Factor which returns the proper value.
45