public void Send(float data) { SetHeader(); m_umsg.header.size = sizeof(float); ushort [] floatData = new ushort[2]; byte[] allBytes = BitConverter.GetBytes(data); Buffer.BlockCopy(allBytes, 0, floatData, 0, allBytes.Length); m_umsg.msgCodes = AppCommon.UDP_MESSAGE_CODES.SET_SIGNAL_ID; m_umsg.header.checksum = AppCommon.CalcUdpChecksum(floatData); byte[] buf = new byte[Marshal.SizeOf(m_umsg) + m_umsg.header.size]; Array.Copy(AppCommon.StructToByteArray <AppCommon.UPayload>(m_umsg), buf, Marshal.SizeOf(m_umsg)); Array.Copy(allBytes, 0, buf, Marshal.SizeOf(m_umsg), 4); Send(buf); }