MYNEWT-729 SensorAPI: Send sensor data over OIC - Addressing review comments by @mkiiskila - Move private apis from include/bno055.h to bno055/bno055_priv.h
Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/e301553f Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/e301553f Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/e301553f Branch: refs/heads/master Commit: e301553f5eaaa2af8f3e5f622d29fd2d5cbc6971 Parents: 5c641d1 Author: Vipul Rahane <vipulrah...@apache.org> Authored: Mon Apr 17 16:08:37 2017 -0700 Committer: Vipul Rahane <vipulrah...@apache.org> Committed: Mon Apr 17 16:31:44 2017 -0700 ---------------------------------------------------------------------- apps/sensors_test/pkg.yml | 4 +- apps/sensors_test/src/gatt_svr.c | 2 +- apps/sensors_test/src/main.c | 33 ++++++----- apps/sensors_test/src/misc.c | 43 ++++++++++++++ apps/sensors_test/syscfg.yml | 13 ++++- .../sensors/bno055/include/bno055/bno055.h | 33 ----------- hw/drivers/sensors/bno055/src/bno055_priv.h | 34 +++++++++++ hw/sensor/include/sensor/sensor.h | 2 +- hw/sensor/pkg.yml | 8 ++- hw/sensor/src/bleprph.h | 59 -------------------- hw/sensor/src/misc.c | 43 -------------- hw/sensor/src/sensor_oic.c | 3 +- hw/sensor/syscfg.yml | 11 +--- 13 files changed, 122 insertions(+), 166 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/e301553f/apps/sensors_test/pkg.yml ---------------------------------------------------------------------- diff --git a/apps/sensors_test/pkg.yml b/apps/sensors_test/pkg.yml index 39250ae..4f8e25c 100644 --- a/apps/sensors_test/pkg.yml +++ b/apps/sensors_test/pkg.yml @@ -44,8 +44,10 @@ pkg.deps: - mgmt/imgmgr #- mgmt/newtmgr -pkg.deps.SENSOR_BLE_OIC: +pkg.deps.SENSOR_OIC: - mgmt/oicmgr + +pkg.deps.SENSOR_BLE: - net/nimble/controller - net/nimble/host - net/nimble/host/services/gap http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/e301553f/apps/sensors_test/src/gatt_svr.c ---------------------------------------------------------------------- diff --git a/apps/sensors_test/src/gatt_svr.c b/apps/sensors_test/src/gatt_svr.c index e29f007..0e2e004 100644 --- a/apps/sensors_test/src/gatt_svr.c +++ b/apps/sensors_test/src/gatt_svr.c @@ -17,7 +17,7 @@ * under the License. */ #include <syscfg/syscfg.h> -#if MYNEWT_VAL(SENSOR_BLE_OIC) +#if MYNEWT_VAL(SENSOR_BLE) #include <assert.h> #include <stdio.h> http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/e301553f/apps/sensors_test/src/main.c ---------------------------------------------------------------------- diff --git a/apps/sensors_test/src/main.c b/apps/sensors_test/src/main.c index 322b83b..09f3e40 100755 --- a/apps/sensors_test/src/main.c +++ b/apps/sensors_test/src/main.c @@ -47,17 +47,25 @@ #include <flash_test/flash_test.h> #include <reboot/log_reboot.h> #include <id/id.h> +#include <os/os_time.h> + +#if MYNEWT_VAL(SENSOR_OIC) +#include <oic/oc_api.h> +#include <oic/oc_gatt.h> + +extern int oc_stack_errno; + +static const oc_handler_t sensor_oic_handler = { + .init = sensor_oic_init, +}; + +#endif -#if MYNEWT_VAL(SENSOR_BLE_OIC) +#if MYNEWT_VAL(SENSOR_BLE) /* BLE */ #include <nimble/ble.h> #include <host/ble_hs.h> #include <services/gap/ble_svc_gap.h> - -#include <os/os_time.h> -#include <oic/oc_api.h> -#include <oic/oc_gatt.h> - /* Application-specified header. */ #include "bleprph.h" @@ -123,12 +131,7 @@ static char test_str[32]; static uint32_t cbmem_buf[MAX_CBMEM_BUF]; static struct cbmem cbmem; -#if MYNEWT_VAL(SENSOR_BLE_OIC) -extern int oc_stack_errno; - -static const oc_handler_t sensor_oic_handler = { - .init = sensor_oic_init, -}; +#if MYNEWT_VAL(SENSOR_OIC) && MYNEWT_VAL(SENSOR_BLE) /** * Logs information about a connection to the console. @@ -632,7 +635,7 @@ sensors_dev_shell_init(void) static void sensor_ble_oic_server_init(void) { -#if MYNEWT_VAL(SENSOR_BLE_OIC) +#if MYNEWT_VAL(SENSOR_BLE) && MYNEWT_VAL(SENSOR_OIC) int rc; /* Set initial BLE device address. */ @@ -661,7 +664,7 @@ sensor_ble_oic_server_init(void) static void ble_oic_log_init(void) { -#if MYNEWT_VAL(SENSOR_BLE_OIC) +#if MYNEWT_VAL(SENSOR_BLE) /* Initialize the bleprph log. */ log_register("bleprph", &bleprph_log, &log_console_handler, NULL, LOG_SYSLEVEL); @@ -669,7 +672,9 @@ ble_oic_log_init(void) /* Initialize the NimBLE host configuration. */ log_register("ble_hs", &ble_hs_log, &log_console_handler, NULL, LOG_SYSLEVEL); +#endif +#if MYNEWT_VAL(SENSOR_OIC) /* Initialize the OIC */ log_register("oic", &oc_log, &log_console_handler, NULL, LOG_SYSLEVEL); #endif http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/e301553f/apps/sensors_test/src/misc.c ---------------------------------------------------------------------- diff --git a/apps/sensors_test/src/misc.c b/apps/sensors_test/src/misc.c new file mode 100644 index 0000000..8ec785e --- /dev/null +++ b/apps/sensors_test/src/misc.c @@ -0,0 +1,43 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ + +#include "bleprph.h" + +/** + * Utility function to log an array of bytes. + */ +void +print_bytes(const uint8_t *bytes, int len) +{ + int i; + + for (i = 0; i < len; i++) { + BLEPRPH_LOG(INFO, "%s0x%02x", i != 0 ? ":" : "", bytes[i]); + } +} + +void +print_addr(const void *addr) +{ + const uint8_t *u8p; + + u8p = addr; + BLEPRPH_LOG(INFO, "%02x:%02x:%02x:%02x:%02x:%02x", + u8p[5], u8p[4], u8p[3], u8p[2], u8p[1], u8p[0]); +} http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/e301553f/apps/sensors_test/syscfg.yml ---------------------------------------------------------------------- diff --git a/apps/sensors_test/syscfg.yml b/apps/sensors_test/syscfg.yml index 8623667..81876bc 100644 --- a/apps/sensors_test/syscfg.yml +++ b/apps/sensors_test/syscfg.yml @@ -44,10 +44,13 @@ syscfg.vals: TSL2561_CLI: 0 BNO055_CLI: 1 TCS34725_CLI: 1 - SENSOR_BLE_OIC: 1 + + # Setup Sensor BLE OIC GATT Server + SENSOR_OIC: 1 BLE_ROLE_CENTRAL: 0 BLE_ROLE_OBSERVER: 0 OC_SERVER: 1 + OC_TRANSPORT_GATT: 1 OC_APP_RESOURCES : 20 @@ -69,3 +72,11 @@ syscfg.defs: SIM_ACCEL_PRESENT: description: 'SIM ACCEL is present' value : 0 + SENSOR_BLE: + description: 'BLE transport is used for sensor data' + value : 1 + restrictions: + - BLE_ROLE_BROADCASTER + - '!BLE_ROLE_CENTRAL' + - '!BLE_ROLE_OBSERVER' + - BLE_ROLE_PERIPHERAL http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/e301553f/hw/drivers/sensors/bno055/include/bno055/bno055.h ---------------------------------------------------------------------- diff --git a/hw/drivers/sensors/bno055/include/bno055/bno055.h b/hw/drivers/sensors/bno055/include/bno055/bno055.h index c8bd5c6..af1c836 100644 --- a/hw/drivers/sensors/bno055/include/bno055/bno055.h +++ b/hw/drivers/sensors/bno055/include/bno055/bno055.h @@ -226,39 +226,6 @@ int bno055_get_temp(int8_t *temp); /** - * Reads a single byte from the specified register - * - * @param The register address to read from - * @param Pointer to where the register value should be written - * - * @return 0 on success, non-zero error on failure. - */ -int -bno055_read8(uint8_t reg, uint8_t *value); - -/** - * Writes a single byte to the specified register - * - * @param The register address to write to - * @param The value to write - * - * @return 0 on success, non-zero error on failure. - */ -int -bno055_write8(uint8_t reg, uint8_t value); - -/** - * Writes a multiple bytes to the specified register - * - * @param The register address to write to - * @param The data buffer to write from - * - * @return 0 on success, non-zero error on failure. - */ -int -bno055_writelen(uint8_t reg, uint8_t *buffer, uint8_t len); - -/** * Gets current calibration status * * @param Calibration info structure to fill up calib state http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/e301553f/hw/drivers/sensors/bno055/src/bno055_priv.h ---------------------------------------------------------------------- diff --git a/hw/drivers/sensors/bno055/src/bno055_priv.h b/hw/drivers/sensors/bno055/src/bno055_priv.h index 5e78b51..e25671c 100644 --- a/hw/drivers/sensors/bno055/src/bno055_priv.h +++ b/hw/drivers/sensors/bno055/src/bno055_priv.h @@ -260,3 +260,37 @@ #define BNO055_INT_ACC_SM 32 #define BNO055_ID 0xA0 + +/** + * Reads a single byte from the specified register + * + * @param The register address to read from + * @param Pointer to where the register value should be written + * + * @return 0 on success, non-zero error on failure. + */ +int +bno055_read8(uint8_t reg, uint8_t *value); + +/** + * Writes a single byte to the specified register + * + * @param The register address to write to + * @param The value to write + * + * @return 0 on success, non-zero error on failure. + */ +int +bno055_write8(uint8_t reg, uint8_t value); + +/** + * Writes a multiple bytes to the specified register + * + * @param The register address to write to + * @param The data buffer to write from + * + * @return 0 on success, non-zero error on failure. + */ +int +bno055_writelen(uint8_t reg, uint8_t *buffer, uint8_t len); + http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/e301553f/hw/sensor/include/sensor/sensor.h ---------------------------------------------------------------------- diff --git a/hw/sensor/include/sensor/sensor.h b/hw/sensor/include/sensor/sensor.h index 9435106..fb5bf2d 100644 --- a/hw/sensor/include/sensor/sensor.h +++ b/hw/sensor/include/sensor/sensor.h @@ -343,7 +343,7 @@ int sensor_shell_stol(char *param_val, long min, long max, long *output); #endif -#if MYNEWT_VAL(SENSOR_BLE_OIC) +#if MYNEWT_VAL(SENSOR_OIC) void sensor_oic_init(void); #endif http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/e301553f/hw/sensor/pkg.yml ---------------------------------------------------------------------- diff --git a/hw/sensor/pkg.yml b/hw/sensor/pkg.yml index bdd0e0b..369b85d 100644 --- a/hw/sensor/pkg.yml +++ b/hw/sensor/pkg.yml @@ -24,10 +24,14 @@ pkg.homepage: "http://mynewt.apache.org/" pkg.keywords: pkg.deps: + - kernel/os + +pkg.deps.SENSOR_OIC: + - net/oic + +pkg.deps.SENSOR_CLI: - sys/shell - sys/console/full - - sys/log/full - - sys/stats/full pkg.init: sensor_pkg_init: 501 http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/e301553f/hw/sensor/src/bleprph.h ---------------------------------------------------------------------- diff --git a/hw/sensor/src/bleprph.h b/hw/sensor/src/bleprph.h deleted file mode 100644 index 2e3f024..0000000 --- a/hw/sensor/src/bleprph.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ - -#ifndef H_BLEPRPH_ -#define H_BLEPRPH_ - -#include "log/log.h" -#ifdef __cplusplus -extern "C" { -#endif - -struct ble_hs_cfg; -struct ble_gatt_register_ctxt; - -extern struct log bleprph_log; - -/* bleprph uses the first "peruser" log module. */ -#define BLEPRPH_LOG_MODULE (LOG_MODULE_PERUSER + 0) - -/* Convenience macro for logging to the bleprph module. */ -#define BLEPRPH_LOG(lvl, ...) \ - LOG_ ## lvl(&bleprph_log, BLEPRPH_LOG_MODULE, __VA_ARGS__) - -/** GATT server. */ -#define GATT_SVR_SVC_ALERT_UUID 0x1811 -#define GATT_SVR_CHR_SUP_NEW_ALERT_CAT_UUID 0x2A47 -#define GATT_SVR_CHR_NEW_ALERT 0x2A46 -#define GATT_SVR_CHR_SUP_UNR_ALERT_CAT_UUID 0x2A48 -#define GATT_SVR_CHR_UNR_ALERT_STAT_UUID 0x2A45 -#define GATT_SVR_CHR_ALERT_NOT_CTRL_PT 0x2A44 - -void gatt_svr_register_cb(struct ble_gatt_register_ctxt *ctxt, void *arg); -int gatt_svr_init(void); - -/** Misc. */ -void print_bytes(const uint8_t *bytes, int len); -void print_addr(const void *addr); - -#ifdef __cplusplus -} -#endif - -#endif http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/e301553f/hw/sensor/src/misc.c ---------------------------------------------------------------------- diff --git a/hw/sensor/src/misc.c b/hw/sensor/src/misc.c deleted file mode 100644 index 8ec785e..0000000 --- a/hw/sensor/src/misc.c +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ - -#include "bleprph.h" - -/** - * Utility function to log an array of bytes. - */ -void -print_bytes(const uint8_t *bytes, int len) -{ - int i; - - for (i = 0; i < len; i++) { - BLEPRPH_LOG(INFO, "%s0x%02x", i != 0 ? ":" : "", bytes[i]); - } -} - -void -print_addr(const void *addr) -{ - const uint8_t *u8p; - - u8p = addr; - BLEPRPH_LOG(INFO, "%02x:%02x:%02x:%02x:%02x:%02x", - u8p[5], u8p[4], u8p[3], u8p[2], u8p[1], u8p[0]); -} http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/e301553f/hw/sensor/src/sensor_oic.c ---------------------------------------------------------------------- diff --git a/hw/sensor/src/sensor_oic.c b/hw/sensor/src/sensor_oic.c index 27edafd..de9e65a 100644 --- a/hw/sensor/src/sensor_oic.c +++ b/hw/sensor/src/sensor_oic.c @@ -19,7 +19,7 @@ #include "syscfg/syscfg.h" -#if MYNEWT_VAL(SENSOR_BLE_OIC) +#if MYNEWT_VAL(SENSOR_OIC) #include <string.h> #include <stdio.h> @@ -37,7 +37,6 @@ #include "sensor/quat.h" #include "sensor/euler.h" #include "sensor/color.h" -#include "console/console.h" /* OIC */ #include <oic/oc_rep.h> http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/e301553f/hw/sensor/syscfg.yml ---------------------------------------------------------------------- diff --git a/hw/sensor/syscfg.yml b/hw/sensor/syscfg.yml index abe193e..3495534 100644 --- a/hw/sensor/syscfg.yml +++ b/hw/sensor/syscfg.yml @@ -27,15 +27,8 @@ syscfg.defs: description: 'Whether or not to enable the sensor shell support' value: 1 - SENSOR_BLE_OIC: - description: 'Enable/Disable the OIC sensor gatt svr' + SENSOR_OIC: + description: 'Enable/Disable the OIC sensor server' value: 1 restrictions: - # Disable central and observer roles. - - BLE_ROLE_BROADCASTER - - '!BLE_ROLE_CENTRAL' - - '!BLE_ROLE_OBSERVER' - - BLE_ROLE_PERIPHERAL - # OC server, with bluetooth transport. - OC_SERVER - - OC_TRANSPORT_GATT