Skip to content
This repository has been archived by the owner on Jun 27, 2019. It is now read-only.

Commit

Permalink
modules/timestamp: add node type to get current time
Browse files Browse the repository at this point in the history
Signed-off-by: Bruno Dilly <bruno.dilly@intel.com>
  • Loading branch information
bdilly committed Sep 2, 2015
1 parent b5c508e commit 14b5bca
Show file tree
Hide file tree
Showing 5 changed files with 99 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/lib/flow/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ source "src/modules/flow/temperature/Kconfig"
source "src/modules/flow/test/Kconfig"
source "src/modules/flow/thingspeak/Kconfig"
source "src/modules/flow/timer/Kconfig"
source "src/modules/flow/timestamp/Kconfig"
source "src/modules/flow/trigonometry/Kconfig"
source "src/modules/flow/udev/Kconfig"
source "src/modules/flow/unix-socket/Kconfig"
Expand Down
3 changes: 3 additions & 0 deletions src/modules/flow/timestamp/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
config FLOW_NODE_TYPE_TIMESTAMP
tristate "Node type: timestamp"
default y
2 changes: 2 additions & 0 deletions src/modules/flow/timestamp/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
obj-$(FLOW_NODE_TYPE_TIMESTAMP) += timestamp.mod
obj-timestamp-$(FLOW_NODE_TYPE_TIMESTAMP) := timestamp.json timestamp.o
58 changes: 58 additions & 0 deletions src/modules/flow/timestamp/timestamp.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
/*
* This file is part of the Soletta Project
*
* Copyright (C) 2015 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* * Neither the name of Intel Corporation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

#include "timestamp-gen.h"
#include "sol-flow-internal.h"

#include <sol-util.h>
#include <errno.h>
#include <time.h>


static int
time_process(struct sol_flow_node *node, void *data, uint16_t port, uint16_t conn_id, const struct sol_flow_packet *packet)
{
struct timespec current_time;
int r;

r = sol_util_timespec_get_realtime(&current_time);
if (r < 0) {
sol_flow_send_error_packet(node, r,
"Could not fetch current time: %s", sol_util_strerrora(r));
return 0;
}

return sol_flow_send_timestamp_packet(node,
SOL_FLOW_NODE_TYPE_TIMESTAMP_TIME__OUT__OUT, &current_time);
}

#include "timestamp-gen.c"
35 changes: 35 additions & 0 deletions src/modules/flow/timestamp/timestamp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"$schema": "http://solettaproject.github.io/soletta/schemas/node-type-genspec.schema",
"name": "timestamp",
"meta": {
"author": "Intel Corporation",
"license": "BSD 3-Clause",
"version": "1"
},
"types": [
{
"category": "timestamp",
"description": "Provides timestamp packets with current time",
"in_ports": [
{
"data_type": "any",
"description": "Triggers emission of packet with current time.",
"methods": {
"process": "time_process"
},
"name": "TRIGGER",
"required": true
}
],
"name": "timestamp/time",
"out_ports": [
{
"data_type": "timestamp",
"description": "Packet with current time.",
"name": "OUT"
}
],
"url": "http://solettaproject.org/doc/latest/node_types/timestamp/time.html"
}
]
}

0 comments on commit 14b5bca

Please sign in to comment.