Example #1
0
        public async void InsertData()
        {
            // 1. Build a DataCollector object.
            DataCollector MyDataCollector = new DataCollector.Builder().SetPackageName(MyContext)
                                            .SetDataType(DataType.DtContinuousStepsDelta)
                                            .SetDataStreamName("STEPS_DELTA")
                                            .SetDataGenerateType(DataCollector.DataTypeRaw)
                                            .Build();

            // 2. Create a sampling dataset set based on the data collector.
            SampleSet sampleSet = SampleSet.Create(MyDataCollector);

            // 3. Build the start time, end time, and incremental step count for a DT_CONTINUOUS_STEPS_DELTA sampling point.
            DateTime startDate  = DateTime.Parse("2020-12-15 09:00:00");
            DateTime endDate    = DateTime.Parse("2020-12-15 09:05:00");
            int      stepsDelta = 1000;

            // 4. Build a DtContinuousStepsDelta sampling point.
            SamplePoint samplePoint = sampleSet.CreateSamplePoint()
                                      .SetTimeInterval(GetTime(startDate), GetTime(endDate), TimeUnit.Milliseconds);

            samplePoint.GetFieldValue(Field.FieldStepsDelta).SetIntValue(stepsDelta);

            // 5. Save a DtContinuousStepsDelta sampling point to the sampling dataset.
            // You can repeat steps 3 through 5 to add more sampling points to the sampling dataset.
            sampleSet.AddSample(samplePoint);

            // 6. Call the data controller to insert the sampling dataset into the Health platform.
            // 7. Calling the data controller to insert the sampling dataset is an asynchronous Task.
            var InsertTask = MyDataController.InsertAsync(sampleSet);

            try
            {
                await InsertTask;

                if (InsertTask.IsCompleted)
                {
                    if (InsertTask.Exception == null)
                    {
                        Logger("Success insert an SampleSet into HMS core");
                        ShowSampleSet(sampleSet);
                        Logger(Split);
                    }
                    else
                    {
                        PrintFailureMessage(InsertTask.Exception, "Insert");
                    }
                }
            }
            catch (Exception ex)
            {
                PrintFailureMessage(ex, "Insert");
            }
        }
Example #2
0
        public async void DeleteData()
        {
            // 1. Build a DataCollector object.
            DataCollector MyDataCollector = new DataCollector.Builder().SetPackageName(MyContext)
                                            .SetDataType(DataType.DtContinuousStepsDelta)
                                            .SetDataStreamName("STEPS_DELTA")
                                            .SetDataGenerateType(DataCollector.DataTypeRaw)
                                            .Build();

            // 2. Build the time range for the deletion: start time and end time.
            DateTime startDate = DateTime.Parse("2020-12-15 09:00:00");
            DateTime endDate   = DateTime.Parse("2020-12-15 09:05:00");

            // 3. Build a parameter object as the conditions for the deletion.
            DeleteOptions deleteOptions = new DeleteOptions.Builder().AddDataCollector(MyDataCollector)
                                          .SetTimeInterval(GetTime(startDate), GetTime(endDate), TimeUnit.Milliseconds)
                                          .Build();

            // 4. Use the specified condition deletion object to call the data controller to delete the sampling dataset.
            // 5. Calling the data controller to delete the sampling dataset is an asynchronous Task.

            var DeleteTask = MyDataController.DeleteAsync(deleteOptions);

            try
            {
                await DeleteTask;

                if (DeleteTask.IsCompleted)
                {
                    if (DeleteTask.Exception == null)
                    {
                        Logger("Success delete sample data from HMS core");
                        Logger(Split);
                    }
                    else
                    {
                        PrintFailureMessage(DeleteTask.Exception, "Delete");
                    }
                }
            }
            catch (Exception ex)
            {
                PrintFailureMessage(ex, "Delete");
            }
        }
Example #3
0
        public async void UpdateData()
        {
            // 1. Build a DataCollector object.
            DataCollector MyDataCollector = new DataCollector.Builder().SetPackageName(MyContext)
                                            .SetDataType(DataType.DtContinuousStepsDelta)
                                            .SetDataStreamName("STEPS_DELTA")
                                            .SetDataGenerateType(DataCollector.DataTypeRaw)
                                            .Build();

            // 2. Build the sampling dataset for the update: create a sampling dataset
            // for the update based on the data collector.
            SampleSet sampleSet = SampleSet.Create(MyDataCollector);

            // 3. Build the start time, end time, and incremental step count for
            // a DtContinuousStepsDelta sampling point for the update.
            DateTime startDate  = DateTime.Parse("2020-12-15 09:00:00");
            DateTime endDate    = DateTime.Parse("2020-12-15 09:05:00");
            int      stepsDelta = 2000;

            // 4. Build a DtContinuousStepsDelta sampling point for the update.
            SamplePoint samplePoint = sampleSet.CreateSamplePoint()
                                      .SetTimeInterval(GetTime(startDate), GetTime(endDate), TimeUnit.Milliseconds);

            samplePoint.GetFieldValue(Field.FieldStepsDelta).SetIntValue(stepsDelta);

            // 5. Add an updated DtContinuousStepsDelta sampling point to the sampling dataset for the update.
            // You can repeat steps 3 through 5 to add more updated sampling points to the sampling dataset for the update.
            sampleSet.AddSample(samplePoint);

            // 6. Build a parameter object for the update.
            // Note: (1) The start time of the modified object updateOptions cannot be greater than the minimum
            // value of the start time of all sample data points in the modified data sample set
            // (2) The end time of the modified object updateOptions cannot be less than the maximum value of the
            // end time of all sample data points in the modified data sample set
            UpdateOptions updateOptions = new UpdateOptions.Builder().SetTimeInterval(GetTime(startDate), GetTime(endDate), TimeUnit.Milliseconds)
                                          .SetSampleSet(sampleSet)
                                          .Build();

            // 7. Use the specified parameter object for the update to call the
            // data controller to modify the sampling dataset.
            // 8.Calling the data controller to modify the sampling dataset is an asynchronous Task.
            var UpdateTask = MyDataController.UpdateAsync(updateOptions);

            try
            {
                await UpdateTask;

                if (UpdateTask.IsCompleted)
                {
                    if (UpdateTask.Exception == null)
                    {
                        Logger("Success update sample data from HMS core");
                        Logger(Split);
                    }
                    else
                    {
                        PrintFailureMessage(UpdateTask.Exception, "Update");
                    }
                }
            }
            catch (Exception ex)
            {
                PrintFailureMessage(ex, "Update");
            }
        }
        // Add an activity record to the Health platform
        public async void AddActivityRecord()
        {
            Logger(Split + "Add ActivityRecord");

            // Build the time range of the request object: start time and end time
            Calendar Cal = Calendar.Instance;
            Date     Now = new Date();

            Cal.Time = Now;
            long EndTime = Cal.TimeInMillis;

            Cal.Add(CalendarField.HourOfDay, -1);
            long StartTime = Cal.TimeInMillis;

            // Build the data collector object.
            DataCollector dataCollector =
                new DataCollector.Builder().SetDataType(DataType.DtContinuousStepsDelta)
                .SetDataGenerateType(DataCollector.DataTypeRaw)
                .SetPackageName(this)
                .SetDataCollectorName("DataCollector1")
                .Build();

            // Build the activity statistics and activity record request objects.
            ActivitySummary activitySummary = GetActivitySummary();

            // Create a data collector for total step count statistics.
            // ActivitySummary is used to bear the statistical data.
            DataCollector dataCollector2 =
                new DataCollector.Builder().SetDataType(DataType.DtContinuousStepsTotal)
                .SetDataGenerateType(DataCollector.DataTypeRaw)
                .SetPackageName(this)
                .SetDataCollectorName("DataCollector2")
                .Build();
            SamplePoint samplePoint = new SamplePoint.Builder(dataCollector2).Build();

            samplePoint.GetFieldValue(Field.FieldSteps).SetIntValue(1024);
            activitySummary.DataSummary = new[] { samplePoint };

            // Build the activity record request object
            ActivityRecord activityRecord = new ActivityRecord.Builder().SetName("AddActivityRecordTest")
                                            .SetDesc("Add ActivityRecord")
                                            .SetId("MyAddActivityRecordId")
                                            .SetActivityTypeId(HiHealthActivities.Running)
                                            .SetStartTime(StartTime, TimeUnit.Milliseconds)
                                            .SetEndTime(EndTime, TimeUnit.Milliseconds)
                                            .SetActivitySummary(activitySummary)
                                            .SetTimeZone("+0800")
                                            .Build();

            // Build the sampling sampleSet based on the dataCollector
            SampleSet sampleSet = SampleSet.Create(dataCollector);

            // Build the (DtContinuousStepsDelta) sampling data object and add it to the sampling dataSet
            SamplePoint samplePointDetail =
                sampleSet.CreateSamplePoint().SetTimeInterval(StartTime, EndTime, TimeUnit.Milliseconds);

            samplePointDetail.GetFieldValue(Field.FieldStepsDelta).SetIntValue(1024);
            sampleSet.AddSample(samplePointDetail);

            // Build the activity record addition request object
            ActivityRecordInsertOptions insertRequest =
                new ActivityRecordInsertOptions.Builder().SetActivityRecord(activityRecord).AddSampleSet(sampleSet).Build();

            CheckConnect();

            // Call the related method in the ActivityRecordsController to add activity records
            var AddTask = MyActivityRecordsController.AddActivityRecordAsync(insertRequest);

            try
            {
                await AddTask;

                if (AddTask.IsCompleted)
                {
                    if (AddTask.Exception == null)
                    {
                        Logger("Add ActivityRecord was successful!");
                    }
                    else
                    {
                        PrintFailureMessage(AddTask.Exception, "AddActivityRecord");
                    }
                }
            }
            catch (System.Exception ex)
            {
                PrintFailureMessage(ex, "AddActivityRecord");
            }
        }
        // Start an activity record
        public async void BeginActivityRecord()
        {
            Logger(Split + "Begin ActivityRecord");
            long StartTime = Calendar.Instance.TimeInMillis;

            ActivitySummary activitySummary = new ActivitySummary();

            // Create a data collector for statics data
            // The numbers are generated randomly
            DataCollector dataCollector = new DataCollector.Builder().SetDataType(DataType.DtStatisticsSleep)
                                          .SetDataGenerateType(DataCollector.DataTypeRaw)
                                          .SetPackageName(this)
                                          .SetDataCollectorName("DataCollector1")
                                          .Build();
            SamplePoint samplePoint = new SamplePoint.Builder(dataCollector).Build();

            samplePoint.GetFieldValue(Field.AllSleepTime).SetIntValue(352);
            samplePoint.GetFieldValue(Field.GoBedTime).SetLongValue(1599580041000L);
            samplePoint.GetFieldValue(Field.SleepEfficiency).SetIntValue(4);
            samplePoint.GetFieldValue(Field.DreamTime).SetIntValue(58);
            samplePoint.GetFieldValue(Field.WakeUpTime).SetLongValue(1599608520000L);
            samplePoint.GetFieldValue(Field.DeepSleepTime).SetIntValue(82);
            samplePoint.GetFieldValue(Field.DeepSleepPart).SetIntValue(64);
            samplePoint.GetFieldValue(Field.AwakeTime).SetIntValue(3);
            samplePoint.GetFieldValue(Field.SleepScore).SetIntValue(73);
            samplePoint.GetFieldValue(Field.LightSleepTime).SetIntValue(212);
            samplePoint.GetFieldValue(Field.SleepLatency).SetIntValue(7487000);
            samplePoint.GetFieldValue(Field.WakeUpCnt).SetIntValue(2);
            samplePoint.GetFieldValue(Field.FallAsleepTime).SetLongValue(1599587220000L);

            activitySummary.DataSummary = new[] { samplePoint };

            // Build an ActivityRecord object
            ActivityRecord activityRecord = new ActivityRecord.Builder().SetId("MyBeginActivityRecordId")
                                            .SetName("BeginActivityRecord")
                                            .SetDesc("Begin ActivityRecord")
                                            .SetActivityTypeId(HiHealthActivities.Sleep)
                                            .SetStartTime(StartTime, TimeUnit.Milliseconds)
                                            .SetActivitySummary(activitySummary)
                                            .SetTimeZone("+0800")
                                            .Build();

            CheckConnect();

            var BeginTask = MyActivityRecordsController.BeginActivityRecordAsync(activityRecord);

            try
            {
                await BeginTask;

                if (BeginTask.IsCompleted)
                {
                    if (BeginTask.Exception == null)
                    {
                        Logger("BeginActivityRecord  success");
                    }
                    else
                    {
                        PrintFailureMessage(BeginTask.Exception, "BeginActivityRecord");
                    }
                }
            }
            catch (System.Exception ex)
            {
                PrintFailureMessage(ex, "BeginActivityRecord");
            }
        }