Template / ExtractBitField Protocol Frame
This command includes a bit field from the source data (phase 1) and converts it into an ASCII number. It can only be used after a preceding phase 1, see BitDataEnd.
The resulting number is returned with the most significant digits first. LSBencoded source data will be converted automatically.
The following sample cuts bits 16, converts them to ASCII, and extends the number to 4 digits. This results in "0016".
0x5A
BitDataEnd Msb
ExtractBitField 0001 5 UnpackBinToAscii 4
The next sample shows the difference between the MSB and the LSBfirst encoding. This command outputs "3456" as it is, but by specifying BitDataEnd Lsb instead, we would obtain "5634", since the input is interpreted as "0x78563412".
0x12345678
BitDataEnd Msb
ExtractBitField 0008 16 UnpackBinToAscii 0
Properties
 Frame value: 0x1B14
Format
Name  Type/Size  Description  

SrcFieldStartBit  Integer (16 bits)  Specifies the first bit (beginning with 0) to be taken from the phase 1 data. This is not necessarily a multiple of eight! Please note that 0 always corresponds to bit 0 of the first byte (no matter if LSB or MSB encoding is used).  
SrcFieldBits  Integer (8 bits) 
Specifies the number of bits to be taken from the phase 1 data. This is not necessarily a multiple of eight! If this value is 0, all data from SrcFieldStartBit to the end of the phase 1 template is taken. 

Filter  Bit mask (8 bits) 
Specifies the conversion rules for the data
extracted from phase 1. Please note that this
filter shall return an ASCII number by convention.
For every of these filter bits, a specific data conversion mechanism is specified. This mechanism is applied to a TemplateCommand if the filterbit is set. The activated filters are applied ordered by there value. Starting with the smallest value. 

BcdToBin  Boolean (bit 0x80) 
Converts a BCD Number (must only contain nibbles 09, not AF) to a binary number. Input and Output data are MSB encoded. The length of the destination data is the length of the source data (in bytes) multiplied by 0.83048 (and rounded down to the next byte boundary). Some source data's binary representation is longer than the calculated destination length. If such source data could occur, an additional leading zerobyte has to be inserted in front of the source data
0x12 0x34 => 0x04 0xD2


BinToAscii  Boolean (bit 0x40) 
Convert Binarydata to ASCII by converting the ASCII
characters 0x000x09 to 0x300x39 and 0x0A0x0F to
0x410x49.
0x01 0x0A > 0x31 0x41


Unpack  Boolean (bit 0x20) 
Splits the high and the low nibble of each byte
into two separate bytes, where the high nibble is
set to 0.
0x01 CF => 0x00 0x01 0x0C 0x0F


BinToBcd  Boolean (bit 0x10) 
Converts a binary Number to a BCD encoded number. Input and Output data are MSB encoded. The length of the destination data is the length of the source data in bytes) multiplied by 1.2041 (and rounded up to the next byte boundary). This is not exactly the inverse of BcdToBin, since the length may differ.
0x04 0xD2 => 0x12 0x34


SwapNibbles  Boolean (bit 0x08) 
Swap the higher nibble (bits 57) of each byte with
the lower nibble (bits 03).
0x12 0x34 0xEF => 0x21 0x43 0xFE


Pack  Boolean (bit 0x04) 
Merges two Bytes at a time to a single one by
removing the leading nibble (which has to be 0) of
each byte.
0x03 0x0F > 0x3F


AsciiToBin  Boolean (bit 0x02) 
Convert ASCII to Binarydata by converting the ASCII
characters 0x300x39 to 0x000x09 and 0x410x49
(0x610x66) to 0x0A0x0F.
0x31 0x41 > 0x01 0x0A


Reverse  Boolean (bit 0x01) 
Swap the first byte with the last one, the second
one with the next to last one and so on.
0x12 0x3D 0xEF => 0xEF 0x3D 0x12


DstFieldBytes  Integer (8 bits) 
Specifies the actual number of bytes of phase 2. If Filter returns ASCII formatted data, this value corresponds to the number of digits. If this value is 0, it is automaticially set to the length of the SrcFieldBits, rounded up to a multiple of 8 and adapted to the converted format by Filter. If this value is greater than SrcFieldBits , the most significant digits will be filled with zeros. If this value is smaller than SrcFieldBits , the most significant digits will be removed. 