private byte[] BuildBuffer(bool generateBitmap) { BitArray primaryBitmap = new BitArray(64); ByteArray dataBuffer = new ByteArray(); foreach (KeyValuePair <int, byte[]> element in dataElements) { if (generateBitmap) { primaryBitmap.Set(element.Key - 1, !primaryBitmap.Get(element.Key - 1)); } dataBuffer.append(element.Value); } if (generateBitmap) { dataBuffer.prepend(StringUtil.HexStringToByteArray(StringUtil.BitArrayToHexString(primaryBitmap))); } dataBuffer.prepend( StringUtil.HexStringToByteArray((version + messageClass + messageFunction + messageOrigin))); if (header != null && generateBitmap) { dataBuffer.prepend(StringUtil.HexStringToByteArray(header)); } return(dataBuffer.array()); }