Tizen OAL Interface & Sensor

Size: px
Start display at page:

Download "Tizen OAL Interface & Sensor"

Transcription

1 Tizen OAL Interface & Sensor Minsoo Ryu Real-Time Computing and Communications Lab. Hanyang University

2 Contents Tizen OAL Overview Tizen Sensor Architecture Tizen OAL in sensor Tizen Sensor 2 2

3 Objectives Understand OAL concepts and practical uses Understand about the operation of Tizen Sensor plugin and Architecture Investigate Motion Sensor in Tizen and build/port it to device 3 3

4 TIZEN OAL OVERVIEW 4 4

5 Tizen OAL Overview 5 5

6 Tizen OAL Overview OAL (OEM Adaptation Layer) The OAL interface provides function pointers for OEMs to plugin their device/platform specific code to System framework. OEM interfaces are provided by function pointer and contents of OEM is made by each manufacturing company. 6 6

7 TIZEN SENSOR FRAMEWORK 7 7

8 Sensor Framework Client library Sensor daemon 8 8

9 Sensor Client Architecture Client library Sensor daemon 9 9

10 Sensor Client Sensor Client library Any application that wants to access the sensor server and communicate with it should use the sensor API and the client library. Application can have the sensor framework client library executing within its own process context by using the sensor API

11 Components of Sensor Client Client Commands APIs exposed to the user at application level with which he can connect to a sensor, register for a particular event and start receiving data for that particular event with a time interval the user can select as specified by the driver for that particular sensor. Command Channel Used for sending commands to the interface from the client side to the server to register events for a particular sensor, unregister events, set or unset interval. Also provides a command handler which sends the command from the client side in the form of a packet and expects to receive a command acknowledgement packet which would consist of the header and the return payload

12 Components of Sensor Client Client Information Stores client information regarding events such as registration, deletion, changing registered event information and interval information on the client side. Event handler & Event listener 12 12

13 Components of Sensor Client Client function callback The event handler executes the client call back function which was registered by the client at the time of event registration. The call back function implements a specific set of functionality which needs to be executed in the application based on the sensor event and data that is received

14 Sensor Server Architecture Client library Sensor daemon 14 14

15 Sensor Server Sensor Server The sensor server is a daemon which communicates uniquely to multiple sensors(through drivers) in the system and dispatches sensor data/events back to the application. It takes care of initializing sensors during boot, driver configuration, sensor data fetching/delivery and management of all sensors on the platform

16 Components of Sensor Server Command worker Runs as a separate thread to receive commands from client such as registering event, unregistering event, setting interval, getting interval, getting data on a socket. Each command uses a separate command handler. The socket on the sensor framework server receives the command packets from the application and creates a new worker thread for processing the command. The worker thread then calls the command handler which decodes the received command. The acknowledgement for the command packet received on the server is sent back to the application

17 Components of Sensor Server Server Information Client info manager Server Info Sensor Usage 17 17

18 Components of Sensor Server Event dispatcher Dispatches the event popped from the event queue to clients using client-event registration information stored in the server block to the listener ids listening for that event. Event queue The data read from the device driver using the plugin layer is pushed up the event queue. This is the common event queue for all sensors. In case of virtual sensors it is possible to prioritize events coming from physical sensors that are being used by that virtual sensor

19 Components of Sensor Server Sensor plugin loader Sensor configuration Path used for obtaining sensor configuration information Path = /usr/etc/sensors.xml 19 19

20 TIZEN OAL IN SENSOR 20 20

21 OAL in Sensor Overview OAL in Sensor Sensor plugins retrieve data from sensor hardware and enable the client applications to use the data for specific requirements

22 Example of using OAL in Sensor Server loads plugins before running. # framework/system/sensord/src/server/main.cpp int main(int argc, char *argv[]) {.. sensor_plugin_loader::get_instance().load_plugins(); server::get_instance().run(); server::get_instance().stop(); sensor_plugin_loader::get_instance().destroy();. 1. Creates a new GMainLoop structure 2. Creates and listen command channel 3. Runs a main loop } return 0; 22 22

23 Load sensor plugins How to load sensor plugins in sensor daemon # framework/system/sensord/src/shared/ sensor_plugin_loader.cpp #include <sensor_hal.h> #include <sensor_base.h> #include <sensor_fusion.h> #define PLUGINS_CONFIG_PATH "/usr/etc/sensor_plugins.xml" #define PLUGINS_DIR_PATH "/usr/lib/sensord" 23 23

24 Load sensor plugins How to configure the path before loading # framework/system/sensord/src/shared/ sensor_plugin_loader.cpp bool sensor_plugin_loader::load_plugins(void) { vector<string> hal_paths, sensor_paths; vector<string> unique_hal_paths, unique_sensor_paths; get_paths_from_config(string(plugins_config_path), hal_paths, sensor_paths); get_paths_from_dir(string(plugins_dir_path), hal_paths, sensor_paths); Saves paths in the vector hal_paths and sensor_paths

25 Load sensor plugins Load all sensors to server # framework/system/sensord/src/shared/ sensor_plugin_loader.cpp bool sensor_plugin_loader::load_plugins(void) {. auto insert = [&](plugin_type type, const string &path) { insert_module(type, path); }; } for_each(unique_hal_paths.begin(), unique_hal_paths.end(), [&](const string &path) { insert(plugin_type_hal, path); } ); for_each(unique_sensor_paths.begin(), unique_sensor_paths.end(), [&](const string &path) { insert(plugin_type_sensor, path); } );.. return true; 25 25

26 Load sensor plugins Classify the sensor type before load module # framework/system/sensord/src/shared/ sensor_plugin_loader.cpp bool sensor_plugin_loader::insert_module(plugin_type type, const string &path) { if (type == PLUGIN_TYPE_HAL) { std::vector<void *>hals; void *handle; load_module(path, hals, handle).. } else if (type == PLUGIN_TYPE_SENSOR) { std::vector<void *> sensors; void *handle; } } load_module(path, sensors, handle) sensor_base* sensor;

27 Load sensor plugins Plugin with dynamic loading # framework/system/sensord/src/shared/ sensor_plugin_loader.cpp bool sensor_plugin_loader::load_module(const string &path, vector<void*> &sensors, void* &handle) { void *_handle = dlopen(path.c_str(), RTLD_NOW); create_t create_module = (create_t) dlsym(_handle, "create"); sensor_module *module = create_module();.. sensors.swap(module->sensors);.. return true; } 27 27

28 Load sensor plugins Setting the path to configure before loading # framework/system/sensord/sensor_plugins.xml.in --> usr/etc/sensor_plugins.xml <PLUGIN> <HAL> <MODULE path = "/usr/lib/sensord/libaccel_sensor_hal.so"/> <MODULE path = "/usr/lib/sensord/libgyro_sensor_hal.so"/>. </HAL> This part is the list of hardware sensors shared library. This part is the list of total sensors shared library that include virtual sensors. <SENSOR> <MODULE path = "/usr/lib/sensord/libaccel_sensor.so"/> <MODULE path = "/usr/lib/sensord/libgyro_sensor.so"/> <MODULE path = "/usr/lib/sensord/libmotion_sensor.so"/> <MODULE path = "/usr/lib/sensord/liborientation_sensor.so"/>. </SENSOR> </PLUGIN> 28 28

29 Load sensor plugins How to make libaccel_sensor.so # framework/system/sensord/src/accel/cmakelists.txt SET(SENSOR_NAME accel_sensor) SET(SENSOR_HAL_NAME accel_sensor_hal). add_library(${sensor_name} SHARED accel_sensor.cpp ) add_library(${sensor_hal_name} SHARED accel_sensor_hal.cpp ). install(targets ${SENSOR_NAME} DESTINATION lib/sensord) install(targets ${SENSOR_HAL_NAME} DESTINATION lib/sensord) Hardware sensor provides two shared libraries. One is based on sensor_base and The other is based on sensor_hal

30 TIZEN SENSOR 30 30

31 Tizen Sensor Hardware Sensor Accelerometer sensor Gyroscope sensor Proximity sensor Geomagnetic sensor Light sensor Virtual Sensor Motion sensor Gravity sensor Orientation sensor 31 31

32 Accelerometer sensor Accelerometer sensor The accelerometer sensor is used to measure the acceleration of the device. The three dimensional coordinate system is used to illustrate the direction of the acceleration. When a phone is moving along an axis, the acceleration is positive if it moves in a positive direction. The acceleration sensor measures changes in velocity. It can also be used to determine orientation. The acceleration sensor measures the device's acceleration vector in 3 axes relative to its body frame

33 Accelerometer sensor Accelerometer sensor A 1 g acceleration shift always exists due to gravity. You must compensate for the gravitational pull of the Earth to detect device movement by subtracting the gravity offset. If the device is at rest, or the device is falling and has reached terminal velocity, the sensor data reads 1g (the gravity offset) and tells you the direction of gravity

34 Accelerometer sensor 34 34

35 Accelerometer sensor 35 35

36 Gyroscope sensor Gyroscope sensor A gyroscope is a device used primarily for navigation and measurement of angular velocity. Gyroscopes measure how quickly an object rotates. This rate of rotation can be measured along any of the three axes X, Y, and Z. The gyro sensor detects angular velocity, which is calculated using the measurement data retrieved from a 3-axis gyroscope 36 36

37 Gyroscope sensor 37 37

38 Gyroscope sensor 38 38

39 Proximity sensor Proximity sensor A proximity sensor can detect the presence of nearby objects without any physical contact. That is, it indicates if the device is close or not close to the user. Use the proximity sensor to lock or unlock the device screen. For example, when the device user holds the device to the ear, the proximity sensor detects the user as an object, and automatically locks the device screen. When the user moves the device away from the ear to input data, the proximity sensor determines that there is not a nearby object, and unlocks the screen

40 Geomagnetic sensor Geomagnetic sensor A geomagnetic sensor indicates the strength of the geomagnetic flux density in the X, Y, and Z axes. This sensor is used to find the orientation of a body, which is a description of how it is aligned to the space it is in

41 Light sensor Light sensor A light sensor measures the amount of light that it receives or the surrounding light conditions. The ambient light state is measured as a step value, where 0 is very dark and 10 is bright sunlight. Use the light sensor to control the brightness of the screen. For example, if you are in a dark environment, the light sensor detects the brightness of the environment and increases the device screen backlight brightness level. In a brighter environment, the backlight brightness level is lowered to save battery power

42 Light sensor 42 42

43 Gravity sensor Gravity sensor The gravity sensor is originated from the 3-axis acceleration sensor. Measures the vector components of gravity when the device is at reset or moving slowly. Provides 3 components of acceleration (X,Y,Z) 43 43

44 Gravity sensor 44 44

45 Orientation sensor Orientation sensor The orientation sensor is originated from the 3-axis acceleration sensor. The following 3 rotation axes indicate the angle between the gravity vector and projection of the gravity vector. Yaw, Pitch, Roll 45 45

46 Orientation sensor 46 46

47 Motion sensor Motion sensor A motion sensor is a virtual sensor that uses the accelerometer and gyroscope sensors. Motion sensor detects snap, panning, tilt, shake, overturn, and double tap event

48 LAB 48 48

49 Lab Understand OAL concepts and do practice. Develop a new motion detect sensor based on virtual sensor 49 49

50 Hardware sensors and Virtual sensors Hardware sensor Have to support three interfaces namely sensor_base, physical_sensor and sensor_hal Ex) Accelerometer sensor, Geomagnetic Sensor, Gyroscope Sensor, Light Sensor, Pressure Sensor etc. Virtual sensor Have to support two interfaces namely sensor_base and virtual_sensor Ex) Orientation Sensor, Gravity Sensor, Rotation Vector Sensor, Linear Acceleration Sensor etc

51 Type of sensor Example of Hardware sensor and Virtual sensor Hardware sensor Virtual sensor 51 51

52 Interfaces of sensor sensor_base Connects the sensor plugin to the sensor server Passes on configuration and control information from server to sensor_hal Receives raw sensor data from sensor_hal and sends to server Further processing of raw sensor data to generate sensor events physical_sensor Initializes plugin polling thread for getting sensor data from driver Pushes sensor event from the plugin to the server event queue 52 52

53 Interfaces of sensor sensor_hal Connects with the sensor_base interface Configuration of sensor drivers Reads raw sensor data from the sensor driver Control of the sensors through the driver virtual_sensor Synthesizes virtual sensor events based on sensor events received from hardware sensors

54 Assignment Develop a new motion detect sensor A new motion detect sensor is based on Virtual sensor. When sensor detects left-shake motion, output of sensor is 1. When sensor detects right-shake motion, output of sensor is 2. When sensor detects nothing, output of sensor is

55 New motion sensor To do list 5. Add definition of new sensor enumeration type in sensor_type_t in /framework/api/sensor/src/sensor.c and sensor_type_e in sensor/include/sensor.h 3. Add definition of new sensor enumeration type in sensor_type_t in the file shared/sensor_common.h and new sensor event definition header file in libsensord folder. 4. Update new sensor event information in libsensord/client_common.cpp 2. Register new motion sensor to Virtual Sensor XML Configuration File, sensor_plugins.xml File and /sensord/packaging/sensord.spec File 1. Make new motion sensor based on sensor_base and virtual_sensor 55 55

56 Conclusion Studied about OAL concepts and practical uses Understand about the operation of Tizen Sensor plugin and Architecture Can make new Motion Sensor in Tizen and build/port it to device 56 56

57 SUPPLEMENT 57 57

58 TIZEN OAL IN DEVICE 58 58

59 Tizen OAL in device OAL in device OEM developers should implement API defined in devman_plugin_intf.h and compile their library as libslp_devman_plugin.so. OEM APIs can be grouped as power, battery, haptics, LED, light and memory

60 Tizen OAL in device Flow graph Application daemon Library API IPC Function call deviced libdevice-node (OAL) Kernel node 60 60

61 Example of using OAL in device Application calls device_display_get _brightness() # display_application.c static Evas_Object *create_content(evas_object* parent, Eina_Bool is_horizontal) { Evas_Object *slider, *check; int brightness = 0; slider = create_slider(main_box); elm_slider_horizontal_set(slider, is_horizontal); device_display_get_brightness(0,&brightness); elm_slider_value_set(slider, brightness/10); evas_object_show(slider); Create slider bar with current brightness in Application } return scroller; 61 61

62 Example of using OAL in device Sensor API uses IPC # /framework/api/device/src/display.c #define METHOD_GET_MAX_BRIGHTNESS "GetMaxBrightness" int device_display_get_brightness(int display_index, int *brightness) { int ret; ret = dbus_method_sync( DEVICED_BUS_NAME, DEVICED_PATH_DISPLAY, DEVICED_INTERFACE_DISPLAY, METHOD_GET_BRIGHTNESS, NULL, NULL); 1. Connects to a bus daemon and registers the client with it. 2. Constructs a new message to invoke a method 3. Send a message and blocks a certain period while waiting for a reply 4. Gets arguments from message given a variable argument list. } *brightness = ret; return DEVICE_ERROR_NONE; 62 62

63 Example of using OAL in device device daemon gets the value and reply with IPC # /framework/system/deivced/src/display/display-dbus.c static DBusMessage *edbus_getbrightness (E_DBus_Object *obj, DBusMessage *msg) { DBusMessageIter iter; DBusMessage *reply; int cmd, brt, ret; cmd = DISP_CMD(PROP_DISPLAY_BRIGHTNESS, DEFAULT_DISPLAY); ret = device_get_property(device_type_display, cmd, &brt); 1. Constructs a message that is a reply to method call. 2. Initializes a DBusMessagelter for appending arguments to the end of a message. 3. Append value to the message. } if (ret >= 0) ret = brt; reply = dbus_message_new_method_return(msg); dbus_message_iter_init_append(reply, &iter); dbus_message_iter_append_basic(&iter, DBUS_TYPE_INT32, &brt); return reply; 63 63

64 Example of using OAL in device Composition of function device_get_property # /framework/system/libdevice-node/src/device-node.c API int device_get_property(enum device_type devtype, int property, int *value) { struct device *dev; enum device_type *type; int r; type = find_device(devtype); dev = container_of(type, struct device, type); r = dev->get_prop(property, value); 1. Finds device_type pointer which value is equal with devtype. 2. Returns a pointer to the containing structure. } errno = 0; return 0; 64 64

65 Example of using OAL in device Composition of function display_get_prop # /framework/system/libdevice-node/devices/display.c static int display_get_prop(int prop, int *val) { int prop = PROPERTY_PROP( prop); int index = PROPERTY_INDEX( prop); int disp_cnt; int r; r = PLUGIN_GET(display_count)(&disp_cnt); switch (prop) { case PROP_DISPLAY_BRIGHTNESS: return PLUGIN_GET(backlight_brightness)(index, val, 0); } case PROP_DISPLAY_ONOFF: return PLUGIN_GET(lcd_power)(index, val); } return -1; 65 65

66 Example of using OAL in device How to convert definition to OEM_function # /framework/system/libdevice-node/include/deviceinternal.h #define DEF_SYS(node) #define DEF_GET(node) #define DEF_SET(node) #define OEM_SYS(node) #define OEM_GET(node) #define OEM_SET(node) default_intf->oem_sys_##node default_intf->oem_sys_get_##node default_intf->oem_sys_set_##node oem_intf->oem_sys_##node oem_intf->oem_sys_get_##node oem_intf->oem_sys_set_##node #define PLUGIN_SYS(node) (oem_intf && OEM_SYS(node)? OEM_SYS(node) : DEF_SYS(node)) #define PLUGIN_GET(node) (oem_intf && OEM_GET(node)? OEM_GET(node) : DEF_GET(node)) #define PLUGIN_SET(node) (oem_intf && OEM_SET(node)? OEM_SET(node) : DEF_SET(node)) extern const OEM_sys_devman_plugin_interface *oem_intf; extern const OEM_sys_devman_plugin_interface *default_intf; 66 66

67 Example of using OAL in device Plugin with libdevice-node-generic.so and libslp_devman_plugin.so # /framework/system/libdevice-node/src/device-node.c #define DEVMAN_PLUGIN_PATH "/usr/lib/libslp_devman_plugin.so" #define DEFAULT_PLUGIN_PATH "/usr/lib/libdevice-node-generic.so" static void CONSTRUCTOR module_init(void) { oem_intf = get_plugin_intf(devman_plugin_path, &oem_handle); } default_intf = get_plugin_intf(default_plugin_path, &default_handle); 67 67

68 Example of using OAL in device Plugin with Dynamic Loading # /framework/system/libdevice-node/src/device-node.c static const OEM_sys_devman_plugin_interface *get_plugin_intf(const char *path, void **phandle) { const OEM_sys_devman_plugin_interface *(*OEM_sys_get_devman_plugin_interface) (); const OEM_sys_devman_plugin_interface *plugin; void *handle; char *error; handle = dlopen(path, RTLD_NOW); OEM_sys_get_devman_plugin_interface = dlsym(handle, "OEM_sys_get_devman_plugin_interface"); plugin = OEM_sys_get_devman_plugin_interface(); } *phandle = handle; return plugin; 68 68

69 Example of using OAL in device Install the OEM library as libslp_devman_plugin.so to /usr/lib # /adaptation/ap_samsung/device-manager-pluginexynos/cmakelists.txt PROJECT(slp_devman_plugin C) ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS}) SET(SRCS src/device_manager_io.c src/device_manager_plugin_exynos.c ) INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib COMPONENT RuntimeLibraries) /* # define DEVMAN_PLUGIN_PATH "/usr/lib/libslp_devman_plugin.so */ 69 69

70 Example of using OAL in device Install the OEM library as libslp_devman_plugin.so to /usr/lib # /adaption/ap_samsung/device-manager-pluginexynos/src/device_manager_plugin_exynos.c int OEM_sys_get_backlight_brightness(int index, int *value, int power_saving) { int ret = -1; char path[max_name+1]; int max_brightness; int pwr_saving_offset; snprintf(path, MAX_NAME, BACKLIGHT_BRIGHTNESS_PATH, disp_info[index].bl_name); ret = sys_get_int(path, value); if (power_saving){ The value of backlight brightness is came from the file which path is BACKLIGHT_BRIGHTNESS_PATH. }.. } return ret; 70 70

71 Example of using OAL in device Install the OEM library as libdevice-node-generic.so to /usr/lib # /framework/system/libdevice-node/plugins/cmakelist.txt PROJECT(device-node-generic C) ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS}) INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib COMPONENT RuntimeLibraries) # /framework/system/libdevice-node/plugins/device-nodegeneric.c #define BATTERY_CAPACITY_PATH "/sys/class/power_supply/battery/capacity \ static int OEM_sys_get_battery_capacity(int *value) { char buf[buf_max]; int r; } r = read_buf(battery_capacity_path, buf, sizeof(buf)); *value = atoi(buf); return 0; 71 71

72 Tizen OAL Functions Examples of Tizen OAL Functions Function Prototype int (*OEM_sys_set_power_state) (int value); Description (0-success, others -failure) The function sets the device to suspend mode (0: Suspend Mode). int (*OEM_sys_get_power_wakeup_count) (int *value); The function gets the current wakeup_count. int (*OEM_sys_set_power_wakeup_count) (int value); The function sets the wakeup_count with input value. int (*OEM_sys_get_cpufreq_cpuinfo_max_freq) (int *value); The function gets the limitation of max cpu frequency value : cpu frequency (KHz). int (*OEM_sys_get_cpufreq_cpuinfo_min_freq) (int *value); The function gets the limitation of min cpu frequency value : cpu frequency (KHz). int (*OEM_sys_get_cpufreq_scaling_max_freq) (int *value); The function gets the current max cpu frequency(cpuinfo_min_freq <= value <= CPUINFO_MAX_FREQ in KHz). int (*OEM_sys_set_cpufreq_scaling_max_freq) (int value); The function sets the current max cpu frequency (CPUINFO_MIN_FREQ <= value <= CPUINFO_MAX_FREQ in KHz). int (*OEM_sys_get_cpufreq_scaling_min_freq) (int *value); The function gets the current min cpu frequency (CPUINFO_MIN_FREQ <= value <= CPUINFO_MAX_FREQ in KHz). int (*OEM_sys_set_cpufreq_scaling_min_freq) (int value); The function sets the current min cpu frequency (CPUINFO_MIN_FREQ <= value <= CPUINFO_MAX_FREQ in KHz)

73 Tizen OAL Functions Examples of Tizen OAL Functions Function Prototype int (*OEM_sys_get_backlight_max_brightness) (int index, int *value) Description (0: Success, Others: Failed) The function gets the max brightness of backlight unit. Int (*OEM_sys_get_backlight_min_brightness) (int index, int *value) The function gets the min brightness of backlight unit. int (*OEM_sys_get_backlight_brightness) (int index, int *value, int power_saving) The function gets the current brightness of backlight unit(0 <= value <= MAX_BACKLIGHT_BRIG HTNESS). int (*OEM_sys_set_backlight_brightness) (int index, int value, int power_saving) The function sets the current brightness of backlight unit(0 <= value <= MAX_BACKLIGHT_BRIG HTNESS). int (*OEM_sys_set_backlight_dimming) (int index, int value) The function sets the dimming status of backlight unit (0: Off, 1: On). int (*OEM_sys_get_backlight_acl_control) (int index, int *value) The function gets the current ACL control status of backlight unit (0: Off, 1: On). int (*OEM_sys_set_backlight_acl_control) (int index, int value) The function sets the current ACL control status of backlight unit (0: Off, 1: On). int (*OEM_sys_get_lcd_power) (int index, int *value) The function gets the current LCD power status (0: Off, 1: On). int (*OEM_sys_set_lcd_power) (int index, int value) The function sets the current LCD power status (0: Off, 1: On)

Tizen Sensors (Tizen Ver. 2.3)

Tizen Sensors (Tizen Ver. 2.3) Tizen Sensors (Tizen Ver. 2.3) Spring 2015 Soo Dong Kim, Ph.D. Professor, Department of Computer Science Software Engineering Laboratory Soongsil University Office 02-820-0909 Mobile 010-7392-2220 sdkim777@gmail.com

More information

Sphero Lightning Lab Cheat Sheet

Sphero Lightning Lab Cheat Sheet Actions Tool Description Variables Ranges Roll Combines heading, speed and time variables to make the robot roll. Duration Speed Heading (0 to 999999 seconds) (degrees 0-359) Set Speed Sets the speed of

More information

Android System Development Day - 3. By Team Emertxe

Android System Development Day - 3. By Team Emertxe Android System Development Day - 3 By Team Emertxe Table of Content Android HAL Overview Sensor HAL Understanding data structures and APIs Adding support for a new sensor Writing test application for Sensor

More information

CrossWorks Device Library

CrossWorks Device Library Version: 3.3 2014 Rowley Associates Limited 2 Contents Contents... 15 Protocol API Reference... 17 ... 17 CTL_PARALLEL_BUS_t... 18 ctl_bus_lock... 19 ctl_bus_lock_ex... 20 ctl_bus_read... 21

More information

Programs. Function main. C Refresher. CSCI 4061 Introduction to Operating Systems

Programs. Function main. C Refresher. CSCI 4061 Introduction to Operating Systems Programs CSCI 4061 Introduction to Operating Systems C Program Structure Libraries and header files Compiling and building programs Executing and debugging Instructor: Abhishek Chandra Assume familiarity

More information

HCOMM Reference Manual

HCOMM Reference Manual HCOMM Reference Manual Document Number: 1000-2984 Document Revision: 0.3.2 Date: December 23, 2013 November 21, 2013 1000-2984 Revision 0.3.1 1 / 49 Copyright 2012, Hillcrest Laboratories, Inc. All rights

More information

SH-2 Reference Manual

SH-2 Reference Manual SH-2 Reference Manual Document Number: 1000-3625 Document Revision: 1.2 Date: 05/19/2017 Hillcrest Laboratories, Inc. 15245 Shady Grove Road, Suite 400 Rockville, MD 20850 Copyright 2017 Hillcrest Labs,

More information

Arduino Uno. Power & Interface. Arduino Part 1. Introductory Medical Device Prototyping. Digital I/O Pins. Reset Button. USB Interface.

Arduino Uno. Power & Interface. Arduino Part 1. Introductory Medical Device Prototyping. Digital I/O Pins. Reset Button. USB Interface. Introductory Medical Device Prototyping Arduino Part 1, http://saliterman.umn.edu/ Department of Biomedical Engineering, University of Minnesota Arduino Uno Power & Interface Reset Button USB Interface

More information

Spring Lecture 9 Lecturer: Omid Jafarinezhad

Spring Lecture 9 Lecturer: Omid Jafarinezhad Mobile Programming Sharif University of Technology Spring 2016 - Lecture 9 Lecturer: Omid Jafarinezhad Sensors Overview Most Android-powered devices have built-in sensors that measure motion, orientation,

More information

UM2220. Getting started with MotionFX sensor fusion library in X-CUBE-MEMS1 expansion for STM32Cube. User manual. Introduction

UM2220. Getting started with MotionFX sensor fusion library in X-CUBE-MEMS1 expansion for STM32Cube. User manual. Introduction User manual Getting started with MotionFX sensor fusion library in X-CUBE-MEMS1 expansion for STM32Cube Introduction The MotionFX is a middleware library component of the X-CUBE-MEMS1 software and runs

More information

ITP 342 Mobile App Dev. Accelerometer Gyroscope

ITP 342 Mobile App Dev. Accelerometer Gyroscope ITP 342 Mobile App Dev Accelerometer Gyroscope Motion Events Users generate motion events when they move, shake, or tilt the device These motion events are detected by the device hardware, specifically,

More information

XDK HARDWARE OVERVIEW

XDK HARDWARE OVERVIEW XDK HARDWARE OVERVIEW Agenda 1 General Overview 2 3 4 Sensors Communications Extension Board 2 General Overview 1. General Overview What is the XDK? The Cross-Domain Development Kit, or XDK, is a battery

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

Linux based 3G Multimedia Mobile-phone API Specification

Linux based 3G Multimedia Mobile-phone API Specification Linux based 3G Multimedia Mobile-phone API Specification [AP Framework] Draft 1.0 NEC Corporation Panasonic Mobile Communication Ltd. 1 Contents Preface...4 1. MSB...5 1.1Generating an Object...5 1.2 Destroying

More information

CMMotionManager Overview

CMMotionManager Overview MSDOSX Core Motion CMMotionManager Overview A CMMotionManager object is the gateway Accelerometer data Rotation-rate data Magnetometer data Other device-motion data such as attitude Create one instance

More information

LPMS-B Reference Manual

LPMS-B Reference Manual INTRODUCTION LPMS-B Reference Manual Version 1.0.12 2012 LP-RESEARCH 1 INTRODUCTION I. INTRODUCTION Welcome to the LP-RESEARCH Motion Sensor Bluetooth version (LPMS-B) User s Manual! In this manual we

More information

Navigational Aids 1 st Semester/2007/TF 7:30 PM -9:00 PM

Navigational Aids 1 st Semester/2007/TF 7:30 PM -9:00 PM Glossary of Navigation Terms accelerometer. A device that senses inertial reaction to measure linear or angular acceleration. In its simplest form, it consists of a case-mounted spring and mass arrangement

More information

ITP 342 Mobile App Dev. Accelerometer Gyroscope

ITP 342 Mobile App Dev. Accelerometer Gyroscope ITP 342 Mobile App Dev Accelerometer Gyroscope Motion Events Users generate motion events when they move, shake, or tilt the device These motion events are detected by the device hardware, specifically,

More information

LPMS-B Reference Manual

LPMS-B Reference Manual INTRODUCTION LPMS-B Reference Manual Version 1.1.0 2013 LP-RESEARCH www.lp-research.com 1 INTRODUCTION I. INTRODUCTION Welcome to the LP-RESEARCH Motion Sensor Bluetooth version (LPMS-B) User s Manual!

More information

navigation Isaac Skog

navigation Isaac Skog Foot-mounted zerovelocity aided inertial navigation Isaac Skog skog@kth.se Course Outline 1. Foot-mounted inertial navigation a. Basic idea b. Pros and cons 2. Inertial navigation a. The inertial sensors

More information

Artemis SDK. Copyright Artemis CCD Limited October 2011 Version

Artemis SDK. Copyright Artemis CCD Limited October 2011 Version Artemis SDK Copyright Artemis CCD Limited October 2011 Version 3.55.0.0 Introduction The Artemis Software Development Kit (SDK) provides easy access to the functions in the Artemis camera driver DLL. Using

More information

Introduction: Before start doing any code, there is some terms that one should be familiar with:

Introduction: Before start doing any code, there is some terms that one should be familiar with: Introduction: D-Bus is a message bus system, a simple way for applications to talk to one another, D-Bus supplies a system and a session daemons. The system daemon is launched at the system startup level

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

Application Note AN10 RTLS TDOA Platform Components Comparison

Application Note AN10 RTLS TDOA Platform Components Comparison Application Note AN10 TDOA Platform Components Comparison 1 Brief Changelog v1.1 No changes Important Changes Position Algorithm API Database Manager v1.12 v1.21 API for Building plans API /tags /anchor

More information

BNO055 Quick start guide

BNO055 Quick start guide BNO055 Quick start guide Bosch Sensortec Application note: BNO055 Quick start guide Document revision 1.0 Document release date Document number Mar.2015 BST-BNO055-AN007-00 Technical reference code 0 273

More information

Mio- x AHRS. Attitude and Heading Reference System. Engineering Specifications

Mio- x AHRS. Attitude and Heading Reference System. Engineering Specifications General Description Mio- x AHRS Attitude and Heading Reference System Engineering Specifications Rev. G 2012-05-29 Mio-x AHRS is a tiny sensormodule consists of 9 degree of freedom motion sensors (3 accelerometers,

More information

A Case Study of Mobile Application Development. Wei Dong Samsung Electronics

A Case Study of Mobile Application Development. Wei Dong Samsung Electronics A Case Study of Mobile Application Development Wei Dong Samsung Electronics Content Tizen Application Development Practices of Tizen Application Development Performance optimization Memory usage Database

More information

Computer Systems Assignment 2: Fork and Threads Package

Computer Systems Assignment 2: Fork and Threads Package Autumn Term 2018 Distributed Computing Computer Systems Assignment 2: Fork and Threads Package Assigned on: October 5, 2018 Due by: October 12, 2018 1 Understanding fork() and exec() Creating new processes

More information

Emulation 2. G. Lettieri. 15 Oct. 2014

Emulation 2. G. Lettieri. 15 Oct. 2014 Emulation 2 G. Lettieri 15 Oct. 2014 1 I/O examples In an emulator, we implement each I/O device as an object, or a set of objects. The real device in the target system is connected to the CPU via an interface

More information

Faust Android API. Using This Package

Faust Android API. Using This Package Faust Android API This API allows to interact with a natively compiled Faust object and its associated audio engine at a very high level from the JAVA layer of an Android app. The idea is that all the

More information

TKT-2301 Exercise API Last updated

TKT-2301 Exercise API Last updated TKT-2301 Exercise API Last updated 28.7.2010 TKT-2301 Exercise API... 1 Installation application... 2 Wireless sensor network exercise message types... 5 XML interface... 10 RSS... 11 WSNgadget (XML Demo)...

More information

Me 3-Axis Accelerometer and Gyro Sensor

Me 3-Axis Accelerometer and Gyro Sensor Me 3-Axis Accelerometer and Gyro Sensor SKU: 11012 Weight: 20.00 Gram Description: Me 3-Axis Accelerometer and Gyro Sensor is a motion processing module. It can use to measure the angular rate and the

More information

Signal Example 1. Signal Example 2

Signal Example 1. Signal Example 2 Signal Example 1 #include #include void ctrl_c_handler(int tmp) { printf("you typed CTL-C, but I don't want to die!\n"); int main(int argc, char* argv[]) { long i; signal(sigint, ctrl_c_handler);

More information

Introduction. How to obtain the Board. About the Board. Contact Preet

Introduction. How to obtain the Board. About the Board. Contact Preet SJOne Board Introduction Getting Started Basic IO Serial Communication Libraries Internal Component Libraries External Components Debugging a crash FreeRTOS Services Command Line Interface Adding Additional

More information

CSE 333 Final Exam June 6, 2017 Sample Solution

CSE 333 Final Exam June 6, 2017 Sample Solution Question 1. (24 points) Some C and POSIX I/O programming. Given an int file descriptor returned by open(), write a C function ReadFile that reads the entire file designated by that file descriptor and

More information

CSE 509: Computer Security

CSE 509: Computer Security CSE 509: Computer Security Date: 2.16.2009 BUFFER OVERFLOWS: input data Server running a daemon Attacker Code The attacker sends data to the daemon process running at the server side and could thus trigger

More information

CISC2200 Threads Spring 2015

CISC2200 Threads Spring 2015 CISC2200 Threads Spring 2015 Process We learn the concept of process A program in execution A process owns some resources A process executes a program => execution state, PC, We learn that bash creates

More information

CYTON ALPHA 7D 1G. Operations Manual

CYTON ALPHA 7D 1G. Operations Manual CYTON ALPHA 7D 1G Operations Manual Robai PO Box 37635 #60466 Philadelphia, PA 19101-0635 Copyright 2008 Robai. All Rights Reserved. Copyright 2008 Robai. All Rights Reserved. 2 Copyright 2008 Robai. All

More information

pthreads CS449 Fall 2017

pthreads CS449 Fall 2017 pthreads CS449 Fall 2017 POSIX Portable Operating System Interface Standard interface between OS and program UNIX-derived OSes mostly follow POSIX Linux, macos, Android, etc. Windows requires separate

More information

Common Misunderstandings from Exam 1 Material

Common Misunderstandings from Exam 1 Material Common Misunderstandings from Exam 1 Material Kyle Dewey Stack and Heap Allocation with Pointers char c = c ; char* p1 = malloc(sizeof(char)); char** p2 = &p1; Where is c allocated? Where is p1 itself

More information

GPS + Inertial Sensor Fusion

GPS + Inertial Sensor Fusion GPS + Inertial Sensor Fusion Senior Project Proposal Aleksey Lykov, William Tarpley, Anton Volkov Advisors: Dr. In Soo Ahn, Dr. Yufeng Lu Date: November 26, 2013 Project Summary The objective of this project

More information

Faust ios API. Using This Package

Faust ios API. Using This Package Faust ios API This API allows to interact with a Faust object and its associated audio engine on ios at a high level. The idea is that all the audio part of the app is implemented in Faust allowing developers

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

Core object model EO / EFL++

Core object model EO / EFL++ Core object model EO / EFL++ Carsten Haitzler Samsung Electronics Principal Engineer Enlightenment/EFL Founder c.haitzler@samsung.com EFL + Elementary 2 A toolkit somwhere between GTK+ and Qt in breadth

More information

Getting Familiar with CCN

Getting Familiar with CCN Getting Familiar with CCN 1 Project Goal In this project you will experiment with simple client/server programs in CCN to familiarize yourselves with the CCN basics. You will compile, run, and answer the

More information

Getting started with osxmotiongc gyroscope calibration library for X-CUBE-MEMS1 expansion for STM32Cube

Getting started with osxmotiongc gyroscope calibration library for X-CUBE-MEMS1 expansion for STM32Cube UM2162 User manual Getting started with osxmotiongc gyroscope calibration library for X-CUBE-MEMS1 expansion for STM32Cube Introduction The osxmotiongc add-on software package for X-CUBE-MEMS1 software

More information

Movit System G1 WIRELESS MOTION DEVICE SYSTEM

Movit System G1 WIRELESS MOTION DEVICE SYSTEM Movit System G1 WIRELESS MOTION DEVICE SYSTEM 1 INTRODUCTION The Movit System G1 incorporates multiple wireless motion devices (Movit G1) with the Dongle G1 station, dedicated software and a set of full

More information

C++ Programming Chapter 7 Pointers

C++ Programming Chapter 7 Pointers C++ Programming Chapter 7 Pointers Yih-Peng Chiou Room 617, BL Building (02) 3366-3603 ypchiou@cc.ee.ntu.edu.tw Photonic Modeling and Design Lab. Graduate Institute of Photonics and Optoelectronics & Department

More information

HiKey970. I2C Development Guide. Issue 01. Date

HiKey970. I2C Development Guide. Issue 01. Date Issue 01 Date 2018-03-11 2018. All rights reserved. No part of this document may be reproduced or transmitted in any form or by any means without prior written consent of HiSilicon Technologies Co., Ltd.

More information

Preface...3 Acknowledgments...4. Contents...5. List of Figures...17

Preface...3 Acknowledgments...4. Contents...5. List of Figures...17 Contents - 5 Contents Preface...3 Acknowledgments...4 Contents...5 List of Figures...17 Introduction...23 History of Delphi...24 Delphi for mobile platforms...27 About this book...27 About the author...29

More information

Iotivity Programmer s Guide Soft Sensor Manager for Tizen

Iotivity Programmer s Guide Soft Sensor Manager for Tizen Iotivity Programmer s Guide Soft Sensor Manager for Tizen 1 CONTENTS 2 Introduction... 3 3 Terminology... 3 3.1 Physical Sensor Application... 3 3.2 Soft Sensor (Logical Sensor, Virtual Sensor)... 3 3.3

More information

Studuino Block Programming Environment Guide

Studuino Block Programming Environment Guide Studuino Block Programming Environment Guide [DC Motors and Servomotors] This is a tutorial for the Studuino Block programming environment. As the Studuino programming environment develops, these instructions

More information

OCF for resource-constrained environments

OCF for resource-constrained environments October 11 13, 2016 Berlin, Germany OCF for resource-constrained environments Kishen Maloor, Intel 1 Outline Introduction Brief background in OCF Core Constrained environment charactertics IoTivity-Constrained

More information

Hardware Flow Offload. What is it? Why you should matter?

Hardware Flow Offload. What is it? Why you should matter? Hardware Offload What is it? Why you should matter? Good News: Network Speed The market is moving from 10 Gbit to 40/100 Gbit At 40 Gbit frame inter-arrival time is ~16 nsec At 100 Gbit frame inter-arrival

More information

MAD Gaze x HKCS. Best Smart Glass App Competition Developer Guidelines VERSION 1.0.0

MAD Gaze x HKCS. Best Smart Glass App Competition Developer Guidelines VERSION 1.0.0 MAD Gaze x HKCS Best Smart Glass App Competition Developer Guidelines VERSION 1.0.0 20 MAY 2016 Table of Contents 1. Objective 2. Hardware Specification 3. Operating MAD Gaze 4. Hardware Sensors 4.1 Accelerometer

More information

CSX600 Runtime Software. User Guide

CSX600 Runtime Software. User Guide CSX600 Runtime Software User Guide Version 3.0 Document No. 06-UG-1345 Revision: 3.D January 2008 Table of contents Table of contents 1 Introduction................................................ 7 2

More information

Visual Profiler. User Guide

Visual Profiler. User Guide Visual Profiler User Guide Version 3.0 Document No. 06-RM-1136 Revision: 4.B February 2008 Visual Profiler User Guide Table of contents Table of contents 1 Introduction................................................

More information

Selection and Integration of Sensors Alex Spitzer 11/23/14

Selection and Integration of Sensors Alex Spitzer 11/23/14 Selection and Integration of Sensors Alex Spitzer aes368@cornell.edu 11/23/14 Sensors Perception of the outside world Cameras, DVL, Sonar, Pressure Accelerometers, Gyroscopes, Magnetometers Position vs

More information

Autonomous Navigation for Flying Robots

Autonomous Navigation for Flying Robots Computer Vision Group Prof. Daniel Cremers Autonomous Navigation for Flying Robots Lecture 3.2: Sensors Jürgen Sturm Technische Universität München Sensors IMUs (inertial measurement units) Accelerometers

More information

Tizen 2.3 TBT User Guide

Tizen 2.3 TBT User Guide Tizen 2.3 TBT User Guide Revision History Date Version History Writer Reviewer 19-Sep-2014 1.0 First version of document Md. Nazmus Saqib Rezwanul Huq Shuhan 1-Oct-2014 2.0 Second version of document Md.

More information

ADVENTURE_IO Input/Output format and libraries for ADVENTURE modules List of Input/Output Functions February 17, 2006

ADVENTURE_IO Input/Output format and libraries for ADVENTURE modules List of Input/Output Functions February 17, 2006 ADVENTURE_IO Input/Output format and libraries for ADVENTURE modules List of Input/Output Functions February 17, 2006 ADVENTURE Project Contents 1. Open/Close of Adv file... 3 2. Open/Close of AdvDocument...

More information

User Manual V K Camera with an Integrated 3-axis Gimbal

User Manual V K Camera with an Integrated 3-axis Gimbal User Manual V 1.1 4K Camera with an Integrated 3-axis Gimbal Table of Contents Introduction 3 At a Glance 3 Charging the Battery 4 Status Battery LED Indicator Description 4 Check the Battery Level 5 Insert

More information

Extensions to Barrelfish Asynchronous C

Extensions to Barrelfish Asynchronous C Extensions to Barrelfish Asynchronous C Michael Quigley michaelforrquigley@gmail.com School of Computing, University of Utah October 27, 2016 1 Abstract The intent of the Microsoft Barrelfish Asynchronous

More information

M-Navigator-EX User Guide

M-Navigator-EX User Guide M-Navigator-EX User Guide Thank you for choosing Ascendent s Marine Deployment Kit (Shark MDK) M-Navigator-EX - PAL Video Format - 100mm Fixed f/1.6 Thermal Imager - 43x High-Res Optical Camera - Gryo-stablized

More information

CyberAtom X-202 USER MANUAL. Copyrights Softexor 2015 All Rights Reserved.

CyberAtom X-202 USER MANUAL. Copyrights Softexor 2015 All Rights Reserved. CyberAtom X-202 USER MANUAL Copyrights Softexor 2015 All Rights Reserved. X-202 Contents ii Contents About...5 Block Diagram... 5 Axes Conventions...5 System Startup... 6 Hardware Reset...6 LED indicator...

More information

Product information. Hi-Tech Electronics Pte Ltd

Product information. Hi-Tech Electronics Pte Ltd Product information Introduction TEMA Motion is the world leading software for advanced motion analysis. Starting with digital image sequences the operator uses TEMA Motion to track objects in images,

More information

High Level Programming for GPGPU. Jason Yang Justin Hensley

High Level Programming for GPGPU. Jason Yang Justin Hensley Jason Yang Justin Hensley Outline Brook+ Brook+ demonstration on R670 AMD IL 2 Brook+ Introduction 3 What is Brook+? Brook is an extension to the C-language for stream programming originally developed

More information

Parallax LSM9DS1 9-axis IMU Module (#28065)

Parallax LSM9DS1 9-axis IMU Module (#28065) Web Site: www.parallax.com Forums: forums.parallax.com Sales: sales@parallax.com Technical:support@parallax.com Office: (916) 624-8333 Fax: (916) 624-8003 Sales: (888) 512-1024 Tech Support: (888) 997-8267

More information

UM2192. Getting started with MotionMC magnetometer calibration library in X-CUBE-MEMS1 expansion for STM32Cube. User manual.

UM2192. Getting started with MotionMC magnetometer calibration library in X-CUBE-MEMS1 expansion for STM32Cube. User manual. User manual Getting started with MotionMC magnetometer calibration library in X-CUBE-MEMS1 expansion for STM32Cube Introduction The MotionMC is a middleware library part of X-CUBE-MEMS1 software and runs

More information

I/O and Device Drivers

I/O and Device Drivers I/O and Device Drivers Minsoo Ryu Real-Time Computing and Communications Lab. Hanyang University msryu@hanyang.ac.kr Topics Covered I/O Components I/O Interface I/O Operations Device Drivers 2 I/O Components

More information

Linescan System Design for Robust Web Inspection

Linescan System Design for Robust Web Inspection Linescan System Design for Robust Web Inspection Vision Systems Design Webinar, December 2011 Engineered Excellence 1 Introduction to PVI Systems Automated Test & Measurement Equipment PC and Real-Time

More information

CSE 333 SECTION 3. POSIX I/O Functions

CSE 333 SECTION 3. POSIX I/O Functions CSE 333 SECTION 3 POSIX I/O Functions Administrivia Questions (?) HW1 Due Tonight Exercise 7 due Monday (out later today) POSIX Portable Operating System Interface Family of standards specified by the

More information

Ronin-M Release Notes

Ronin-M Release Notes Date : 2017.07.12 IMU Firmware : V 1.4 GCU Firmware : V 1.7 DJI Assistant App ios : V 1.1.28 DJI Ronin Assistant App Android : V 1.0.7 PC Assistant V 2.5 MAC Assistant V 2.5 Remote Controller Firmware

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

Maemo Diablo Source code for the LibOSSO RPC examples Training Material

Maemo Diablo Source code for the LibOSSO RPC examples Training Material Maemo Diablo Source code for the LibOSSO RPC examples Training Material February 9, 2009 Contents 1 Source code for the LibOSSO RPC examples 2 1.1 libosso-example-sync/libosso-rpc-sync.c..............

More information

2011 FIRST Robotics Competition Sensor Manual

2011 FIRST Robotics Competition Sensor Manual 2011 FIRST Robotics Competition Sensor Manual The 2011 FIRST Robotics Competition (FRC) sensors are outlined in this document. It is being provided as a courtesy, and therefore does not supersede any information

More information

Embedded Navigation Solutions. VN-100 User Manual. Firmware v Document Revision UM001 Introduction 1

Embedded Navigation Solutions. VN-100 User Manual. Firmware v Document Revision UM001 Introduction 1 Embedded Navigation Solutions VN-100 User Manual Firmware v2.1.0.0 Document Revision 2.41 UM001 Introduction 1 Document Information Title VN-100 User Manual Subtitle Inertial Navigation Modules Document

More information

CSC369 Lecture 2. Larry Zhang

CSC369 Lecture 2. Larry Zhang CSC369 Lecture 2 Larry Zhang 1 Announcements Lecture slides Midterm timing issue Assignment 1 will be out soon! Start early, and ask questions. We will have bonus for groups that finish early. 2 Assignment

More information

[CAMERA PROGRAMMER'S MANUAL] EMERGENT VISION TECHNOLOGIES INC March 3, 2013

[CAMERA PROGRAMMER'S MANUAL] EMERGENT VISION TECHNOLOGIES INC March 3, 2013 [CAMERA PROGRAMMER'S MANUAL] EMERGENT VISION TECHNOLOGIES INC 1.0.2 March 3, 2013 SUITE #239-552A CLARKE ROAD, COQUITLAM, V3J 0A3, B.C. CANADA WWW.EMERGENTVISIONTEC.COM Table of Contents CONTACT... 4 LEGAL...

More information

Camera Drones Lecture 2 Control and Sensors

Camera Drones Lecture 2 Control and Sensors Camera Drones Lecture 2 Control and Sensors Ass.Prof. Friedrich Fraundorfer WS 2017 1 Outline Quadrotor control principles Sensors 2 Quadrotor control - Hovering Hovering means quadrotor needs to hold

More information

Embedded Motion Driver Tutorial

Embedded Motion Driver Tutorial InvenSense Inc. 1197 Borregas Ave., Sunnyvale, CA 94089 U.S.A. Tel: +1 (408) 988-7339 Fax: +1 (408) 988-8104 Website: www.invensense.com Embedded Motion Driver 5.1.1 Tutorial A printed copy of this document

More information

CSC369 Lecture 2. Larry Zhang, September 21, 2015

CSC369 Lecture 2. Larry Zhang, September 21, 2015 CSC369 Lecture 2 Larry Zhang, September 21, 2015 1 Volunteer note-taker needed by accessibility service see announcement on Piazza for details 2 Change to office hour to resolve conflict with CSC373 lecture

More information

IMU06WP. What is the IMU06?

IMU06WP. What is the IMU06? IMU06 What is the IMU06? The IMU06 is a compact 6 degree of freedom inertial measurement unit. It provides 3 axis acceleration (maximum 10G) and angular velocities (maximum 300 degrees/s) on both CAN and

More information

NOTE: Debug and DebugSingle are the only MPI library configurations that will produce trace output.

NOTE: Debug and DebugSingle are the only MPI library configurations that will produce trace output. Trace Objects Trace Objects Introduction Use the Trace module to selectively produce trace output on a global and/or per-object basis for your application. You can specify the types of trace output when

More information

P2 Skype Demo: How To Interact With Skype

P2 Skype Demo: How To Interact With Skype P2 Skype Demo: How To Interact With Skype Martin Hamrle, Tomáš Klačko, Tomáš Plch, Ondřej Šerý, Petr Tůma + Technical Report No. 12/2006 October 2006 Distributed Systems Research Group, Department of Software

More information

Operating systems for embedded systems. Embedded Operating Systems

Operating systems for embedded systems. Embedded Operating Systems Operating systems for embedded systems Embedded operating systems How do they differ from desktop operating systems? Programming model Process-based Event-based How is concurrency handled? How are resource

More information

Cross-Domain Development Kit XDK110 Platform for Application Development

Cross-Domain Development Kit XDK110 Platform for Application Development Sensor Guide Cross-Domain Development Kit Platform for Application Development Bosch Connected Devices and Solutions : Data Sheet Document revision 2.1 Document release date 05.10.17 Workbench version

More information

MMA845xQ Sensor Toolbox User s Guide

MMA845xQ Sensor Toolbox User s Guide Freescale Semiconductor Document Number: MMA845xQSTUG User s Guide Rev. 1, 02/2012 MMA845xQ Sensor Toolbox User s Guide 1 Introduction The Freescale MMA845xQ sensor toolbox accelerometer kit provides hardware

More information

Lecture Topics. Announcements. Today: Operating System Overview (Stallings, chapter , ) Next: Processes (Stallings, chapter

Lecture Topics. Announcements. Today: Operating System Overview (Stallings, chapter , ) Next: Processes (Stallings, chapter Lecture Topics Today: Operating System Overview (Stallings, chapter 2.1-2.4, 2.8-2.10) Next: Processes (Stallings, chapter 3.1-3.6) 1 Announcements Consulting hours posted Self-Study Exercise #3 posted

More information

Processes (Intro) Yannis Smaragdakis, U. Athens

Processes (Intro) Yannis Smaragdakis, U. Athens Processes (Intro) Yannis Smaragdakis, U. Athens Process: CPU Virtualization Process = Program, instantiated has memory, code, current state What kind of memory do we have? registers + address space Let's

More information

LPMS Reference Manual

LPMS Reference Manual INTRODUCTION LPMS Reference Manual Version 1.3.4 LPMS-B (Standard / OEM) LPMS-CU (Standard / OEM) LPMS-CANAL LPMS-UARTAL LPMS-USBAL LPMS-CURS 1 INTRODUCTION I. INTRODUCTION Welcome to the LP-RESEARCH Motion

More information

There are, of course, many other possible solutions and, if done correctly, those received full credit.

There are, of course, many other possible solutions and, if done correctly, those received full credit. Question 1. (20 points) STL. Complete the function ChangeWords below. This function has as inputs a vector of strings, and a map of key-value pairs. The function should return a new vector

More information

RoboRemo User Manual v1.9.1

RoboRemo User Manual v1.9.1 RoboRemo User Manual v1.9.1 Table of Contents General Description...3 Bluetooth / WiFi / Ethernet / USB modules...4 Available interface items...6 Building the interface...8 Common edit s...9 Button edit

More information

3DM-GX1 Data Communications Protocol

3DM-GX1 Data Communications Protocol DCP Manual Version 3.1.02 3DM-GX1 Data Communications Protocol Little Sensors, Big Ideas www.microstrain.com 2010 by MicroStrain, Inc. 459 Hurricane Lane Suite 102 Williston, VT 05495 USA Phone: 802-862-6629

More information

Industrial I/O and You: Nonsense Hacks! Matt Ranostay Konsulko Group

Industrial I/O and You: Nonsense Hacks! Matt Ranostay Konsulko Group Industrial I/O and You: Nonsense Hacks! Matt Ranostay Konsulko Group Brief Introduction Been a contributor to the Industrial I/O system for about two years Any weird sensors

More information

Protection and System Calls. Otto J. Anshus

Protection and System Calls. Otto J. Anshus Protection and System Calls Otto J. Anshus Protection Issues CPU protection Prevent a user from using the CPU for too long Throughput of jobs, and response time to events (incl. user interactive response

More information

EMBEDDED SYSTEMS WITH ROBOTICS AND SENSORS USING ERLANG

EMBEDDED SYSTEMS WITH ROBOTICS AND SENSORS USING ERLANG EMBEDDED SYSTEMS WITH ROBOTICS AND SENSORS USING ERLANG Adam Lindberg github.com/eproxus HARDWARE COMPONENTS SOFTWARE FUTURE Boot, Serial console, Erlang shell DEMO THE GRISP BOARD SPECS Hardware & specifications

More information

Data Communication and Synchronization

Data Communication and Synchronization Software Development Kit for Multicore Acceleration Version 3.0 Data Communication and Synchronization for Cell Programmer s Guide and API Reference Version 1.0 DRAFT SC33-8407-00 Software Development

More information

Fall 2015 COMP Operating Systems. Lab #3

Fall 2015 COMP Operating Systems. Lab #3 Fall 2015 COMP 3511 Operating Systems Lab #3 Outline n Operating System Debugging, Generation and System Boot n Review Questions n Process Control n UNIX fork() and Examples on fork() n exec family: execute

More information

Praktikum Entwicklung von Mediensystemen mit ios

Praktikum Entwicklung von Mediensystemen mit ios Praktikum Entwicklung von Mediensystemen mit ios SS 2011 Michael Rohs michael.rohs@ifi.lmu.de MHCI Lab, LMU München Timeline Date Topic/Activity 5.5.2011 Introduction and Overview of the ios Platform 12.5.2011

More information