private void updateData(ShimmerData data) { Application.Current.Dispatcher.Invoke(() => { mts.SData = data; }); }
public void HandleEvent(object sender, EventArgs args) { CustomEventArgs eventArgs = (CustomEventArgs)args; int indicator = eventArgs.getIndicator(); switch (indicator) { case (int)ShimmerBluetooth.ShimmerIdentifier.MSG_IDENTIFIER_STATE_CHANGE: int state = (int)eventArgs.getObject(); if (state == (int)ShimmerBluetooth.SHIMMER_STATE_CONNECTED) { updateMessage("device connected"); } else if (state == (int)ShimmerBluetooth.SHIMMER_STATE_CONNECTING) { updateMessage("connecting shimmer device"); } else if (state == (int)ShimmerBluetooth.SHIMMER_STATE_NONE) { updateMessage("device disconnected"); } else if (state == (int)ShimmerBluetooth.SHIMMER_STATE_STREAMING) { updateMessage("Streaming"); } break; case (int)ShimmerBluetooth.ShimmerIdentifier.MSG_IDENTIFIER_NOTIFICATION_MESSAGE: break; case (int)ShimmerBluetooth.ShimmerIdentifier.MSG_IDENTIFIER_DATA_PACKET: ObjectCluster objectCluster = (ObjectCluster)eventArgs.getObject(); if (FirstTime) { IndexAccelX = objectCluster.GetIndex(Shimmer3Configuration.SignalNames.LOW_NOISE_ACCELEROMETER_X, ShimmerConfiguration.SignalFormats.CAL); IndexAccelY = objectCluster.GetIndex(Shimmer3Configuration.SignalNames.LOW_NOISE_ACCELEROMETER_Y, ShimmerConfiguration.SignalFormats.CAL); IndexAccelZ = objectCluster.GetIndex(Shimmer3Configuration.SignalNames.LOW_NOISE_ACCELEROMETER_Z, ShimmerConfiguration.SignalFormats.CAL); IndexGSR = objectCluster.GetIndex(Shimmer3Configuration.SignalNames.GSR, ShimmerConfiguration.SignalFormats.CAL); IndexPPG = objectCluster.GetIndex(Shimmer3Configuration.SignalNames.INTERNAL_ADC_A13, ShimmerConfiguration.SignalFormats.CAL); FirstTime = false; } // List<string> s= objectCluster.GetNames(); // foreach (string st in s) { // Debug.WriteLine(st); // } SensorData datax = objectCluster.GetData(IndexAccelX); SensorData datay = objectCluster.GetData(IndexAccelY); SensorData dataz = objectCluster.GetData(IndexAccelZ); SensorData dataGSR = objectCluster.GetData(IndexGSR); SensorData dataPPG = objectCluster.GetData(IndexPPG); //TimeSpan time = stopwatch.Elapsed; //double time = DateTime.Now.ToOADate(); double time = mts.GetTime() - startTime; ShimmerData dataObj = new ShimmerData(mts.DoubleToTimeString(time), dataGSR.Data, dataPPG.Data, datax.Data, datay.Data, dataz.Data); //Debug.WriteLine(dataObj.Time); updateData(dataObj); break; } }