Import app manager, samples and test-tools
This commit is contained in:
57
samples/simple/wasm-apps/event_publisher/event_publisher.c
Normal file
57
samples/simple/wasm-apps/event_publisher/event_publisher.c
Normal file
@ -0,0 +1,57 @@
|
||||
/*
|
||||
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include "wasm_app.h"
|
||||
|
||||
int num = 0;
|
||||
|
||||
void publish_overheat_event()
|
||||
{
|
||||
attr_container_t *event;
|
||||
|
||||
event = attr_container_create("event");
|
||||
attr_container_set_string(&event, "warning", "temperature is over high");
|
||||
|
||||
api_publish_event("alert/overheat", FMT_ATTR_CONTAINER, event,
|
||||
attr_container_get_serialize_length(event));
|
||||
|
||||
attr_container_destroy(event);
|
||||
}
|
||||
|
||||
/* Timer callback */
|
||||
void timer1_update(user_timer_t timer)
|
||||
{
|
||||
publish_overheat_event();
|
||||
}
|
||||
|
||||
void start_timer()
|
||||
{
|
||||
user_timer_t timer;
|
||||
|
||||
/* set up a timer */
|
||||
timer = api_timer_create(1000, true, false, timer1_update);
|
||||
api_timer_restart(timer, 1000);
|
||||
}
|
||||
|
||||
void on_init()
|
||||
{
|
||||
start_timer();
|
||||
}
|
||||
|
||||
void on_destroy()
|
||||
{
|
||||
/* real destroy work including killing timer and closing sensor is accomplished in wasm app library version of on_destroy() */
|
||||
}
|
||||
36
samples/simple/wasm-apps/event_subscriber/event_subscriber.c
Normal file
36
samples/simple/wasm-apps/event_subscriber/event_subscriber.c
Normal file
@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include "wasm_app.h"
|
||||
|
||||
void over_heat_event_handler(request_t *request)
|
||||
{
|
||||
printf("### user over heat event handler called\n");
|
||||
|
||||
if (request->payload != NULL && request->fmt == FMT_ATTR_CONTAINER)
|
||||
attr_container_dump((attr_container_t *) request->payload);
|
||||
}
|
||||
|
||||
void on_init()
|
||||
{
|
||||
api_subscribe_event("alert/overheat", over_heat_event_handler);
|
||||
}
|
||||
|
||||
void on_destroy()
|
||||
{
|
||||
/* real destroy work including killing timer and closing sensor is
|
||||
accomplished in wasm app library version of on_destroy() */
|
||||
}
|
||||
67
samples/simple/wasm-apps/request_handler/request_handler.c
Normal file
67
samples/simple/wasm-apps/request_handler/request_handler.c
Normal file
@ -0,0 +1,67 @@
|
||||
/*
|
||||
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include "wasm_app.h"
|
||||
|
||||
static void url1_request_handler(request_t *request)
|
||||
{
|
||||
response_t response[1];
|
||||
attr_container_t *payload;
|
||||
|
||||
printf("[resp] ### user resource 1 handler called\n");
|
||||
|
||||
if (request->payload != NULL && request->fmt == FMT_ATTR_CONTAINER)
|
||||
attr_container_dump((attr_container_t *) request->payload);
|
||||
|
||||
payload = attr_container_create("wasm app response payload");
|
||||
if (payload == NULL)
|
||||
return;
|
||||
|
||||
attr_container_set_string(&payload, "key1", "value1");
|
||||
attr_container_set_string(&payload, "key2", "value2");
|
||||
|
||||
make_response_for_request(request, response);
|
||||
set_response(response, CONTENT_2_05,
|
||||
FMT_ATTR_CONTAINER,
|
||||
(void *)payload,
|
||||
attr_container_get_serialize_length(payload));
|
||||
api_response_send(response);
|
||||
|
||||
attr_container_destroy(payload);
|
||||
}
|
||||
|
||||
static void url2_request_handler(request_t *request)
|
||||
{
|
||||
response_t response[1];
|
||||
make_response_for_request(request, response);
|
||||
set_response(response, DELETED_2_02, 0, NULL, 0);
|
||||
api_response_send(response);
|
||||
|
||||
printf("### user resource 2 handler called\n");
|
||||
}
|
||||
|
||||
void on_init()
|
||||
{
|
||||
/* register resource uri */
|
||||
api_register_resource_handler("/url1", url1_request_handler);
|
||||
api_register_resource_handler("/url2", url2_request_handler);
|
||||
}
|
||||
|
||||
void on_destroy()
|
||||
{
|
||||
/* real destroy work including killing timer and closing sensor is
|
||||
accomplished in wasm app library version of on_destroy() */
|
||||
}
|
||||
58
samples/simple/wasm-apps/request_sender/request_sender.c
Normal file
58
samples/simple/wasm-apps/request_sender/request_sender.c
Normal file
@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include "wasm_app.h"
|
||||
|
||||
static void my_response_handler(response_t *response, void *user_data)
|
||||
{
|
||||
char *tag = (char *) user_data;
|
||||
|
||||
if (response == NULL) {
|
||||
printf("[req] request timeout!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
printf("[req] response handler called mid:%d, status:%d, fmt:%d, payload:%p, len:%d, tag:%s\n",
|
||||
response->mid, response->status, response->fmt, response->payload,
|
||||
response->payload_len, tag);
|
||||
|
||||
if (response->payload != NULL
|
||||
&& response->payload_len > 0
|
||||
&& response->fmt == FMT_ATTR_CONTAINER) {
|
||||
printf("[req] dump the response payload:\n");
|
||||
attr_container_dump((attr_container_t *) response->payload);
|
||||
}
|
||||
}
|
||||
|
||||
static void test_send_request(char *url, char *tag)
|
||||
{
|
||||
request_t request[1];
|
||||
|
||||
init_request(request, url, COAP_PUT, 0, NULL, 0);
|
||||
api_send_request(request, my_response_handler, tag);
|
||||
}
|
||||
|
||||
void on_init()
|
||||
{
|
||||
test_send_request("/app/request_handler/url1", "a request to target app");
|
||||
test_send_request("url1", "a general request");
|
||||
}
|
||||
|
||||
void on_destroy()
|
||||
{
|
||||
/* real destroy work including killing timer and closing sensor is
|
||||
accomplished in wasm app library version of on_destroy() */
|
||||
}
|
||||
59
samples/simple/wasm-apps/sensor/sensor.c
Normal file
59
samples/simple/wasm-apps/sensor/sensor.c
Normal file
@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include "wasm_app.h"
|
||||
|
||||
static sensor_t sensor = NULL;
|
||||
|
||||
/* Sensor event callback*/
|
||||
void sensor_event_handler(sensor_t sensor, attr_container_t *event,
|
||||
void *user_data)
|
||||
{
|
||||
printf("### app get sensor event\n");
|
||||
attr_container_dump(event);
|
||||
}
|
||||
|
||||
void on_init()
|
||||
{
|
||||
char *user_data;
|
||||
attr_container_t *config;
|
||||
|
||||
printf("### app on_init 1\n");
|
||||
/* open a sensor */
|
||||
user_data = malloc(100);
|
||||
printf("### app on_init 2\n");
|
||||
sensor = sensor_open("sensor_test", 0, sensor_event_handler, user_data);
|
||||
printf("### app on_init 3\n");
|
||||
|
||||
/* config the sensor */
|
||||
sensor_config(sensor, 1000, 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 != sensor) {
|
||||
sensor_config(sensor, 0, 0, 0);
|
||||
}
|
||||
/* real destroy work including killing timer and closing sensor is
|
||||
accomplished in wasm app library version of on_destroy() */
|
||||
}
|
||||
41
samples/simple/wasm-apps/timer/timer.c
Normal file
41
samples/simple/wasm-apps/timer/timer.c
Normal file
@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include "wasm_app.h"
|
||||
|
||||
/* User global variable */
|
||||
static int num = 0;
|
||||
|
||||
/* Timer callback */
|
||||
void timer1_update(user_timer_t timer)
|
||||
{
|
||||
printf("Timer update %d\n", num++);
|
||||
}
|
||||
|
||||
void on_init()
|
||||
{
|
||||
user_timer_t timer;
|
||||
|
||||
/* set up a timer */
|
||||
timer = api_timer_create(1000, true, false, timer1_update);
|
||||
api_timer_restart(timer, 1000);
|
||||
}
|
||||
|
||||
void on_destroy()
|
||||
{
|
||||
/* real destroy work including killing timer and closing sensor is
|
||||
accomplished in wasm app library version of on_destroy() */
|
||||
}
|
||||
Reference in New Issue
Block a user