public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request."); //Parse HTTP Request Body string requestBody = await new StreamReader(req.Body).ReadToEndAsync(); HeartData data = JsonConvert.DeserializeObject <HeartData>(requestBody); //Make Prediction //var predictionResult = ConsumerModel.Predict(data); HeartPrediction prediction = _predictionEnginePool.Predict(modelName: "HeartModel", example: data); Debug.WriteLine("WTF"); //Convert prediction to string //TODO udkommenteres fordi vores prediction er en string og ikke en bool. //string sentiment = Convert.ToBoolean(prediction.Prediction) ? "Healthy heart" : "Unhealthy Heart"; string sentiment = prediction.Prediction; //Return Prediction return((ActionResult) new OkObjectResult(sentiment)); }
internal static Tuple <List <HeartRateDayData>, List <HeartrateIntraDayData> > GetHeartrateForDay(DateTimeOffset day) { Tuple <HeartData, bool> result = GetDataFromFitbit <HeartData>(String.Format(HEARTRATE_URL, day.ToString(Settings.FITBIT_FORMAT_DAY))); HeartData heartrateData = result.Item1; bool retry = result.Item2; if (heartrateData == null && retry) { heartrateData = GetDataFromFitbit <HeartData>(String.Format(HEARTRATE_URL, day.Year + "-" + day.Month + "-" + day.Day)).Item1; } List <HeartRateDayData> data = new List <HeartRateDayData>(); if (heartrateData.Activities.Count > 0) { foreach (HeartRateZone zone in heartrateData.Activities[0].Value.CustomHeartrateZones) { data.Add(new HeartRateDayData { Date = DateTime.ParseExact(heartrateData.Activities[0].DateTime, Settings.FITBIT_FORMAT_DAY, CultureInfo.InvariantCulture), RestingHeartrate = heartrateData.Activities[0].Value.RestingHeartrate, CaloriesOut = zone.CaloriesOut, Max = zone.Max, Min = zone.Min, MinutesSpent = zone.Minutes, Name = zone.Name }); } foreach (HeartRateZone zone in heartrateData.Activities[0].Value.HeartRateZones) { data.Add(new HeartRateDayData { Date = DateTime.ParseExact(heartrateData.Activities[0].DateTime, Settings.FITBIT_FORMAT_DAY, CultureInfo.InvariantCulture), RestingHeartrate = heartrateData.Activities[0].Value.RestingHeartrate, CaloriesOut = zone.CaloriesOut, Max = zone.Max, Min = zone.Min, MinutesSpent = zone.Minutes, Name = zone.Name }); } } List <HeartrateIntraDayData> intradayData = new List <HeartrateIntraDayData>(); foreach (HeartrateIntradayData d in result.Item1.IntradayActivities.HeartrateIntradayData) { intradayData.Add(new HeartrateIntraDayData { Day = new DateTime(day.Year, day.Month, day.Day), Time = d.Time, Value = d.Value }); } return(Tuple.Create <List <HeartRateDayData>, List <HeartrateIntraDayData> >(data, intradayData)); }
public IActionResult Predict(HeartData input) { var model = new MLModel(); model.Build(); var result = model.Consume(input); ViewBag.HeartPrediction = result; return(View()); }
public PredictionModel GetPrediction([FromBody] HeartData heartData) { MLContext mlContext = new MLContext(); string modelPath = AppDomain.CurrentDomain.BaseDirectory + "MLModel.zip"; ITransformer mlModel = mlContext.Model.Load(modelPath, out var modelInputSchema); var predictionEngine = mlContext.Model.CreatePredictionEngine <HeartData, PredictionModel>(mlModel); var prediction = predictionEngine.Predict(heartData); return(prediction); }
private string SendHeartData(Dictionary <string, string> args) { Dictionary <string, List <HeartData> > heartData = HttpContext.Application[args["projectKey"]] as Dictionary <string, List <HeartData> >; if (args["type"] == "1") { if (heartData.Keys.Contains(args["mqName"] + "_" + (int.Parse(args["index"]) + 1))) { List <HeartData> list = heartData[args["mqName"] + "_" + (int.Parse(args["index"]) + 1)]; if (list.Count(p => p.Type == "1") >= 5) { HeartData data = list.First(p => p.Type == "1"); list.Remove(data); } list.Add(new HeartData { Type = "1", Message = "heart", Time = DateTime.Now.ToString() }); } } else if (args["type"] == "2") { if (heartData.Keys.Contains(args["ConsumerTag"])) { List <HeartData> list = heartData[args["ConsumerTag"]]; if (list.Count(p => p.Type == "2") >= 5) { HeartData data = list.First(p => p.Type == "2"); list.Remove(data); } list.Add(new HeartData { Type = "2", Message = args["ip"] + "|" + args["tag"] + "|" + args["url"] + "|" + args["logType"], Time = args["ct"] }); } } return(""); }
public void Run(IBackgroundTaskInstance taskInstance) { this.taskInstance = taskInstance; Deferral = taskInstance.GetDeferral(); heartData = new HeartData(); MinRate = heartData.MinRate; MaxRate = heartData.MaxRate; taskInstance.Canceled += OnCanceled; while (flag) { if (isSent) { if (bandClient != null) { bandClient.Dispose(); bandClient = null; } isSent = false; InitBand().Wait(); } } }
private async Task InitInterface() { heartData = new HeartData(); this.DataContext = heartData; device = (await DeviceInformation.FindAllAsync(RfcommDeviceService.GetDeviceSelector(RfcommServiceId.FromUuid(new Guid("A502CA9A-2BA5-413C-A4E0-13804E47B38F"))))).FirstOrDefault(); VisualStateManager.GoToState(this, "Loading", false); if ((heartData.IsStarted) && (IsBackgroundRunning())) { VisualStateManager.GoToState(this, "NormalStarted", false); _deviceUseBackgroundTaskRegistration.Progress += _deviceUseBackgroundTaskRegistration_Progress; return; } KillBackground(); heartData.IsStarted = false; heartData.IsMaxNotified = false; heartData.IsMinNotified = false; await InitBand(); }
public HeartPrediction Consume(HeartData input) { var predictionEngine = mlContext.Model.CreatePredictionEngine <HeartData, HeartPrediction>(trainedModel); return(predictionEngine.Predict(input)); }
// For more info on consuming ML.NET models, visit https://aka.ms/mlnet-consume // Method for consuming model in your app public static HeartPrediction Predict(HeartData input) { HeartPrediction result = PredictionEngine.Value.Predict(input); return(result); }