int CheckMeter <T>(TestMeter testMeter, byte[] bytes, ref int byteIndex, int minLength, int maxLength, bool minimizeLength) where T : IBlob, new() { string baseMessage = typeof(T).Name; int startByteIndex = byteIndex; int minimumBytesToFitFullValue = 0; if (minimizeLength) { for (int index = 0; index < testMeter.ByteArrayValue.Length; ++index) { if (testMeter.ByteArrayValue[index] != 0) { minimumBytesToFitFullValue = testMeter.ByteArrayValue.Length - index; break; } } } int maximumMeterSize = maxLength == -1 ? testMeter.ByteArrayValue.Length : Math.Min(testMeter.ByteArrayValue.Length, maxLength); int minimumMeterSize = Math.Max(minLength, minimumBytesToFitFullValue); if (minimumMeterSize > maximumMeterSize) { minimumMeterSize = maximumMeterSize; } int expectedLength = (minimizeLength ? minimumMeterSize : maximumMeterSize); Assert.That(bytes[byteIndex++], Is.EqualTo(expectedLength), baseMessage + "MeterLength"); byteIndex += CheckMultiByteArray(bytes, byteIndex, baseMessage + "MeterValue", GetSubArray(testMeter.ByteArrayValue, testMeter.ByteArrayValue.Length - expectedLength, expectedLength)); return(byteIndex - startByteIndex); }
public FormTool() { InitializeComponent(); Channel.IDataChannel channel = Channel.DataChannelFactoryService.getInstance().getDataChannel(meterId, meterType); meter = new TestMeter(meterId, channel); }