mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-02-07 15:35:16 +00:00
![Wenyong Huang](/assets/img/avatar_default.png)
Fix the sensor framework timer issue reported by #884 when setting `ms_to_next_check`, and unify the type of time related args/vars to uint32 to avoid potential type conversion issues, and fix the compile warnings. And update the sensor sample by creating two sensors to confirm that the fix works correctly.
84 lines
1.9 KiB
C
84 lines
1.9 KiB
C
/*
|
|
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
|
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
*/
|
|
|
|
#include "wasm_app.h"
|
|
#include "wa-inc/sensor.h"
|
|
|
|
static sensor_t sensor1 = NULL;
|
|
static sensor_t sensor2 = NULL;
|
|
static char *user_data = NULL;
|
|
|
|
/* Sensor event callback*/
|
|
void
|
|
sensor_event_handler(sensor_t sensor, attr_container_t *event, void *user_data)
|
|
{
|
|
if (sensor == sensor1) {
|
|
printf("### app get sensor event from sensor1\n");
|
|
attr_container_dump(event);
|
|
}
|
|
else {
|
|
printf("### app get sensor event from sensor2\n");
|
|
attr_container_dump(event);
|
|
}
|
|
}
|
|
|
|
void
|
|
on_init()
|
|
{
|
|
attr_container_t *config;
|
|
|
|
printf("### app on_init 1\n");
|
|
/* open a sensor */
|
|
user_data = malloc(100);
|
|
if (!user_data) {
|
|
printf("allocate memory failed\n");
|
|
return;
|
|
}
|
|
|
|
printf("### app on_init 2\n");
|
|
sensor1 = sensor_open("sensor_test1", 0, sensor_event_handler, user_data);
|
|
if (!sensor1) {
|
|
printf("open sensor1 failed\n");
|
|
return;
|
|
}
|
|
/* config the sensor */
|
|
sensor_config(sensor1, 1000, 0, 0);
|
|
|
|
printf("### app on_init 3\n");
|
|
sensor2 = sensor_open("sensor_test2", 0, sensor_event_handler, user_data);
|
|
if (!sensor2) {
|
|
printf("open sensor2 failed\n");
|
|
return;
|
|
}
|
|
/* config the sensor */
|
|
sensor_config(sensor2, 5000, 0, 0);
|
|
|
|
printf("### app on_init 4\n");
|
|
/*
|
|
config = attr_container_create("sensor config");
|
|
sensor_config(sensor, config);
|
|
attr_container_destroy(config);
|
|
*/
|
|
}
|
|
|
|
void
|
|
on_destroy()
|
|
{
|
|
if (NULL != sensor1) {
|
|
sensor_config(sensor1, 0, 0, 0);
|
|
}
|
|
|
|
if (NULL != sensor2) {
|
|
sensor_config(sensor2, 0, 0, 0);
|
|
}
|
|
|
|
if (NULL != user_data) {
|
|
free(user_data);
|
|
}
|
|
|
|
/* real destroy work including killing timer and closing sensor is
|
|
accomplished in wasm app library version of on_destroy() */
|
|
}
|