Esempio n. 1
0
        private static async Task ProcessSubResultAsync(IClusterClient client, IReducer proxy, string partialData)
        {
            var mapper = client.GetGrain <IMapper>(Guid.NewGuid());
            AccelerationDataPerSec subResult = await mapper.MapAccelerationData(partialData);

            Console.WriteLine("\n\n{0}\n\n", subResult.ToString());
            await proxy.ReduceAccelerationData(subResult);
        }
 public void MergeAccelo(AccelerationDataPerSec items)
 {
     foreach (var item in items)
     {
         if (Contains(item.Key))
         {
             var val = base[item.Key];
             val.Count   += item.Count;
             val.Average += item.Average;
         }
         else
         {
             base.Add(item);
         }
     }
 }
Esempio n. 3
0
        public Task <AccelerationDataPerSec> MapAccelerationData(string document)
        {
            string[] splittedData = document.Split(',');
            double   x, y, z;

            x = double.Parse(splittedData[1]);
            y = double.Parse(splittedData[2]);
            z = double.Parse(splittedData[3]);

            //Calculate the Average for accelerometr X,Y,Z per one timestamp
            double average = Math.Sqrt(Math.Pow(x, 2) + Math.Pow(y, 2) + Math.Pow(z, 2));

            List <AccelerationData> accelo = new List <AccelerationData>
            {
                new AccelerationData(splittedData[0], 1, average)
            };

            logger.LogInformation(average.ToString());

            var result = new AccelerationDataPerSec(accelo);

            return(Task.FromResult(result));
        }