public void Append(SensorItem e) { try { InvokeHelper.Invoke(() => { Value = e; History.Add(e); ValueChanged?.Invoke(e); NotifyPropertyChanged("History"); }); } catch (Exception x) { Debug.WriteLine(x); } }
public void Append(SensorItem e) { try { InvokeHelper.Invoke(() => { Value = e; History.Add(e); ValueChanged?.Invoke(e); NotifyPropertyChanged("History"); NotifyPropertyChanged("LastSummary"); NotifyPropertyChanged("LastDribble"); NotifyPropertyChanged("DribbleHistory"); }); Task.Run(() => PostToApi(this, e)); } catch (Exception x) { Debug.WriteLine(x); } }
private SensorItem PacketToSensorData(string json) { try { var item = JsonConvert.DeserializeObject <SensorData>(json); if (Data != null) { if (item?.airdata != null) { if (item.airdata.g != 0) // filter { var reading = new SensorItem { offsetMs = item.airdata.t, itemType = SensorItemTypes.Airtime, duration = item.airdata.dt, altitude = item.airdata.alt, force = item.airdata.g }; Data.Append(reading); } } if (item?.turndata != null) { if (item.turndata.g != 0) { var reading = new SensorItem { offsetMs = item.turndata.t, itemType = SensorItemTypes.Turns, duration = item.turndata.dt, radius = item.turndata.r, force = item.turndata.g, forceAvg = item.turndata.ga }; Data.Append(reading); } } if (item?.dribbledata != null) { if (item.dribbledata.gavg != 0) { var reading = new SensorItem { offsetMs = item.dribbledata.t, itemType = SensorItemTypes.Dribble, duration = item.dribbledata.dt, dribbles = item.dribbledata.c, force = item.dribbledata.gmax, forceAvg = item.dribbledata.gavg, pace = item.dribbledata.p }; Data.Append(reading); } } if (item?.hurdledata != null) { if (item.hurdledata.angle != 0) { var reading = new SensorItem { offsetMs = item.hurdledata.t, itemType = SensorItemTypes.Hurdle, duration = item.hurdledata.dt, angle = item.hurdledata.angle, wy = item.hurdledata.w, force = item.hurdledata.g }; Data.Append(reading); } } if (item?.divedata != null) { if (item.divedata.angle != 0) { var reading = new SensorItem { offsetMs = item.divedata.t, itemType = SensorItemTypes.Diving, duration = item.divedata.dt, angle = item.divedata.angle, wy = item.divedata.w, force = item.divedata.g, hurdles = item.divedata.hurdles }; Data.Append(reading); } } if (item?.rawdata != null) { var reading = new SensorItem { offsetMs = item.rawdata.t, itemType = SensorItemTypes.Raw, wx = item.rawdata.wx * 0.001f * Math.PI / 180.0f, wy = item.rawdata.wy * 0.001f * Math.PI / 180.0f, wz = item.rawdata.wz * 0.001f * Math.PI / 180.0f, ax = item.rawdata.ax * 0.001f * GRAVITY, ay = item.rawdata.ay * 0.001f * GRAVITY, az = item.rawdata.az * 0.001f * GRAVITY, orientation = item.rawdata.o }; Data.Append(reading); } if (item?.summary != null) { var reading = new SensorItem { offsetMs = item.summary.t, itemType = SensorItemTypes.Summary, steps = item.summary.steps, aircount = item.summary.air, airgmax = item.summary.airgmax, airaltmax = item.summary.airaltmax, //turns = item.summary.turns, //tgmax = item.summary.tgmax, //tgavg = item.summary.tgavg, airgavg = item.summary.airgavg, airt = item.summary.airt, //turnt = item.summary.turnt, sessions = item.summary.dsessions, dribbles = item.summary.dribble, dgmax = item.summary.dgmax, dgavg = item.summary.dgavg, pace = item.summary.dpace }; Data.Append(reading); } } } catch (Exception x) { Debug.WriteLine(x); } return(null); }
public static async Task <bool> PostToApi(SensorModel sensor, SensorItem item) { try { if (String.IsNullOrEmpty(SensorKit.Instance.API)) { return(false); } string rootUrl = SensorKit.Instance.API; string url = rootUrl; var client = new HttpClient(); HttpResponseMessage response; string json = ""; if (item.itemType == SensorItemTypes.Dribble) { url = rootUrl + "dribblesession"; var dribblesession = new dribblesession { deviceId = sensor.Id.ToString().ToLower(), deviceName = sensor.Name, count = item.dribbles, duration = item.duration, gavg = item.dgavg, gmax = item.dgmax, pace = item.pace, tag = sensor.Tag }; json = dribblesession.ToJsonString(); } //else if (item.itemType == SensorItemTypes.Summary) //{ // url = rootUrl + "dribblesummary"; // var dribblesummary = new summary // { // deviceId = Id.ToString().ToLower(), // deviceName = Name, // tag = Tag, // air = item.aircount, // airaltmax = item.airaltmax, // airgavg = item.airgavg, // airgmax = item.airgmax, // airt = item.airt, // steps = (int)item.steps, // dribbleCount = item.dribbles, // dgavg = item.dgavg, // dgmax = item.dgmax, // dpace = item.pace, // dsessions = item.sessions // }; // json = dribblesummary.ToJsonString(); //} if (!String.IsNullOrEmpty(json)) { byte[] byteData = Encoding.UTF8.GetBytes(json); using (var content = new ByteArrayContent(byteData)) { content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); response = await client.PostAsync(url, content); } if (response.IsSuccessStatusCode) { return(true); } } }catch (Exception x) { Debug.WriteLine(x); } return(false); }