mirror of
https://github.com/google/pebble.git
synced 2025-03-19 02:21:21 +00:00
425 lines
11 KiB
C
425 lines
11 KiB
C
/*
|
|
* Copyright 2024 Google LLC
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
|
|
|
|
|
|
// ----------------------------------------------------------------
|
|
// Sample captured at: 2015-10-26 08:20:00 local, 2015-10-26 12:20:00 GMT
|
|
// This sample show should 0 minutes of total sleep.
|
|
// But, the algorithm things the time from 8:36am to 9:50am (offset 135 to 209)
|
|
// is sleep time. Not sure how to reliably distinguish this from real sleep because there
|
|
// is very little activity, and it looks like just sleep.
|
|
AlgDlsMinuteData *activity_sample_2015_10_26_08_20_00(int *len) {
|
|
// The unit tests parse the //> TEST_.* lines below for test values
|
|
//> TEST_NAME pbl_28362
|
|
//> TEST_VERSION 2
|
|
//> TEST_TOTAL 0
|
|
//> TEST_TOTAL_MIN 0
|
|
//> TEST_TOTAL_MAX 80 // Fudged: see note above
|
|
//> TEST_DEEP -1
|
|
//> TEST_DEEP_MIN -1
|
|
//> TEST_DEEP_MAX -1
|
|
//> TEST_START_AT -1
|
|
//> TEST_START_AT_MIN -1
|
|
//> TEST_START_AT_MAX -1
|
|
//> TEST_END_AT -1
|
|
//> TEST_END_AT_MIN -1
|
|
//> TEST_END_AT_MAX -1
|
|
//> TEST_CUR_STATE_ELAPSED -1
|
|
//> TEST_CUR_STATE_ELAPSED_MIN -1
|
|
//> TEST_CUR_STATE_ELAPSED_MAX -1
|
|
//> TEST_IN_SLEEP 0
|
|
//> TEST_IN_SLEEP_MIN 0
|
|
//> TEST_IN_SLEEP_MAX 0
|
|
//> TEST_IN_DEEP_SLEEP 0
|
|
//> TEST_IN_DEEP_SLEEP_MIN 0
|
|
//> TEST_IN_DEEP_SLEEP_MAX 0
|
|
//> TEST_WEIGHT 1.0
|
|
|
|
// list of: {steps, orientation, vmc, light}
|
|
static AlgDlsMinuteData samples[] = {
|
|
// 0: Local time: 06:21:00 AM
|
|
{ 0, 0x75, 12639, 206},
|
|
{ 20, 0x69, 7709, 196},
|
|
{ 38, 0x6a, 13010, 197},
|
|
{ 35, 0x68, 15803, 197},
|
|
{ 40, 0x68, 17934, 197},
|
|
{ 50, 0x78, 15895, 215},
|
|
{ 43, 0x64, 12642, 164},
|
|
{ 0, 0x43, 7805, 181},
|
|
{ 16, 0x43, 9946, 185},
|
|
{ 0, 0x33, 6711, 179},
|
|
{ 0, 0x42, 7635, 176},
|
|
{ 10, 0x33, 11773, 148},
|
|
{ 16, 0x34, 8994, 145},
|
|
{ 0, 0x44, 5644, 148},
|
|
{ 0, 0x34, 2970, 146},
|
|
// 15: Local time: 06:36:00 AM
|
|
{ 0, 0x34, 278, 153},
|
|
{ 8, 0x45, 2440, 151},
|
|
{ 0, 0x35, 2634, 145},
|
|
{ 0, 0x55, 1934, 147},
|
|
{ 9, 0x45, 3178, 137},
|
|
{ 0, 0x35, 1280, 156},
|
|
{ 0, 0x45, 562, 150},
|
|
{ 0, 0x45, 967, 154},
|
|
{ 0, 0x54, 1369, 148},
|
|
{ 0, 0x65, 1386, 143},
|
|
{ 0, 0x65, 562, 147},
|
|
{ 0, 0x75, 812, 147},
|
|
{ 0, 0x45, 1238, 145},
|
|
{ 10, 0x45, 3315, 152},
|
|
{ 46, 0x42, 7199, 158},
|
|
// 30: Local time: 06:51:00 AM
|
|
{ 109, 0x41, 7346, 148},
|
|
{ 116, 0x43, 4685, 148},
|
|
{ 114, 0x43, 4665, 150},
|
|
{ 71, 0x44, 4451, 160},
|
|
{ 61, 0x43, 4611, 151},
|
|
{ 95, 0x43, 3438, 154},
|
|
{ 3, 0x44, 1490, 150},
|
|
{ 0, 0x44, 96, 149},
|
|
{ 0, 0x44, 1085, 148},
|
|
{ 0, 0x54, 0, 145},
|
|
{ 8, 0x43, 1247, 154},
|
|
{ 15, 0x24, 3806, 151},
|
|
{ 0, 0x44, 2168, 161},
|
|
{ 0, 0x44, 101, 153},
|
|
{ 0, 0x45, 5281, 167},
|
|
// 45: Local time: 07:06:00 AM
|
|
{ 0, 0x45, 3107, 193},
|
|
{ 0, 0x65, 3033, 213},
|
|
{ 12, 0x65, 1175, 214},
|
|
{ 0, 0x65, 68, 214},
|
|
{ 0, 0x55, 419, 192},
|
|
{ 0, 0x65, 612, 213},
|
|
{ 0, 0x65, 779, 208},
|
|
{ 11, 0x65, 839, 206},
|
|
{ 0, 0x65, 481, 187},
|
|
{ 0, 0x65, 364, 211},
|
|
{ 0, 0x75, 96, 214},
|
|
{ 0, 0x65, 456, 213},
|
|
{ 0, 0x65, 246, 212},
|
|
{ 0, 0x46, 736, 189},
|
|
{ 8, 0x46, 896, 191},
|
|
// 60: Local time: 07:21:00 AM
|
|
{ 21, 0x55, 1330, 214},
|
|
{ 0, 0x65, 258, 211},
|
|
{ 0, 0x65, 153, 214},
|
|
{ 0, 0x76, 1602, 214},
|
|
{ 0, 0x65, 1216, 212},
|
|
{ 0, 0x65, 308, 213},
|
|
{ 0, 0x65, 235, 212},
|
|
{ 0, 0x65, 65, 212},
|
|
{ 0, 0x75, 189, 211},
|
|
{ 0, 0x65, 53, 212},
|
|
{ 0, 0x65, 20, 212},
|
|
{ 0, 0x65, 29, 212},
|
|
{ 0, 0x66, 1154, 213},
|
|
{ 0, 0x66, 259, 214},
|
|
{ 0, 0x66, 87, 210},
|
|
// 75: Local time: 07:36:00 AM
|
|
{ 0, 0x66, 56, 212},
|
|
{ 0, 0x57, 3813, 193},
|
|
{ 9, 0x65, 4973, 212},
|
|
{ 0, 0x46, 8622, 161},
|
|
{ 26, 0x42, 5735, 186},
|
|
{ 79, 0x42, 8500, 184},
|
|
{ 113, 0x42, 5296, 177},
|
|
{ 120, 0x33, 5074, 175},
|
|
{ 120, 0x32, 5317, 172},
|
|
{ 119, 0x33, 5103, 152},
|
|
{ 77, 0x22, 3209, 177},
|
|
{ 120, 0x33, 4881, 178},
|
|
{ 119, 0x33, 4971, 177},
|
|
{ 29, 0x33, 1244, 165},
|
|
{ 15, 0x43, 3238, 163},
|
|
// 90: Local time: 07:51:00 AM
|
|
{ 29, 0x42, 8421, 189},
|
|
{ 0, 0x45, 3352, 188},
|
|
{ 0, 0x45, 2240, 184},
|
|
{ 0, 0x45, 1442, 183},
|
|
{ 0, 0x45, 1068, 186},
|
|
{ 0, 0x45, 3272, 187},
|
|
{ 0, 0x46, 4770, 185},
|
|
{ 0, 0x46, 2758, 186},
|
|
{ 0, 0x45, 108, 186},
|
|
{ 37, 0x46, 3250, 182},
|
|
{ 12, 0x46, 3285, 187},
|
|
{ 0, 0x45, 101, 191},
|
|
{ 0, 0x35, 1349, 192},
|
|
{ 0, 0x44, 1337, 196},
|
|
{ 0, 0x44, 1, 191},
|
|
// 105: Local time: 08:06:00 AM
|
|
{ 0, 0x44, 55, 195},
|
|
{ 0, 0x44, 5, 195},
|
|
{ 0, 0x44, 6, 195},
|
|
{ 0, 0x44, 122, 196},
|
|
{ 0, 0x44, 6, 199},
|
|
{ 0, 0x44, 101, 196},
|
|
{ 0, 0x44, 242, 193},
|
|
{ 0, 0x44, 1447, 205},
|
|
{ 13, 0x46, 7986, 182},
|
|
{ 91, 0x34, 4088, 189},
|
|
{ 80, 0x34, 7867, 182},
|
|
{ 111, 0x33, 4520, 167},
|
|
{ 103, 0x33, 4080, 182},
|
|
{ 107, 0x33, 3964, 189},
|
|
{ 59, 0x33, 2847, 156},
|
|
// 120: Local time: 08:21:00 AM
|
|
{ 32, 0x33, 1550, 162},
|
|
{ 12, 0x44, 3255, 159},
|
|
{ 0, 0x44, 1421, 157},
|
|
{ 0, 0x44, 2686, 167},
|
|
{ 0, 0x34, 2992, 162},
|
|
{ 23, 0x34, 1756, 161},
|
|
{ 0, 0x45, 3381, 186},
|
|
{ 90, 0x35, 1495, 187},
|
|
{ 90, 0x35, 1590, 187},
|
|
{ 99, 0x35, 1741, 180},
|
|
{ 72, 0x43, 3314, 201},
|
|
{ 97, 0x43, 4832, 177},
|
|
{ 28, 0x46, 3322, 172},
|
|
{ 0, 0x8b, 0, 172},
|
|
{ 0, 0x8b, 0, 175},
|
|
|
|
// 135: Local time: 08:36:00 AM
|
|
// Plugging in 10 minutes of missing data from a reboot here
|
|
{ 0, 0x0, 0, 0},
|
|
{ 0, 0x0, 0, 0},
|
|
{ 0, 0x0, 0, 0},
|
|
{ 0, 0x0, 0, 0},
|
|
{ 0, 0x0, 0, 0},
|
|
{ 0, 0x0, 0, 0},
|
|
{ 0, 0x0, 0, 0},
|
|
{ 0, 0x0, 0, 0},
|
|
{ 0, 0x0, 0, 0},
|
|
{ 0, 0x0, 0, 0},
|
|
|
|
// 145 + 0: Local time: 08:46:00 AM
|
|
{ 0, 0x7a, 502, 196},
|
|
{ 0, 0x7b, 449, 206},
|
|
{ 0, 0x8b, 0, 206},
|
|
{ 0, 0x8b, 617, 205},
|
|
{ 0, 0x8b, 0, 202},
|
|
{ 0, 0x8b, 0, 205},
|
|
{ 0, 0x8b, 0, 205},
|
|
{ 0, 0x8b, 0, 205},
|
|
{ 0, 0x8b, 89, 207},
|
|
{ 0, 0x8b, 0, 207},
|
|
{ 0, 0x8b, 0, 208},
|
|
{ 0, 0x8b, 0, 207},
|
|
{ 0, 0x8b, 0, 208},
|
|
{ 0, 0x8b, 0, 208},
|
|
{ 0, 0x8b, 0, 207},
|
|
// 160: Local time: 09:01:00 AM
|
|
{ 0, 0x8b, 0, 207},
|
|
{ 0, 0x8b, 0, 208},
|
|
{ 0, 0x8b, 0, 207},
|
|
{ 0, 0x8b, 32, 207},
|
|
{ 0, 0x8b, 0, 207},
|
|
{ 0, 0x8b, 0, 207},
|
|
{ 0, 0x8b, 1094, 221},
|
|
{ 0, 0x8a, 0, 166},
|
|
{ 0, 0x8b, 1736, 216},
|
|
{ 0, 0x8b, 629, 224},
|
|
{ 0, 0x8b, 0, 224},
|
|
{ 0, 0x8b, 0, 225},
|
|
{ 0, 0x8b, 0, 225},
|
|
{ 0, 0x8b, 3, 229},
|
|
{ 0, 0x8b, 0, 229},
|
|
// 175: Local time: 09:16:00 AM
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 229},
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
// 190: Local time: 09:31:00 AM
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
// 205: Local time: 09:46:00 AM
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 228},
|
|
{ 0, 0x8b, 0, 227},
|
|
{ 0, 0x8c, 5150, 210},
|
|
{ 0, 0x8f, 1058, 197},
|
|
{ 0, 0x65, 2866, 201},
|
|
{ 0, 0x74, 412, 205},
|
|
{ 0, 0x74, 258, 207},
|
|
{ 0, 0x74, 228, 210},
|
|
{ 0, 0x74, 1414, 191},
|
|
{ 0, 0x64, 309, 211},
|
|
{ 0, 0x73, 82, 213},
|
|
{ 0, 0x74, 483, 208},
|
|
{ 8, 0x74, 1755, 209},
|
|
// 220: Local time: 10:01:00 AM
|
|
{ 0, 0x62, 3121, 209},
|
|
{ 48, 0x26, 3257, 182},
|
|
{ 39, 0x52, 6876, 207},
|
|
{ 15, 0x31, 8605, 184},
|
|
{ 8, 0x43, 1880, 178},
|
|
{ 0, 0x43, 3, 174},
|
|
{ 0, 0x32, 1134, 176},
|
|
{ 0, 0x32, 418, 173},
|
|
{ 0, 0x53, 1767, 184},
|
|
{ 0, 0x33, 2175, 181},
|
|
{ 0, 0x23, 1559, 181},
|
|
{ 0, 0x23, 1658, 180},
|
|
{ 0, 0x33, 1443, 181},
|
|
{ 0, 0x13, 629, 187},
|
|
{ 0, 0x53, 373, 180},
|
|
// 235: Local time: 10:16:00 AM
|
|
{ 0, 0x54, 154, 182},
|
|
{ 0, 0x53, 1469, 183},
|
|
{ 0, 0x53, 2073, 186},
|
|
{ 0, 0x63, 1, 185},
|
|
{ 0, 0x63, 196, 191},
|
|
{ 0, 0x63, 0, 192},
|
|
{ 0, 0x63, 1, 191},
|
|
{ 0, 0x63, 0, 191},
|
|
{ 0, 0x54, 2484, 180},
|
|
{ 0, 0x54, 1896, 179},
|
|
{ 7, 0x44, 772, 176},
|
|
{ 0, 0x44, 266, 181},
|
|
{ 0, 0x64, 1672, 183},
|
|
{ 0, 0x54, 29, 183},
|
|
{ 0, 0x54, 0, 179},
|
|
// 250: Local time: 10:31:00 AM
|
|
{ 0, 0x54, 0, 183},
|
|
{ 0, 0x44, 196, 191},
|
|
{ 0, 0x43, 910, 188},
|
|
{ 0, 0x43, 13, 185},
|
|
{ 0, 0x44, 56, 179},
|
|
{ 9, 0x63, 1731, 190},
|
|
{ 0, 0x53, 2419, 180},
|
|
{ 0, 0x54, 1741, 182},
|
|
{ 0, 0x53, 2018, 154},
|
|
{ 0, 0x34, 1641, 166},
|
|
{ 0, 0x54, 1443, 182},
|
|
{ 0, 0x54, 1295, 180},
|
|
{ 0, 0x53, 3694, 183},
|
|
{ 0, 0x53, 1732, 168},
|
|
{ 0, 0x53, 4424, 183},
|
|
// 265: Local time: 10:46:00 AM
|
|
{ 0, 0x53, 1457, 181},
|
|
{ 0, 0x43, 2114, 181},
|
|
{ 0, 0x33, 1901, 175},
|
|
{ 0, 0x43, 1025, 184},
|
|
{ 0, 0x52, 1097, 192},
|
|
{ 0, 0x63, 2350, 190},
|
|
{ 0, 0x62, 357, 182},
|
|
{ 0, 0x43, 905, 181},
|
|
{ 0, 0x43, 722, 182},
|
|
{ 8, 0x43, 6573, 185},
|
|
{ 0, 0x53, 4572, 191},
|
|
{ 0, 0x63, 1115, 193},
|
|
{ 0, 0x63, 1595, 183},
|
|
{ 0, 0x53, 454, 180},
|
|
{ 0, 0x53, 1710, 191},
|
|
// 280: Local time: 11:01:00 AM
|
|
{ 12, 0x53, 3534, 191},
|
|
{ 0, 0x63, 1822, 190},
|
|
{ 0, 0x65, 946, 182},
|
|
{ 8, 0x46, 2015, 179},
|
|
{ 0, 0x0, 0, 180},
|
|
{ 0, 0x43, 2037, 194},
|
|
{ 45, 0x13, 3383, 191},
|
|
{ 0, 0x54, 3383, 184},
|
|
{ 7, 0x64, 2056, 185},
|
|
{ 0, 0x53, 104, 181},
|
|
{ 0, 0x53, 0, 184},
|
|
{ 0, 0x53, 0, 185},
|
|
{ 0, 0x12, 3131, 152},
|
|
{ 0, 0x13, 2028, 173},
|
|
{ 0, 0x64, 2343, 183},
|
|
// 295: Local time: 11:15:00 AM
|
|
{ 0, 0x64, 1842, 176},
|
|
{ 0, 0x65, 1973, 172},
|
|
{ 0, 0x53, 2180, 198},
|
|
{ 9, 0x52, 9963, 193},
|
|
{ 0, 0x33, 2087, 184},
|
|
{ 0, 0x43, 1235, 183},
|
|
{ 0, 0x53, 247, 185},
|
|
{ 0, 0x53, 3202, 183},
|
|
{ 0, 0x53, 2569, 186},
|
|
{ 0, 0x53, 1904, 180},
|
|
{ 0, 0x53, 3305, 177},
|
|
{ 0, 0x24, 1486, 169},
|
|
{ 0, 0x23, 1846, 185},
|
|
{ 0, 0x53, 48, 185},
|
|
{ 0, 0x53, 99, 181},
|
|
// 310: Local time: 11:30:00 AM
|
|
{ 0, 0x53, 899, 173},
|
|
{ 0, 0x11, 240, 175},
|
|
{ 0, 0x3, 1435, 171},
|
|
{ 0, 0x14, 855, 193},
|
|
{ 0, 0x33, 1930, 171},
|
|
{ 0, 0x33, 17, 184},
|
|
{ 0, 0x32, 2288, 191},
|
|
{ 12, 0x45, 2911, 178},
|
|
{ 0, 0x62, 318, 175},
|
|
{ 0, 0x42, 1128, 175},
|
|
{ 0, 0x32, 607, 178},
|
|
{ 0, 0x42, 633, 183},
|
|
{ 0, 0x62, 328, 185},
|
|
{ 0, 0x52, 641, 180},
|
|
{ 0, 0x52, 628, 179},
|
|
// 325: Local time: 11:45:00 AM
|
|
{ 0, 0x52, 240, 188},
|
|
{ 0, 0x52, 323, 178},
|
|
{ 0, 0x52, 486, 180},
|
|
{ 0, 0x52, 989, 172},
|
|
{ 0, 0x42, 1710, 172},
|
|
{ 0, 0x42, 1574, 178},
|
|
{ 0, 0x52, 6, 177},
|
|
{ 0, 0x52, 533, 173},
|
|
{ 0, 0x52, 27, 173},
|
|
{ 0, 0x52, 509, 171},
|
|
{ 0, 0x52, 232, 173},
|
|
{ 0, 0x44, 1756, 181},
|
|
{ 0, 0x52, 1698, 174},
|
|
{ 0, 0x52, 70, 188},
|
|
{ 0, 0x53, 808, 173},
|
|
};
|
|
*len = ARRAY_LENGTH(samples);
|
|
return samples;
|
|
}
|
|
|