private byte[][] PreparePackets(byte[] data) { float packetsFloat = data.Length / (float)Buffer; int packetsNumber = 0; if (NumbersHelper.IsFloat(packetsFloat)) { packetsNumber = (int)packetsFloat + 1; } else { packetsNumber = (int)packetsFloat; } Console.WriteLine("Packets needed: " + packetsNumber); byte[][] packets = new byte[packetsNumber][]; if (data.Length < Buffer) { packets[0] = data; return(packets); } else { int dataPos = 0; for (int i = 0; i < packets.Length; i++) { int remaningBytes = data.Length - dataPos; byte[] packet; if (remaningBytes < Buffer) { packet = new byte[remaningBytes]; } else { packet = new byte[Buffer]; } Console.WriteLine("Building packet n." + i + "------------------------------"); //BUILD PACKET for (int j = 0; j < Buffer; j++) { if (dataPos < data.Length) { Console.WriteLine("Cell: " + j + " - " + dataPos); packet[j] = data[dataPos]; dataPos++; } else { Console.WriteLine("FINISHED"); break; } } packets[i] = packet; } return(packets); } }
private void FillRandomPacket(byte[] packet) { for (int i = 0; i < packet.Length; i++) { packet[i] = (byte)NumbersHelper.GenerateNumber(0, 100); } }