Exemple #1
0
        /// <summary>
        /// Process the symbol, marking it's blocks as 'transfered' or not
        /// </summary>
        /// <param name="symbol"></param>
        public static Symbol ProcessSymbol(Symbol symbol)
        {
            var idx = 0;
              foreach(var block in symbol.Blocks)
              {
            // @TODO: REPLACE
            // FAUX RANDOMIZATION
            if (block.Used)
            {
              block.Transmitted = MathExtender.Random() > block.Modulation.Probability(ChannelQuality[idx]);

              // update statistics
              FlowSimulation.StatTotalBlocks++;
              if (block.Transmitted)
              {
            FlowSimulation.StatTransmittedBlocks++;
            block.Flow.ProcessTransmittedBlock(block);
              }

              block.Flow.Data.Offset = 0;
            }

            idx++;
              }

              return symbol;
        }
Exemple #2
0
 /// <summary>
 /// The planner action
 /// </summary>
 public abstract Symbol Action(Flow[] flows, Symbol lastSymbol);