OCF for resource-constrained environments

Size: px
Start display at page:

Download "OCF for resource-constrained environments"

Transcription

1 October 11 13, 2016 Berlin, Germany OCF for resource-constrained environments Kishen Maloor, Intel 1

2 Outline Introduction Brief background in OCF Core Constrained environment charactertics IoTivity-Constrained architecture Building applications Porting to new environments 2

3 Introduction What is OCF? Industry consortium with several member companies Publish open IoT standards Standards supported by open-source reference code 3

4 Introduction What is this talk about? IoTivity-Constrained New open source stack Reference Implementation of OCF standards for resource-constrained devices Easily customizable to any constrained platform configuration 4

5 Introduction RFC 7228: Classes of Constrained Devices Name data size (e.g., RAM) code size (e.g., Flash) Class 0, C0 << 10 KiB << 100 KiB Class 1, C1 ~ 10 KiB ~ 100 KiB Class 2, C2 ~ 50 KiB ~ 250 KiB Challenge: Must accommodate (at a minimum) OS + Network stack + drivers + OCF protocol + OCF application 5

6 IoTivity-Constrained vs IoTivity IoTivity-Constrained For resource-constrained devices Battery-powered door locks, tiny wireless sensors embedded in ceiling etc. Devices run small OS Zephyr, Contiki, RIOT OS etc. IoTivity For multi-function devices PCs, smartphones, gateways etc Devices run full-featured OS Linux, Android, Tizen, Windows etc. Both implementations are protocol compatible 6

7 Brief background in OCF Core OCF resource model RESTful design: Things modeled as resources with properties and methods CRUDN operations on resources (GET / OBSERVE, POST, PUT, DELETE) OCF roles Server role: Exposes hosted resources Client role: Accesses resources on a server Properties Resource URI rt: Resource Type if: Resource Interface p: Policy n: Resource Name 7

8 Brief background in OCF Core OCF Protocols Messaging protocol CoAP (RFC 7252) Resource discovery and reliability CBOR (RFC 7049) encoding of OCF payloads DTLS-based authentication, encryption and access control lists* Uses UDP/IP transport; being adapted to Bluetooth *Refer to the OCF Security spec at 8

9 Brief background in OCF Core Well-known OCF resources Functionality Discovery Device Platform Security Fixed URI /oic/res /oic/d /oic/p /oic/sec/* Refer to the OCF Core spec at 9

10 Brief background in OCF Core OCF request/response examples Resource discovery Multicast GET coap:// :5683/oic/res Unicast response [URI: /a/light; rt = [ oic.r.light ], if = [ oic.if.rw ], p= discoverable, observable] 10

11 Brief background in OCF Core OCF request/response examples GET and PUT requests Unicast GET coap:// :9000/a/light Unicast response [URI: /a/light; state = 0, dim = 0] Unicast PUT coap:// :9000/a/light PayLoad: [state=1;dim=50] Unicast response Status = Success 11

12 Brief background in OCF Core OCF request/response examples OBSERVE / Notify Unicast GET coap:// :9000/a/light; Observe_option= 0 Unicast response [URI: /a/light; state = 1, dim = 50] Notify Observers [URI: /a/light; state = 0, dim = 0, sequence #: 1] 12

13 Working in constrained environments Hardware related Low RAM and flash capacity Low power CPU with low clock cycle Execution efficiency Allow selection of feature subset to fulfill application s purpose 13

14 Working in constrained environments Software related Lightweight OS No dynamic memory management Multiplicity of OS, network stack, hardware platform and peripheral options Varying execution context design and scheduling strategy 14

15 IoTivity-Constrained architectural goals At a high level Cross-platform core Abstract interfaces to system clock, connectivity, PRNG, persistent storage Rapid porting to new environments Static memory allocation Modular design 15

16 IoTivity-Constrained architecture Ports Zephyr Abstract Interfaces Clock RIOT Embedded IoT Application On {Zephyr, Contiki, RIOT, Mynewt, Linux, } APIs IoTivity- Constrained Core PRNG Connectivity Persistent Storage Contiki Linux Concrete Implementations of Interfaces IoTivity-Constrained Framework 16

17 IoTivity-Constrained core Application APIs OCF Client Role OCF Server Role Memory Management Event Queue Resource Model Messaging Security Interact uniformly with Interface implementations for all ports 17

18 IoTivity-Constrained event loop Event loop execution Embedded IoT Application while( ) { oc_main_poll() } Callbacks Resource Layer Interrupt events Messaging Security CoAP Connectivity 18

19 IoTivity-Constrained event loop Enter tickless idle mode during periods of inactivity... // Initialize a semaphore while (1) { oc_clock_time_t next_event = oc_main_poll(); // next_event is the absolute time of the next scheduled event in clock ticks // Meanwhile, do other tasks or sleep (e.g., wait on semaphore)... // Framework invokes a callback when there is new work static void signal_event_loop(void) { // Wake up the event loop (e.g., signal the semaphore) } 19

20 Building applications Application structure Incorporate OCF s client or server roles or both Implement a set of callbacks Initialization (Client / Server) Defining and registering OCF resources (Server) Resource handlers for all supported methods (Server) Response handlers for all requests (Client) Entry point for issuing requests (Client) Framework configuration at build-time (config.h) 20

21 Building applications Setting the callbacks Main task in application main() { static const oc_handler_t handler = {.init = app_init,.signal_event_loop = signal_event_loop,.register_resources = register_resources };... oc_main_init(&handler);... while (1) { oc_clock_time_t next_event = oc_main_poll();... 21

22 Building applications Initialization Client / Server void app_init(void) { oc_init_platform("intel", NULL, NULL); oc_add_device("/oic/d", "oic.d.light", "Lamp", "1.0", "1.0", NULL, NULL); oc_storage_config(./creds ); } Populate standard OCF resources (platform / device) oc_storage_config is defined in the implementation of the storage interface for a target 22

23 Building applications Defining a resource Server-side... void register_resources(void) { oc_resource_t *res = oc_new_resource("/a/light", 1, 0); oc_resource_bind_resource_type(res, "core.light"); oc_resource_bind_resource_interface(res, OC_IF_R); oc_resource_set_default_interface(res, OC_IF_R); oc_resource_set_discoverable(res, true); oc_resource_set_observable(res, true); oc_resource_set_request_handler(res, OC_GET, get_light, NULL); oc_add_resource(res); } 23

24 Building applications Defining a resource handler Server-side... bool light_state; int brightness;... static void get_light(oc_request_t *request, oc_interface_mask_t interface,...) { oc_rep_start_root_object(); // Call oc_get_query_value() to access any uri-query oc_rep_set_boolean(root, state, light_state); oc_rep_set_int(root, brightness_level, brightness); oc_rep_end_root_object(); oc_send_response(request, OC_STATUS_OK); } 24

25 Building applications Resource discovery Client-side oc_do_ip_discovery("oic.r.light", &discovery, NULL);... oc_server_handle_t light_server; char light_uri[64];... oc_discovery_flags_t discovery(..., const char *uri,..., oc_server_handle_t *server,,...) { strncpy(light_uri, uri, strlen(uri)); memcpy(&light_server, server, sizeof(oc_server_handle_t)); return OC_STOP_DISCOVERY; // return OC_CONTINUE_DISCOVERY to review other resources } 25

26 Building applications Issuing a request Client-side oc_server_handle_t light_server; // Populated in the discovery callback char light_uri[64];... oc_do_get(light_uri, &light_server, unit=cd, &get_light, LOW_QOS, NULL);... 26

27 Building applications Handling a response Client-side void get_light(oc_client_response_t *data) { oc_rep_t *rep = data->payload; while (rep!= NULL) { // rep->name contains the key of the key-value pair switch (rep->type) { case BOOL: light_state = rep->value_boolean; break; case INT: brightness = rep->value_int; break; } rep = rep->next; } } 27

28 Building applications Separate response: For slow resources Server-side oc_separate_response_t temp_response; // Separate response handle for a request... static void get_temp(oc_request_t *request, oc_interface_mask_t interface) { oc_indicate_separate_response(request, &temp_response); }... void response_ready( ) {... oc_set_separate_response_buffer(&temp_response); oc_rep_start_root_object(); oc_rep_set_int(root, temp, temperature); oc_rep_end_root_object(); oc_send_separate_response(&temp_response, OC_STATUS_OK); 28

29 Building applications Scheduling events Client / Server Trigger callback after a period of time... oc_event_callback_retval_t run_after_a_sec(void *user_data) {... return DONE; // Tears down the callback // return CONTINUE instead to be called back once more after the preset interval }... oc_set_delayed_callback(null, &run_after_a_sec, 1);... May be used for scheduling one-off or periodic request issuances 29

30 Building applications Handling Interrupts Server-side Applications can define and signal a callback from an external context (eg. ISR) Callback executed on task that runs the event loop oc_define_interrupt_handler(temp_sensor) { // Callback definition... }... static void app_init(void){ oc_activate_interrupt_handler(temp_sensor); // Callback registration... void temp_sensor_isr() {... oc_signal_interrupt_handler(temp_sensor); // Callback Signaling 30

31 Building applications Framework configuration Set at build-time in a file config.h Number of application resources Number of request/response buffers Maximum payload sizes Memory pool sizes Max # of DTLS peers DTLS connection timeout 31

32 Porting to new environments Abstract Interfaces Clock IoTivity- Constrained Core PRNG Connectivity Persistent Storage IoTivity-Constrained Framework 32

33 Porting to new environments Clock interface // Set clock resolution in IoTivity-Constrained s configuration file: config.h #define OC_CLOCK_CONF_TICKS_PER_SECOND (...) typedef uint64_t oc_clock_time_t; // timestamp field width // Declared in port/oc_clock.h // Implement the following functions using the platform/os s APIs, For eg. on Linux // using clock_gettime() void oc_clock_init(void); oc_clock_time_t oc_clock_time(void); unsigned long oc_clock_seconds(void); void oc_clock_wait(oc_clock_time_t t); 33

34 Porting to new environments Connectivity interface // Declared in port/oc_connectivity.h // Implement the following functions using the platform s network stack. int oc_connectivity_init(void); void oc_connectivity_shutdown(void); void oc_send_buffer(oc_message_t *message); void oc_send_multicast_message(oc_message_t *message); uint16_t oc_connectivity_get_dtls_port(void); oc_message_t contains remote endpoint information (IP/Bluetooth address), and a data buffer 34

35 Porting to new environments Connectivity interface: network event synchronization Capture incoming messages by polling or with blocking wait in a separate context and construct an oc_message_t object Message injected into framework for processing via oc_network_event() call Based on nature of OS or implementation, might require synchronization void oc_network_event_handler_mutex_init(void); void oc_network_event_handler_mutex_lock(void); void oc_network_event_handler_mutex_unlock(void); 35

36 Porting to new environments PRNG interface // Declared in port/oc_random.h // Implement the following functions to interact with the platform s PRNG void oc_random_init(void); unsigned int oc_random_value(void); void oc_random_destroy(void); 36

37 Porting to new environments Persistent storage interface // Declared in port/oc_storage.h // Implement the following functions to interact with the platform s persistent storage // oc_storage_read/write must implement access to a key-value store int oc_storage_config(const char *store_ref); long oc_storage_read(const char *key, uint8_t *buf, size_t size); long oc_storage_write(const char *key, uint8_t *buf, size_t size); 37

38 Conclusion Pointers to code Source code: IoTivity mailing list: Project actively developed Ports for RIOT OS, Zephyr, Contiki and Linux Feature gaps, enhancements, pass OCF certification tests Project, code and API documentation Your involvement and contributions are welcome! 38

39 Q & A

OCF Specification Overview Core Technology Specification. OCF 2.0 Release June 2018

OCF Specification Overview Core Technology Specification. OCF 2.0 Release June 2018 OCF Specification Overview Core Technology Specification OCF 2.0 Release June 2018 Core Framework Topics Outline (1 of 2) Objectives RESTful Architecture OCF Roles Resources Basic Operations Organization

More information

IoTivity: The Open Connectivity Foundation and the IoT Challenge

IoTivity: The Open Connectivity Foundation and the IoT Challenge IoTivity: The Open Connectivity Foundation and the IoT Challenge Thiago Macieira Embedded Linux Conference / Open IoT Summit Berlin, October 2016 Who am I? 2 3 About the Open Connectivity Foundation 4

More information

Tizen/Artik IoT Practice Part 5 IoTivity Simple Server and Simple Client

Tizen/Artik IoT Practice Part 5 IoTivity Simple Server and Simple Client 1 Tizen/Artik IoT Practice Part 5 IoTivity Simple Server and Simple Client Sungkyunkwan University IoTivity Resource 2 In IoTivity, an entity(e.g. Sensor, Actuator) is being handled as a resource(ocf Resource

More information

IoTivity Big Picture. MyeongGi Jeong Software R&D Center

IoTivity Big Picture. MyeongGi Jeong Software R&D Center IoTivity Big Picture MyeongGi Jeong 2016.11.17 Software R&D Center Contents Overview Features Messaging Security Service Q&A Copyright c 2016 SAMSUNG ELECTRONICS. ALL RIGHTS RESERVED Overview IoTivity?

More information

Tizen/Artik IoT Lecture Chapter 7. IoTivity Connectivity Abstraction

Tizen/Artik IoT Lecture Chapter 7. IoTivity Connectivity Abstraction 1 Tizen/Artik IoT Lecture Chapter 7. IoTivity Connectivity Abstraction Sungkyunkwan University Contents 2 Architecture Routing Through Heterogeneous Connectivity Blockwise Transfer Call Path Sending Data

More information

ARCHITECTURING AND SECURING IOT PLATFORMS JANKO ISIDOROVIC MAINFLUX

ARCHITECTURING AND SECURING IOT PLATFORMS JANKO ISIDOROVIC MAINFLUX ARCHITECTURING AND SECURING IOT PLATFORMS JANKO ISIDOROVIC CEO @ MAINFLUX Outline Internet of Things (IoT) Common IoT Project challenges - Networking - Power Consumption - Computing Power - Scalability

More information

IOTIVITY INTRODUCTION

IOTIVITY INTRODUCTION IOTIVITY INTRODUCTION Martin Hsu Intel Open Source Technology Center 1 Content may contain references, logos, trade or service marks that are the property of their respective owners. Agenda Overview Architecture

More information

IOTIVITY AND EMBEDDED LINUX SUPPORT. Kishen Maloor Intel Open Source Technology Center

IOTIVITY AND EMBEDDED LINUX SUPPORT. Kishen Maloor Intel Open Source Technology Center IOTIVITY AND EMBEDDED LINUX SUPPORT Kishen Maloor Intel Open Source Technology Center Outline Open Interconnect Consortium and IoTivity Software development challenges in embedded Yocto Project and how

More information

System Architecture Directions for Networked Sensors[1]

System Architecture Directions for Networked Sensors[1] System Architecture Directions for Networked Sensors[1] Secure Sensor Networks Seminar presentation Eric Anderson System Architecture Directions for Networked Sensors[1] p. 1 Outline Sensor Network Characteristics

More information

IoTivity Provisioning Manager Design Specification v0.1d

IoTivity Provisioning Manager Design Specification v0.1d IoTivity Provisioning Manager Design Specification v0.1d Contributing Authors (alphabetical order): Ashwini Kumar Chul Lee Randeep Singh Sandeep Sharma WooChul Shim 1 Table of Contents Background... 3

More information

OCF Fundamentals. Ravi Subramaniam Principal Engineer, Intel Corporation

OCF Fundamentals. Ravi Subramaniam Principal Engineer, Intel Corporation OCF Fundamentals Ravi Subramaniam Principal Engineer, Intel Corporation 1 Fundamental Fundamentals OCF Resource Model Mapping onto Comms Transports 2 Many kinds of devices OIC Scope (current) Controller

More information

Soletta. Closing the IoT Development Gap. OpenIoT & ELC Europe 2016

Soletta. Closing the IoT Development Gap. OpenIoT & ELC Europe 2016 Soletta Closing the IoT Development Gap OpenIoT & ELC Europe 2016 Agenda - Who am I? - IoT Development Gaps - How to close IoT Development Gaps - Soletta Overview - Key Subsystems - Flow Based Programming

More information

DALI 2 Framework Design Document Introduction System Requirements Hardware Requirements Software Requirements...

DALI 2 Framework Design Document Introduction System Requirements Hardware Requirements Software Requirements... DALI 2 Framework Design Document Version 1.0 1. Introduction This project provides a Synergy Platform compatible Framework for the Digital Addressable Lighting Interface (DALI; International standard IEC

More information

ARM IoT Tutorial. CoAP: The Web of Things Protocol Zach Shelby. April 30 th, 2014

ARM IoT Tutorial. CoAP: The Web of Things Protocol Zach Shelby. April 30 th, 2014 ARM IoT Tutorial CoAP: The Web of Things Protocol Zach Shelby April 30 th, 2014 1 2 Introduction Evolution from M2M to IoT M2M Big Data Internet of Things Services Web The Web Little Data Things 3 3 CoAP:

More information

Assessing interoperability in Internet of Things ecosystems

Assessing interoperability in Internet of Things ecosystems Assessing interoperability in Internet of Things ecosystems Lars Bendik Dølvik Applied Computer Science Submission date: June 2017 Supervisor: Rune Hjelsvold, IDI Norwegian University of Science and Technology

More information

Interoperability Frameworks for RIOT-OS

Interoperability Frameworks for RIOT-OS Interoperability Frameworks for RIOT-OS @Mattia_Antonini m.antonini@create-net.org Università degli Studi INTEROPERABILITY Berlin, 15th July 2016 Stack Base Layer Service Layer Implementations Official

More information

IP Based Architecture for the Internet of Things. IPV6 and Related Standards for IoT Interoperability November 20, 2014

IP Based Architecture for the Internet of Things. IPV6 and Related Standards for IoT Interoperability November 20, 2014 IP Based Architecture for the Internet of Things IPV6 and Related Standards for IoT Interoperability November 20, 2014 1 IoT Architecture Problems to Solve Interoperability In the way in which software

More information

MetaWatch Firmware Design Guide

MetaWatch Firmware Design Guide MetaWatch Firmware Design Guide MetaWatch Firmware Design Guide Page 1 of 14 1 Contents 1 Contents... 2 2 Introduction... 3 2.1 Revision History... 4 3 Hardware... 5 3.1 Common Watch Features... 5 3.2

More information

IoTivity. Sungkyunkwan University. Presenter: Dzung Tien Nguyen Networking Laboratory,

IoTivity. Sungkyunkwan University. Presenter: Dzung Tien Nguyen Networking Laboratory, Sungkyunkwan University IoTivity Presenter: Dzung Tien Nguyen Networking Laboratory, 83345 ntdung@skku.edu Copyright 2000-2015 Networking Laboratory 1/00 Current issues Incompatibility of platforms: Manufacturers

More information

OCF 2.0 Semantic Tagging ATG CR1970. Legal Disclaimer

OCF 2.0 Semantic Tagging ATG CR1970. Legal Disclaimer Template version: 1.0 page 1 OCF 2.0 Semantic Tagging ATG CR1970 Legal Disclaimer THIS IS A DRAFT SPECIFICATION DOCUMENT ONLY AND HAS NOT BEEN ADOPTED BY THE OPEN CONNECTIVITY FOUNDATION. THIS DRAFT DOCUMENT

More information

Dotstack Porting Guide.

Dotstack Porting Guide. dotstack TM Dotstack Porting Guide. dotstack Bluetooth stack is a C library and several external interfaces that needs to be implemented in the integration layer to run the stack on a concrete platform.

More information

ARM mbed with us Hands On Getting to the Cloud

ARM mbed with us Hands On Getting to the Cloud ARM mbed with us Hands On Getting to the Cloud What is mbed Device Connector? mbed Device Connector mbed Device Connector is a service that lets you to provision and connect Internet of Things (IoT) devices

More information

Bluetooth low energy Protocol Stack

Bluetooth low energy Protocol Stack APPLICATION NOTE R01AN2768EJ0130 Rev.1.30 Introduction This manual describes how to develop an application using the Bluetooth low energy software (hereafter called BLE software), and overview of RWKE

More information

Embedded Web Services

Embedded Web Services Nov 1 st, 2011 Embedded Web Services Zach Shelby, Chief Nerd 1 Course Overview Powering M2M with the Internet of Things Industry examples What are Web Services? CoRE - Constrained RESTful Environments

More information

Tizen/Artik IoT Lecture Chapter 10. IoTivity Resource Encapsulation

Tizen/Artik IoT Lecture Chapter 10. IoTivity Resource Encapsulation 1 Tizen/Artik IoT Lecture Chapter 10. IoTivity Resource Encapsulation Sungkyunkwan University Contents Resource Encapsulation Components Resource Client API: Key Objects Resource Encapsulation Components

More information

AUTOBEST: A United AUTOSAR-OS And ARINC 653 Kernel. Alexander Züpke, Marc Bommert, Daniel Lohmann

AUTOBEST: A United AUTOSAR-OS And ARINC 653 Kernel. Alexander Züpke, Marc Bommert, Daniel Lohmann AUTOBEST: A United AUTOSAR-OS And ARINC 653 Kernel Alexander Züpke, Marc Bommert, Daniel Lohmann alexander.zuepke@hs-rm.de, marc.bommert@hs-rm.de, lohmann@cs.fau.de Motivation Automotive and Avionic industry

More information

RF Networking With MSP430 & the ez430-rf2500 Session 2 Miguel Morales, MSP430 Applications 6/5/2008 1

RF Networking With MSP430 & the ez430-rf2500 Session 2 Miguel Morales, MSP430 Applications 6/5/2008 1 RF Networking With MSP430 & the ez430-rf2500 Session 2 Miguel Morales, MSP430 Applications 6/5/2008 1 Agenda Recap of Session 1 Hardware description Session 2 Lab Overview Lab 2.1 Tilt & Ambient Noise

More information

Provisioning IoT with Web NFC. Zoltan Kis Intel

Provisioning IoT with Web NFC. Zoltan Kis Intel Provisioning IoT with Web NFC Zoltan Kis (@zolkis), Intel Background JavaScript APIs for IoTivity, Soletta W3C Web NFC editor Web access to hardware Earlier: Network management (DSL) Mesh radio networks

More information

Lab Assignment: Interrupt + Lookup Tables + Binary

Lab Assignment: Interrupt + Lookup Tables + Binary Lab Assignment: Interrupt + Lookup Tables + Binary Semaphores Objective To learn how to create a single dynamic user defined interrupt service routine callback driver/library. This lab will utilize: Semaphores

More information

EECS 3221 Operating System Fundamentals

EECS 3221 Operating System Fundamentals EECS 3221 Operating System Fundamentals Instructor: Prof. Hui Jiang Email: hj@cse.yorku.ca Web: http://www.eecs.yorku.ca/course/3221 General Info 3 lecture hours each week 2 assignments (2*5%=10%) 1 project

More information

EECS 3221 Operating System Fundamentals

EECS 3221 Operating System Fundamentals General Info EECS 3221 Operating System Fundamentals Instructor: Prof. Hui Jiang Email: hj@cse.yorku.ca Web: http://www.eecs.yorku.ca/course/3221 3 lecture hours each week 2 assignments (2*5%=10%) 1 project

More information

Internet of Things: An Introduction

Internet of Things: An Introduction Internet of Things: An Introduction IoT Overview and Architecture IoT Communication Protocols Acknowledgements 1.1 What is IoT? Internet of Things (IoT) comprises things that have unique identities and

More information

Constrained Application Protocol (CoAP) Vilen Looga, M.Sc. Doctoral

Constrained Application Protocol (CoAP) Vilen Looga, M.Sc. Doctoral Constrained Application Protocol (CoAP) Vilen Looga, M.Sc. Doctoral Student @dcs.aalto Outline Introduction CoAP at a glance Messages Observe Hardware Demo MAMMOTH Conclusions References 50 billion connected

More information

s132_nrf52 release notes

s132_nrf52 release notes s132_nrf52 release notes Table of Contents Introduction to the s132_nrf52 release notes These release notes describe the changes in the s132_nrf52 from version to version. The release notes are intended

More information

Implementation work on open source web of things servers and gateways. Dave Raggett, W3C

Implementation work on open source web of things servers and gateways. Dave Raggett, W3C Implementation work on open source web of things servers and gateways Dave Raggett, W3C Monday, 11 April 2016 Introduction I am working on two open source Web of Things server projects NodeJS

More information

#include <tobii/tobii.h> char const* tobii_error_message( tobii_error_t error );

#include <tobii/tobii.h> char const* tobii_error_message( tobii_error_t error ); tobii.h Thread safety The tobii.h header file collects the core API functions of stream engine. It contains functions to initialize the API and establish a connection to a tracker, as well as enumerating

More information

Towards a Zero-Configuration Wireless Sensor Network Architecture for Smart Buildings

Towards a Zero-Configuration Wireless Sensor Network Architecture for Smart Buildings Towards a Zero-Configuration Wireless Sensor Network Architecture for Smart Buildings By Lars Schor, Philipp Sommer, Roger Wattenhofer Computer Engineering and Networks Laboratory ETH Zurich, Switzerland

More information

SpiNNaker Application Programming Interface (API)

SpiNNaker Application Programming Interface (API) SpiNNaker Application Programming Interface (API) Version 2.0.0 10 March 2016 Application programming interface (API) Event-driven programming model The SpiNNaker API programming model is a simple, event-driven

More information

PS Telematik-Projekt: Wireless Embedded Systems

PS Telematik-Projekt: Wireless Embedded Systems 19589 - PS Telematik-Projekt: Wireless Embedded Systems First Steps Bastian Blywis, Dr. Achim Liers Department of Mathematics and Computer Science Institute of Computer Science 08. October, 2008 Institute

More information

Multitasking. Embedded Systems

Multitasking. Embedded Systems Multitasking in Embedded Systems 1 / 39 Multitasking in Embedded Systems v1.0 Multitasking in ES What is Singletasking? What is Multitasking? Why Multitasking? Different approaches Realtime Operating Systems

More information

PusleIR Multitouch Screen Software SDK Specification. Revision 4.0

PusleIR Multitouch Screen Software SDK Specification. Revision 4.0 PusleIR Multitouch Screen Software SDK Specification Revision 4.0 Table of Contents 1. Overview... 3 1.1. Diagram... 3 1.1. PulseIR API Hierarchy... 3 1.2. DLL File... 4 2. Data Structure... 5 2.1 Point

More information

Linux SDK for UPnP Devices v1.4

Linux SDK for UPnP Devices v1.4 Linux SDK for UPnP Devices v1.4 Linux SDK for UPnP Devices v1.4 Contents 1 Introduction............................................................. 5 2 License...................................................................

More information

Real-Time Systems Hermann Härtig Real-Time Operating Systems Brief Overview

Real-Time Systems Hermann Härtig Real-Time Operating Systems Brief Overview Real-Time Systems Hermann Härtig Real-Time Operating Systems Brief Overview 02/02/12 Outline Introduction Basic variants of RTOSes Real-Time paradigms Common requirements for all RTOSes High level resources

More information

Constrained Application Protocol (CoAP) Vilen Looga, M.Sc. Doctoral

Constrained Application Protocol (CoAP) Vilen Looga, M.Sc. Doctoral Constrained Application Protocol (CoAP) Vilen Looga, M.Sc. Doctoral Student @dcs.aalto Outline Introduction CoAP at a glance Messages Observe Hardware Demo MAMMOTH Conclusions References 50 billion connected

More information

Chapter 13: I/O Systems. Operating System Concepts 9 th Edition

Chapter 13: I/O Systems. Operating System Concepts 9 th Edition Chapter 13: I/O Systems Silberschatz, Galvin and Gagne 2013 Chapter 13: I/O Systems Overview I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations

More information

Developer manual. (Onvif Client Library) Happytimesoft Technology Co.,LTD

Developer manual. (Onvif Client Library) Happytimesoft Technology Co.,LTD Developer manual (Onvif Client Library) Happytimesoft Technology Co.,LTD Declaration All rights reserved. No part of this publication may be excerpted, reproduced, translated, annotated or edited, in any

More information

RM0327 Reference manual

RM0327 Reference manual Reference manual Multi-Target Trace API version 1.0 Overview Multi-Target Trace (MTT) is an application instrumentation library that provides a consistent way to embed instrumentation into a software application,

More information

int fnvgetconfig(handle h, UINT32 id, const void *cfg, size_t sz);... 4

int fnvgetconfig(handle h, UINT32 id, const void *cfg, size_t sz);... 4 RP-VL-UTIL-V1 Developer s Guide [ Contents ] 1. Introduction... 1 2. Building Environment... 1 3. Operating Environment... 1 4. Function Explanation... 2 4.1. Common API for Transmitting and Receiving...

More information

OpenAMP Discussion - Linaro2018HK. Copyright 2018 Xilinx

OpenAMP Discussion - Linaro2018HK. Copyright 2018 Xilinx OpenAMP Discussion - Linaro2018HK Agenda o SPDX Short Licenses Identifier o Coding Guideline o API Standardisation o Coprocessor Image Format o OpenAMP and Container Page 2 OpenAMP License Page 3 SPDX

More information

Programming Guide. WISE-PaaS/RMM 3.2. Wireless IoT Sensing Embedded Agent WISE-Agent Programming Guide

Programming Guide. WISE-PaaS/RMM 3.2. Wireless IoT Sensing Embedded Agent WISE-Agent Programming Guide Programming Guide WISE-PaaS/RMM 3.2 Wireless IoT Sensing Embedded Agent WISE-Agent Programming Guide Change Log: Date Version / Major change 2015/02/21 V0.1 Scott Chang, create draft document 2015/03/08

More information

MaRTE OS Misc utilities

MaRTE OS Misc utilities MaRTE OS Misc utilities Daniel Sangorrin daniel.sangorrin@{unican.es, gmail.com} rev 0.1: 2008-5-12 1. Circular Memory Buffer This is a generic software component that allows the user to write some data

More information

Implementation work on open source web of things servers and gateways. Dave Raggett, W3C

Implementation work on open source web of things servers and gateways. Dave Raggett, W3C Implementation work on open source web of things servers and gateways Dave Raggett, W3C Monday, 11 April 2016 Reference Architecture Browser for HMI Gateway Cloud based Services Powered, multi-protocol

More information

Zilog Real-Time Kernel

Zilog Real-Time Kernel An Company Configurable Compilation RZK allows you to specify system parameters at compile time. For example, the number of objects, such as threads and semaphores required, are specez80acclaim! Family

More information

Chapter 5.6 Network and Multiplayer

Chapter 5.6 Network and Multiplayer Chapter 5.6 Network and Multiplayer Multiplayer Modes: Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement Latency sensitive 2 Multiplayer Modes: Shared I/O Input

More information

Jonas Green, Björn Otterdahl HMS Industrial Networks AB. February 22, 2017

Jonas Green, Björn Otterdahl HMS Industrial Networks AB. February 22, 2017 Resource-constrained Industrial Things Proposal for the Adaptation of CoAP to EtherNet/IP Jonas Green, Björn Otterdahl HMS Industrial Networks AB February 22, 2017 Connect all devices in a factory to EtherNet/IP

More information

This Document describes the API provided by the DVB-Multicast-Client library

This Document describes the API provided by the DVB-Multicast-Client library DVB-Multicast-Client API-Specification Date: 17.07.2009 Version: 2.00 Author: Deti Fliegl This Document describes the API provided by the DVB-Multicast-Client library Receiver API Module

More information

Embedded Systems. 5. Operating Systems. Lothar Thiele. Computer Engineering and Networks Laboratory

Embedded Systems. 5. Operating Systems. Lothar Thiele. Computer Engineering and Networks Laboratory Embedded Systems 5. Operating Systems Lothar Thiele Computer Engineering and Networks Laboratory Embedded Operating Systems 5 2 Embedded Operating System (OS) Why an operating system (OS) at all? Same

More information

Resilient IoT Security: The end of flat security models

Resilient IoT Security: The end of flat security models Resilient IoT Security: The end of flat security models Xiao Sun Senior Application Engineer ARM Tech Symposia China 2015 November 2015 Evolution from M2M to IoT M2M Silos of Things Standards Security

More information

FreeRTOS. A Brief Overview. Christopher Kenna. October 1, Avionics. FreeRTOS 1 / 34

FreeRTOS. A Brief Overview. Christopher Kenna. October 1, Avionics. FreeRTOS 1 / 34 A Brief Overview Christopher Kenna Avionics October 1, 2010 1 / 34 Introduction Outline 1 Introduction About Kernel Overview 2 Tasks Tasks versus Co-Routines Task Details 3 IPC and Synchronization Queues

More information

An Architecture for Underwater Networks

An Architecture for Underwater Networks An Architecture for Underwater Networks Mandar Chitre Acoustic Research Laboratory, National University of Singapore Lee Freitag Woods Hole Oceanographic Institution Ethem Sozer Massachusetts Institute

More information

Embedded Software TI2726 B. 7. Embedded software design. Koen Langendoen. Embedded Software Group

Embedded Software TI2726 B. 7. Embedded software design. Koen Langendoen. Embedded Software Group Embedded Software 7. Embedded software design TI2726 B Koen Langendoen Embedded Software Group Overview Timing services RTOS and ISRs Design of embedded systems General principles Timing Functionality

More information

Vinod Koul, Sanyog Kale Intel Corp. MIPI SoundWire Linux Subsystem: An introduction to Protocol and Linux Subsystem

Vinod Koul, Sanyog Kale Intel Corp. MIPI SoundWire Linux Subsystem: An introduction to Protocol and Linux Subsystem Vinod Koul, Sanyog Kale MIPI SoundWire Linux Subsystem: An introduction to Protocol and Linux Subsystem Agenda MIPI SoundWire Basics Linux Subsystem SoundWire Linux Bus SoundWire Master SoundWire Slave

More information

An Implementation of Fog Computing Attributes in an IoT Environment

An Implementation of Fog Computing Attributes in an IoT Environment An Implementation of Fog Computing Attributes in an IoT Environment Ranjit Deshpande CTO K2 Inc. Introduction Ranjit Deshpande CTO K2 Inc. K2 Inc. s end-to-end IoT platform Transforms Sensor Data into

More information

VD Interfaces V0.1. Draft 2

VD Interfaces V0.1. Draft 2 VD Interfaces V0.1 Draft 2 Copyright 2009 Red Hat, Inc. Licensed under a Creative Commons Attribution-Share Alike 3.0 United States License (see http://creativecommons.org/licenses/by-sa/3.0/us/legalcode).

More information

Lithe: Lightweight Secure CoAP for the Internet of Things

Lithe: Lightweight Secure CoAP for the Internet of Things Lithe: Lightweight Secure CoAP for the Internet of Things S. Raza, H. Shafagh, etc. IEEE Sensors 2013, Volume 13 Speaker: Renato Iida, Le Wang 2 Outline Introduction Background CoAP and DTLS 6LoWPAN DTLS

More information

Lecture 3. Introduction to Real-Time kernels. Real-Time Systems

Lecture 3. Introduction to Real-Time kernels. Real-Time Systems Real-Time Systems Lecture 3 Introduction to Real-Time kernels Task States Generic architecture of Real-Time kernels Typical structures and functions of Real-Time kernels Last lecture (2) Computational

More information

Quadros. RTXC Kernel Services Reference, Volume 1. Levels, Threads, Exceptions, Pipes, Event Sources, Counters, and Alarms. Systems Inc.

Quadros. RTXC Kernel Services Reference, Volume 1. Levels, Threads, Exceptions, Pipes, Event Sources, Counters, and Alarms. Systems Inc. Quadros Systems Inc. RTXC Kernel Services Reference, Volume 1 Levels, Threads, Exceptions, Pipes, Event Sources, Counters, and Alarms Disclaimer Quadros Systems, Inc. makes no representations or warranties

More information

Asynchronous Events on Linux

Asynchronous Events on Linux Asynchronous Events on Linux Frederic.Rossi@Ericsson.CA Open System Lab Systems Research June 25, 2002 Ericsson Research Canada Introduction Linux performs well as a general purpose OS but doesn t satisfy

More information

EVE2 BLE Datasheet. The EVE Platform features standardized IO, common OS and drivers and ultra-low power consumption.

EVE2 BLE Datasheet. The EVE Platform features standardized IO, common OS and drivers and ultra-low power consumption. Datasheet Main features Software Micro-kernel with scheduling, power and clock management Contiki OS Tickless design Drivers for peripherals Bluetooth 4.1 compliant low energy singlemode protocol stack

More information

ECEN 449 Microprocessor System Design. Hardware-Software Communication. Texas A&M University

ECEN 449 Microprocessor System Design. Hardware-Software Communication. Texas A&M University ECEN 449 Microprocessor System Design Hardware-Software Communication 1 Objectives of this Lecture Unit Learn basics of Hardware-Software communication Memory Mapped I/O Polling/Interrupts 2 Motivation

More information

The Big Picture So Far. Chapter 4: Processes

The Big Picture So Far. Chapter 4: Processes The Big Picture So Far HW Abstraction Processor Memory IO devices File system Distributed systems Example OS Services Process management, protection, synchronization Memory Protection, management, VM Interrupt

More information

HLD For SMP node affinity

HLD For SMP node affinity HLD For SMP node affinity Introduction Current versions of Lustre rely on a single active metadata server. Metadata throughput may be a bottleneck for large sites with many thousands of nodes. System architects

More information

RFC: connectionless Data Link Metalanguage Burkhard Daniel

RFC: connectionless Data Link Metalanguage Burkhard Daniel RFC: connectionless Data Link Metalanguage Burkhard Daniel (burk@stg.com) This RFC details a specification draft for a UDI metalanguage interfacing UDI Network Protocol drivers to UDI Data Link drivers.

More information

Like select() and poll(), epoll can monitor multiple FDs epoll returns readiness information in similar manner to poll() Two main advantages:

Like select() and poll(), epoll can monitor multiple FDs epoll returns readiness information in similar manner to poll() Two main advantages: Outline 22 Alternative I/O Models 22-1 22.1 Overview 22-3 22.2 Nonblocking I/O 22-5 22.3 Signal-driven I/O 22-11 22.4 I/O multiplexing: poll() 22-14 22.5 Problems with poll() and select() 22-31 22.6 The

More information

OCF 2.0 Constrained Device Support OIC 1.1 Core Technology WG CR Legal Disclaimer

OCF 2.0 Constrained Device Support OIC 1.1 Core Technology WG CR Legal Disclaimer Template version: 1.2 page 1 OCF 2.0 Constrained Device Support OIC 1.1 Core Technology WG CR 2413 Legal Disclaimer THIS IS A DRAFT SPECIFICATION DOCUMENT ONLY AND HAS NOT BEEN ADOPTED BY THE OPEN CONNECTIVITY

More information

Operating Systems 2010/2011

Operating Systems 2010/2011 Operating Systems 2010/2011 Input/Output Systems part 1 (ch13) Shudong Chen 1 Objectives Discuss the principles of I/O hardware and its complexity Explore the structure of an operating system s I/O subsystem

More information

IoT on Fedora Using Fedora as a base for the IoT Revolution

IoT on Fedora Using Fedora as a base for the IoT Revolution IoT on Fedora Using Fedora as a base for the IoT Revolution Presented by Peter Robinson Fedora contriibutor, Red Hatter CC-BY-SA Overview Am I just going to talk ARM? HELL NO!! IoT is a LOT bigger than

More information

Operating Systems. Introduction & Overview. Outline for today s lecture. Administrivia. ITS 225: Operating Systems. Lecture 1

Operating Systems. Introduction & Overview. Outline for today s lecture. Administrivia. ITS 225: Operating Systems. Lecture 1 ITS 225: Operating Systems Operating Systems Lecture 1 Introduction & Overview Jan 15, 2004 Dr. Matthew Dailey Information Technology Program Sirindhorn International Institute of Technology Thammasat

More information

Triangle MicroWorks IEC Library Evaluation Kit

Triangle MicroWorks IEC Library Evaluation Kit T Triangle MicroWorks IEC 61850 Library Evaluation Kit Introduction The IEC 61850 Library Evaluation Kit from Triangle MicroWorks provides a Demo Server application to demonstrate the functionality of

More information

Homework. Reading. Machine Projects. Labs. Intel 8254 Programmable Interval Timer (PIT) Data Sheet. Continue on MP3

Homework. Reading. Machine Projects. Labs. Intel 8254 Programmable Interval Timer (PIT) Data Sheet. Continue on MP3 Homework Reading Intel 8254 Programmable Interval Timer (PIT) Data Sheet Machine Projects Continue on MP3 Labs Continue in labs with your assigned section 1 Restrictions on ISR Code Software that was executing

More information

AN HONORS UNIVERSITY IN MARYLAND UMBC. AvrX. Yousef Ebrahimi Professor Ryan Robucci

AN HONORS UNIVERSITY IN MARYLAND UMBC. AvrX.   Yousef Ebrahimi Professor Ryan Robucci AvrX https://github.com/kororos/avrx Yousef Ebrahimi Professor Ryan Robucci Introduction AvrX is a Real Time Multitasking Kernel written for the Atmel AVR series of micro controllers. The Kernel is written

More information

Process Scheduling Queues

Process Scheduling Queues Process Control Process Scheduling Queues Job queue set of all processes in the system. Ready queue set of all processes residing in main memory, ready and waiting to execute. Device queues set of processes

More information

Security Monitoring of LwM2M Protocol

Security Monitoring of LwM2M Protocol Security Monitoring of LwM2M Protocol Technical Report FIT-TR-2017-16 Ondřej Ryšavý Marek Rychlý Ondřej Ryšavý Technical Report no. FIT-TR-2017-16 Faculty of Information Technology Brno University of Technology

More information

Model Based Development of Embedded Control Software

Model Based Development of Embedded Control Software Model Based Development of Embedded Control Software Part 5: Portable TDL Run-time System Claudiu Farcas Credits: MoDECS Project Team, Giotto Department of Computer Science cs.uni-salzburg.at Contents

More information

Tizen/Artik IoT Lecture Chapter 11. IoTivity Resource Hosting & Resource Directory

Tizen/Artik IoT Lecture Chapter 11. IoTivity Resource Hosting & Resource Directory 1 Tizen/Artik IoT Lecture Chapter 11. IoTivity Resource Hosting & Resource Directory Sungkyunkwan University Contents 2 Resource Hosting Design Resource Hosting in IoTivity Discovery: OICStartCoordinate()

More information

Bluetooth Mesh. Johan Hedberg

Bluetooth Mesh. Johan Hedberg Bluetooth Mesh Johan Hedberg What is Bluetooth Mesh? New standard which came out in 2017 Many-to-many, multi-hop topology No new Bluetooth HW required Broadcast & relay in a flooding/ripple fashion Mainly

More information

OCF Core Specifiation

OCF Core Specifiation OCF Core Specifiation VERSION 1.1.0 June 2017 Part 1 CONTACT admin@openconnectivity.org Copyright Open Connectivity Foundation, Inc. 2016-2017. All Rights Reserved. 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

More information

An Incubator Project in the Apache Software Foundation. 13 July 2016

An Incubator Project in the Apache Software Foundation.  13 July 2016 An Incubator Project in the Apache Software Foundation http://mynewt.apache.org/ 13 July 2016 Apache Mynewt Open Source OS for Constrained IoT MCU / Hardware independent ARM Cortex-M*, AVR, MIPS, more...

More information

Multicast Dissemination Protocol (MDP) Developer's Guide

Multicast Dissemination Protocol (MDP) Developer's Guide Multicast Dissemination Protocol (MDP) Developer's Guide Brian Adamson Newlink Global Engineering Corporation Joe Macker Naval Research Laboratory 1

More information

Embedded Programming for IoT. John Light, Intel OTC OpenIoT Summit, San Diego 6 April 2016

Embedded Programming for IoT. John Light, Intel OTC OpenIoT Summit, San Diego 6 April 2016 Embedded Programming for IoT John Light, Intel OTC OpenIoT Summit, San Diego 6 April 2016 Embedded programming is a lost art Fewer and fewer engineers understand embedded programming. Embedded software

More information

OS: An Overview. ICS332 Operating Systems

OS: An Overview. ICS332 Operating Systems OS: An Overview ICS332 Operating Systems Why are we studying this? After all, you probably will not develop an OS Important to understand what you use: Develop better (apps); What can and cannot be done;

More information

Real-Time Concepts for Embedded Systems Author: Qing Li with Caroline Yao

Real-Time Concepts for Embedded Systems Author: Qing Li with Caroline Yao Real-Time Concepts for Embedded Systems Author: Qing Li with Caroline Yao ISBN: 1-57820-124-1 CMPBooks Chapter 11 Timer and Timer Services Outline 11.1 Introduction 11.2 Real-Time Clocks and System Clocks

More information

Major Components of the Internet of Things Systems

Major Components of the Internet of Things Systems Major Components of the Internet of Things Systems 1 1. Sensors and Control Units 2 Sensors Analog Sensors: thermistor, photoconductor, pressure gauge and Hall sensor Digital Sensors: touch sensor, proximity

More information

IoT OSes: Contiki-NG Part 1. Luca Mottola

IoT OSes: Contiki-NG Part 1. Luca Mottola IoT OSes: Contiki-NG Part 1 Luca Mottola luca.mottola@polimi.it Road-map Goals: Acquire concepts Immediately put them in practice Our target platform is Contiki-NG We use Contiki-NG as an opportunity to

More information

5/11/2012 CMSIS-RTOS. Niall Cooling Feabhas Limited CMSIS. Cortex Microcontroller Software Interface Standard.

5/11/2012 CMSIS-RTOS. Niall Cooling Feabhas Limited  CMSIS. Cortex Microcontroller Software Interface Standard. Niall Cooling Feabhas Limited www.feabhas.com Cortex Microcontroller Software Interface Standard CMSIS 2 1 ARM Cortex Family A Series Application MMU Linux, Android, Windows R Series Real-Time MPU M Series

More information

The Big Picture So Far. Chapter 4: Processes

The Big Picture So Far. Chapter 4: Processes The Big Picture So Far HW Abstraction Processor Memory IO devices File system Distributed systems Example OS Services Process management, protection, synchronization Memory Protection, management, VM Interrupt

More information

Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology

Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology exam Embedded Software TI2726-B January 28, 2019 13.30-15.00 This exam (6 pages) consists of 60 True/False

More information

Zymkey App Utils: C++

Zymkey App Utils: C++ Zymkey App Utils: C++ Generated by Doxygen 1.8.8 Tue Apr 3 2018 07:21:52 Contents 1 Intro 1 2 Hierarchical Index 5 2.1 Class Hierarchy............................................ 5 3 Class Index 7 3.1

More information

Real-Time Systems. Real-Time Operating Systems

Real-Time Systems. Real-Time Operating Systems Real-Time Systems Real-Time Operating Systems Hermann Härtig WS 2018/19 Outline Introduction Basic variants of RTOSes Real-Time paradigms Common requirements for all RTOSes High level resources Non-Real-Time

More information

Resilient IoT Security: The end of flat security models. Milosch Meriac IoT Security Engineer

Resilient IoT Security: The end of flat security models. Milosch Meriac IoT Security Engineer Resilient IoT Security: The end of flat security models Milosch Meriac IoT Security Engineer milosch.meriac@arm.com Securing a computer system has traditionally been a battle of wits: the penetrator tries

More information