private void TransmitPacketType101(IMeasurement[] measurements, int startIndex, int endIndex) { PacketType101 packet = new PacketType101(); for (int i = startIndex; i <= endIndex; i++) { packet.Data.Add(new PacketType101DataPoint(measurements[i])); } m_historianPublisher.SendAsync(packet.BinaryImage()); }
/// <summary> /// Transmits export data in <see cref="PacketType101"/> /// </summary> private void TransmitPacketType101(ExportContext context, IList <IDataPoint> dataToTransmit) { PacketType101 packet; if (dataToTransmit.Count <= context.DataPerPacket) { // Transmit all the data. packet = new PacketType101(dataToTransmit); context.Socket.MulticastAsync(packet.BinaryImage(), 0, packet.BinaryLength); } else { // Transmit data at the maximum allowed rate. for (int i = 0; i < dataToTransmit.Count; i += context.DataPerPacket) { packet = new PacketType101(dataToTransmit.GetRange(i, dataToTransmit.Count - i < context.DataPerPacket ? dataToTransmit.Count - i : context.DataPerPacket)); context.Socket.MulticastAsync(packet.BinaryImage(), 0, packet.BinaryLength); } } }