Introduction to Custom C/C++ Adapters for Freezer Monitoring Lite
- An overview of Custom C/C++ Adapters for SAP HANA Streaming Lite
- The steps in order to create and deploy a Custom C/C++ Adapter
- How to create a Makefile for a Custom C/C++ Adapter
- Tutorial: Streaming Analytics: Freezer Monitoring Tutorial
- Tutorial: Freezer Monitoring Lite Tutorial for Streaming Lite
- SAP HANA 2.0 system with minimum version SP02
- Streaming Analytics server running on SAP HANA
- C/C++ editor of your choice
- HANA Studio development environment,
Raspberry Pi 2microcontroller board setup running
Raspbianwith network connection for
Raspberry Piuser as
"Pi", and root directory as
This tutorial will go over how to create a Custom
C/C++ Adapter that will work with either HANA Streaming Analytics or Streaming Lite. In the testing section, the Custom
C/C++ Adapter will be executed on a remote device, and will send data into a Streaming Lite project running on that same device. It is up to the Custom
C/C++ Adapter to poll any available hardware sensors for values.
C/C++ Adapter will be created using the
SDK, and built using a
makefile which we will provide. In this document, we will be building an adapter to feed data into the Freezer Monitoring Lite project. The purpose of this tutorial is to show how to create your own Custom
C/C++ Adapter given a specific schema.
C/C++ Adapter fits into a larger architecture. After sending data into Streaming Lite, a Streaming Web Service output adapter carries the manipulated data into a Streaming Analytics project via the Streaming Web Service. For this tutorial, we will only be focusing on the Custom
C/C++ Adapter and nothing else.
The remote device we will be using is a Raspberry Pi, running on
Raspbian 7.8. However, any device which runs Streaming Lite will work for this walk-through. On the Raspberry Pi, the home directory is
/home/pi, and the
$STREAMING_HOME variable is our Streaming Lite installation folder,
Note: If you would like to add the Streaming Web Service Output Adapter to your Streaming Lite project first, complete these two tutorials: [Streaming Web Service Configuration and Testing (for SAP HANA Streaming Analytics)], [Streaming Web Service Output Adapter Tutorial (for Streaming Lite)]. Completion of these tutorials is not necessary for the purpose of this tutorial.
We will be developing a
C/C++ project consisting of one
.cpp file. This will ultimately be built on the remote device into an executable. This setup makes debugging tricky, since the
C++ SDK used for the
C/C++ Adapter will be located on the remote device. Although there are a variety of ways to set up a more suitable environment, for simplicity we will be coding directly on the
Raspberry Pi, using
Notepad++. Follow these instructions, and any errors can be fixed when the code is built using our
The project we are creating this Java Adapter for is called
freezer_monitoring_lite, and has been created in previous tutorial [Streaming Lite: Freezer Monitoring Lite]. The specific stream we are connecting to is called
isFreezerTemperatureReading. Here is the
CCL for the stream:
CREATE INPUT STREAM isFreezerTemperatureReading SCHEMA ( SensorId string , Temperature float , ReadingDate msdate , Id long ) AUTOGENERATE ( Id ) ;
You do not require the
"SWS_Output1" Streaming Web Service Output Adapter to go through this tutorial. All you need is the
isFreezerTemperatureReading input stream..
- Step 1
Connect to your
WinSCP, and create a folder called
"custom_c_adapter"in the root directory
Create a blank file in the folder called
"Makefile". This is what will be used to build our code. It contains paths to all required dependencies. Paste in the following and save:BashCopy
CC=g++ CPPFLAGS=-I$(STREAMING_HOME)/include LDFLAGS=-Wl,-R,$(STREAMING_HOME)/lib –L$(STREAMING_HOME)/lib –lstreamingclient_lib –lstreamingproject_lib custom_c_adapter: custom_c_adapter.o clean: rm –f *.o custom_c_adapter
For the question below, select the correct answer, and click Validate.
- Step 2
What is the purpose of the Makefile?