Use your iPhone, iPad or iPod as a TCP/IP based Remote Control
and visualization tool !!
No time to write an own App to control your network device via socket ?
Not familiar with iOS programming ?
No problem!
Just use our DeviLAN App to create your own remote control
or send accelerometer, geo, teslameter and compass data to control your device.
A 'Device' can be an embedded system, a PC,
a laptop or any other network based modul. You only have to be able to write own
network based applications for your device.
As example we offer a free sample project for Linux.
Remote control function is available with Version 1.3 of DeviLAN App.
(Get here newest Version 1.8 (available soon) from Apple Appstore.)
... and now getting started ....
Table of contents:
Special commands and additional informations
Test Mode to demonstrate how RC works
Special commands for RCs
Testing commands for RCs
Use test tool 'DeviLAN Control' as a PC based RC and visualization server
Get access to Accelerometer
Get access to Geo data, Teslameter
and Compass
New in version 1.8: Portrait and Landscape mode supported for iPhone & iPad
|
|
Prepare commnunication between devices |
|
To prepare communication between your device and some iOS device:
- Open a TCP/IP listen socket on a free port at your device.
- Start DeviLAN App an open tab "Socket".
- Enter your device IP and port number and press 'Connect' button to get a connection.
- When connection is open send command "modul_typ remote" to DeviLAN App.
- The App will now add two subviews called
"Accelerometer",
"Geo Data & Magnetics/Compass"
and "Remote Control"
- Tab on entry "Remote Control"...
- .... and you see an empty view?? (that's fine but useless ;-))
- Additionally DeviLAN App sends a "get_config" command to ask for the configuration
of your remote control.
It also sends "modul_version DeviLAN App 1.7 Build 8" to give the server the information
about app's software version.
- Now your device has to send the configuration for remote control.
- .... and that's it! Your device can be remote controlled by your iOS device!
|
|
Remote control & visualization elements |
|
At the moment there a the following simple control & visualization elements
(but we will add more in the future versions)
|
|
Socket protocol |
|
The communication with DeviLAN App is ASCII command line based where every command
start with a keyword (command) followed by a parameter or a parameter list:
'command' 'SP' ['Para1'][;'Para2'].....[;'Para n'] 'CR'
- Every command line ends with a 'CR' = "Carriage Return".
- 'SP' = "Space" means exactly ONE space character.
- Parameters in a list are separated by ;. (semicolon)
- All commands for remote control starts with rmt_ (abbr. for remote)
- Some commands have no parameter
... and here are the elements ....
|
|
Slider element |
|
Add a slider element with:
'rmt_slider1_XX_cfg' 'SP' ';'description' ; 'min' ; 'max' ; 'value' , ['format' ; 'scale'] 'CR'
- 'rmt_slider1_XX_cfg' where XX has to be unique combination of 2 characters
- 'description' is the text above the slider
- 'min' is the minimum value of slider
- 'max' is the maximun value of slider
- 'value' is the actual value of slider
- 'format' is a (C / sprintf) format string to format slider value shown(optional)
- 'scale' is the factor the value is multiplied (optional)
When the slider is moved it sends:
'rmt_slider1_XX_data' 'SP' 'value' 'CR'
where 'value' is a decimal value in range of 'min' to 'max'.
Examples:
rmt_slider1_aa_cfg ;Slider type 1 description:; 0; 100; 25
rmt_slider1_aa_cfg ;Slider type 1 description:; 0; 100; 25; %5.2fHz; 0.1
|
|
Progress element |
|
Add a progress element with:
'rmt_slider1_XX_cfg' 'SP' ';'description' ; 'min' ; 'max' ; 'value' , ['format' ; 'scale'] 'CR'
- 'rmt_progress1_XX_cfg' where XX has to be unique combination of 2 characters
- 'description' is the text above the progress bar
- 'min' is the minimum value of progress bar
- 'max' is the maximun value of progress bar
- 'value' is the actual value of progress bar
- 'format' is a (C / sprintf) format string to format progress bar value shown (optional)
- 'scale' is the factor the value is multiplied (optional)
Example:
rmt_progress1_aa_cfg ;Progress type 1 description:; 0; 100; 25; %5.2fHz; 0.1
|
|
Switch elements |
|
Add a switch element with 1 switch with:
'rmt_switch1_XX_cfg 'SP' ';'description' ';' 'value' 'CR'
- 'rmt_switch1_XX_cfg' where XX has to be unique combination of 2 characters
- 'description' is the text left the switch
- 'value' is the actual value (0,1) of the switch
When the switch is changed it sends:
'rmt_switch1_XX_data' 'SP' 'value' 'CR'
where 'value' is a decimal value 0 or 1.
Example:
rmt_switch1_aa_cfg ;Switch type 1 description:; 1
|
|
Add a switch element with 3 switches with:
'rmt_switch3_XX_cfg 'SP' ';'description1' ';' 'value1' ';'description2' ';' 'value2' ';'description3' ';' 'value3' 'CR'
- 'rmt_switch3_XX_cfg' where XX has to be unique combination of 2 characters
- 'description x' is the text above the switch
- 'value x' is the actual value (0,1) of the switch
When the switch is changed it sends:
'rmt_switch3_XX_data_Y' 'SP' 'value' 'CR'
where 'value' is a decimal value 0 or 1 and
where Y is the no. of switch (1, 2, 3).
Example:
rmt_switch3_aa_cfg ;Switch; 1;type 3;0;description;1
|
|
Text edit element |
|
Add a text edit element with:
'rmt_edit1_XX_cfg' 'SP' ';'description' ';' 'value' 'CR'
- 'rmt_edit1_XX_cfg' where XX has to be unique combination of 2 characters
- 'description' is the text above the text edit field
- 'value' is the actual value in text edit field
When the set button is pressed it sends:
'rmt_edit1_XX_data'' 'SP' 'value' 'CR'
where 'value' is the value in edit field (limited is 100 characters)
Example:
rmt_edit1_aa_cfg ;Edit field type 1 description:;Enter text here
|
|
Header element |
|
Add a header element with:
'rmt_header1_XX_cfg' 'SP' ';'description' ';' 'value' 'CR'
- 'rmt_header1_XX_cfg' where XX has to be unique combination of 2 characters
- 'description' is the text in the header
This element can be used to group several units of your remote
control.
Example:
rmt_header1_aa_cfg ;All GUI Elements: Header type 1
|
|
Button elements |
|
Add a button element with 3 buttons with:
'rmt_button3_XX_cfg' 'SP' ';'label1' ; 'label2' ; 'label3' 'CR'
- 'rmt_button3_XX_cfg' where XX has to be unique combination of 2 characters
- 'label1' is the label text of the left button
- 'label2' is the label text of the middle button
- 'label3' is the label text of the right button
- When a label is a empty string the button will be hidden.
When the button is touched it sends:
'rmt_button3_XX_data_Y' 'SP' '1' 'CR'
When the button is released it sends:
'rmt_button3_XX_data_Y' 'SP' '0' 'CR'
where Y is the no. of button (1, 2, 3).
Example:
rmt_button3_aa_cfg ;Left Button;Type 3;Right Button
|
|
Add a button element with 2 buttons with:
'rmt_button2_XX_cfg' 'SP' ';'label1' ; 'label2' 'CR'
- 'rmt_button2_XX_cfg' where XX has to be unique combination of 2 characters
- 'label1' is the label text of the left button
- 'label2' is the label text of the right button
- When a label is a empty string the button will be hidden.
When the button is touched it sends:
'rmt_button1_XX_data_Y' 'SP' '1' 'CR'
When the button is released it sends:
'rmt_button1_XX_data_Y' 'SP' '0' 'CR'
where 'Y' is the no. of button (1, 2).
Example:
rmt_button2_aa_cfg ;Left Button type 2;Right Button type 2
|
|
Add a button element with 1 button with:
'rmt_button1_XX_cfg' 'SP' ';'label' 'CR'
- 'rmt_button1_XX_cfg' where XX has to be unique combination of 2 characters
- 'label1' is the label text of the button
- When a label is a empty string the button will be hidden.
When the button is touched it sends:
'rmt_button1_XX_data' 'SP' '1' 'CR'
When the button is released it sends:
'rmt_button1_XX_data_Y' 'SP' '0' 'CR'
Example:
rmt_button1_aa_cfg ;Middle button type 1
|
|
Webbrowser element |
|
Add a webbrowser element with:
'rmt_web1_XX_cfg' 'SP' ';'url' ';' 'height' 'CR'
- 'rmt_web1_XX_cfg' where XX has to be unique combination of 2 characters
- 'url' is the URL for the webpage to load
- 'height' is height (in pixel) of webbrowser element
This value is limeted to 500.
Example:
rmt_web1_aa_cfg ;http://www.synertronixx.de; 100
|
|
(Scroll) text element |
|
Add a (Scroll) text element with:
'rmt_text1_XX_cfg' 'SP' ';'text' ; 'speed' 'CR'
- 'rmt_text1_XX_cfg' where XX has to be unique combination of 2 characters
- 'text' is the text that is shown
- 'speed' is the scroll speed (0 = 'no scrolling' .... 5 = 'max. speed')
When the text was shown one time the text element sends:
'rmt_text1_XX_data' 'SP' '1' 'CR'
This message can be used to send an update for the text:
Examples:
rmt_text1_aa_cfg ;Static text (speed 0); 0;
rmt_text1_aa_cfg ;Company A USD 100.00 (+1), Company B USD 1821.00 (+3), Company B USD 300.00 (+1);2
|
|
Audio element |
|
Add an audio element with:
'rmt_audio1_XX_cfg' 'SP' ';'title' ; 'url' ; 'mode' 'CR'
- 'rmt_audio1_XX_cfg' where XX has to be unique combination of 2 characters
- 'title' is the text above the slider
- 'URL' is the URL for the audio file
- 'mode' is the play mode
0 = file will not be loaded automatically, press button "Load" get it
1 = load the file automatically
2 = load the file automatically and play it after loading
While loading the text on the right side will show the loaded file size in kB.
After loading the text shows the play time and the total time.
When the file played to the end or the "Stop" button will be pressed it sends:
'rmt_audio1_XX_data' 'SP' '1' 'CR'
This can be used to update the file.
Examples:
rmt_audio1_aa_cfg ;Title: Audio_01.mp3;http://192.168.1.3/audio_01.mp3; 1
rmt_audio1_bb_cfg ;Title: Audio_02.mp3;http://www.synertronixx.de/MP3/audio_02.mp3; 2
|
|
Graph element |
|
Add a graph element with:
'rmt_graph1_XX_cfg' 'SP' ';'title' ;'graphCnt' ;'graphHeight' ; 'legendWidth' ; 'legendFormat' ;'minY' ;'maxY'; 'gridlinesY' 'CR'
- 'rmt_graph1_XX_cfg' where XX has to be unique combination of 2 characters
- 'title' is the text above the graph
- 'graphCnt' is the no. of graphs to draw (max. is 8)
The graph uses the predefined colors red, green, blue, yellow, pink, turquoise, black and white for graph no. 1 to 8.
- 'graphHeight' is the height (in pixel) of the graph.
(The height can not be changed with the update command.)
- 'legendWidth' is the width of the legend (values at y-axis) (in pixel)
- 'legendFormat' is a (C / sprintf) format string to format the values in y-axis
- 'minY' is the max. value (y-axis) shown in graph
- 'maxY' is the max. value (y-axis) shown in graph
- 'gridlinesY' is the no. of horizontal gridlines shown in the graph
To stream data to the graph send:
'rmt_graph1_XX_data' 'SP' ;'value 1' ;'value 2' ..... ;'value graphCnt' 'CR'
where 'value x' are floats. Every time the element receives values the graph will scroll one pixel.
Examples:
rmt_graph1_a1_cfg ;Red=sin(x), Green=cos(x), Blue=tan(x), Yellow=4*sin(x)*cos(x/10):;5;112; 40; %.1f; -3.5; 3.5; 7
rmt_graph1_a2_cfg ;Description text for graph cell 1:;4;170; 50; %.1f; -55.0; 95.0; 5
rmt_graph1_a2_data ;0.2 ;1.2 ;2.67 ;-3.456
|
|
Draw element (new in version 1.6) |
|
Add an empty draw element with:
'rmt_draw1_XX_cfg' 'SP' ';'title' ;'drawHeight' 'CR'
- 'rmt_draw1_XX_cfg' where XX has to be unique combination of 2 characters
- 'title' is the text above the draw element
- 'drawHeight' is the height (in pixel) of the draw element.
(The height can not be changed with the update command.)
- the upper left edge is x=0 and y=0
- the under right edge is x='screenwidth' and y=drawHeight
To draw content in this element send commands in form of:
'rmt_draw1_XX_data' 'SP' ;'command' ;['Para 1'] ..... ;['Para n'] 'CR'
- where 'command' is a key character to draw a specific object and
- 'Para1' to 'Para n' are the specific parameters for the object to draw
The following commands are implemented to draw objects:
- a 'r' for a rect object
- a 'a' for a arc/circle object
- a 'e' for a ellipse object
- a 'l' for a line object
- a 't' for a text object
The following commands are implemented to change the drawing parameter:
- a 'c' to change the drawing color
- a 'n' for not updating draw element directly
- a 'u' to updating draw element directly
- a 'd' to delete the draw element (remove all objects)
Even when this objects are very simple you will be able to create complex graphics
like bar graph, pie charts and many more.
|
|
Draw element: draw rect object |
|
Add a rect object with:
'rmt_draw1_XX_data' 'SP' ';'r' ;'x' ;'y' ; 'w' ; 'h' ;'mode' 'CR'
- 'x' and 'y' is the upper left edge of the rect
- 'w' is width of the rect
- 'h' is height of the rect
- 'mode' is draw mode (0 = outline, 1 = filled)
Examples:
rmt_draw1_a1_data ;r;30;30;30;30;0
rmt_draw1_a1_data ;r;70;20;40;40;1
rmt_draw1_a1_data ;r;30;80;60;10;1
|
|
Draw element: draw arc/cirle object |
|
Add a arc/cirle object with:
'rmt_draw1_XX_data' 'SP' ';'a' ;'x' ;'y' ; 'r' ; 'startAngle' ;'endAngle' ;'clockwise' ;'mode' 'CR'
- 'x' and 'y' is the center of arc/cirle
- 'r' is the radius
- 'startAngle' is start angle for drawing
- 'stopAngle' is end angle for drawing
- 'clockwise' is the drawing orientation (1 = closewise, 0 = counterclockwise)
- 'mode' is draw mode
0 = outline only
1 = full filled (piece of pie)
2 = outline with a line between start point and center and end point and center (unfilled piece of pie)
3 = outline with a line between start point and end point
Examples (yellow circles):
rmt_draw1_a1_data ;a;240;20;15;0.0;6.3;0;0
rmt_draw1_a1_data ;a;290;30;25;0.0;6.3;0;1
Examples (pink arcs):
rmt_draw1_a1_data ;a;200;60;20;0.0;2;1;0
rmt_draw1_a1_data ;a;200;105;20;0.0;2;1;1
rmt_draw1_a1_data ;a;200;160;20;0.0;2;1;2
rmt_draw1_a1_data ;a;200;205;20;0.0;2;1;3
|
|
Draw element: draw ellipse object |
|
Add a ellipse object with:
'rmt_draw1_XX_data' 'SP' ';'e' ;'x' ;'y' ; 'w' ; 'h' ;'mode' 'CR'
- 'x' and 'y' is the upper left edge of the ellipse
- 'w' is width of the rect to draw the ellipse in
- 'h' is height of the rect to draw the ellipse in
- 'mode' is draw mode (0 = outline, 1 = filled)
Examples (red ellipses):
rmt_draw1_a1_data ;e;20;120;50;20;0
rmt_draw1_a1_data ;e;20;150;80;50;1
|
|
Draw element: draw line object |
|
Add a line object with:
'rmt_draw1_XX_data' 'SP' ';'r' ;'x1' ;'y1' ; 'x2' ; 'y2' 'CR'
- 'x1' and 'y1' is start point of the line
- 'x2' and 'y2' is end point of the line
Examples (black lines):
rmt_draw1_a1_data ;l;100;110;150;150
rmt_draw1_a1_data ;l;150;110;100;150
|
|
Draw element: draw text object |
|
Add a text object with:
'rmt_draw1_XX_data' 'SP' ';'t' ;'x' ;'y' ;'size' ;'align' ;'text' 'CR'
- 'x' and 'y' is position of the text
- 'size' is size of the text
- 'align' is the alignment of text
l means align left
r means align right and
c means align center
- 'text' is the text itself
Examples (blue texts):
rmt_draw1_a1_data ;t;120;230;15;l;Hello world left!
rmt_draw1_a1_data ;t;120;250;15;c;Hello world center!
rmt_draw1_a1_data ;t;120;270;15;r;Hello world right!
|
|
Draw element: change draw color |
|
To change the draw color send command:
'rmt_draw1_XX_data' 'SP' ';'c' ;'red' ;'green' ;'blue' ;'translucence' 'CR'
- 'red' is red color value (0.0 to 1.0)
- 'green' is green color value (0.0 to 1.0)
- 'blue' is blue color value (0.0 to 1.0)
- 'translucence' is the translucence of the color (0.0 to 1.0)
All objects in a draw element are drawn with the actual color set. To draw an
object with a specific color the draw color has to be set first!
Examples (colors: red, green, blue):
rmt_draw1_a1_data ;c;1;0;0;1
rmt_draw1_a1_data ;c;0;1;0;0.8
rmt_draw1_a1_data ;c;0;0;1;0.6
|
|
Draw element: drawing behavior |
|
All objects in a draw element are stored in a list because of redrawing reasons.
When draw element receives a command to add an object it puts it into the list first. Drawing itself is controlled by the update mode.
So there are the follwing commands to change the drawing behavior:
To change drawing mode to 'n'o update directly send command:
'rmt_draw1_XX_data' 'SP' ';'n' 'CR'
In this case all object received will only added to the list without drawing.
To change drawing mode to 'u'pdate directly send command:
'rmt_draw1_XX_data' 'SP' ';'u' 'CR'
In this case all object received will added to the list and all objects are drawn again.
The when you don't want that the objects are drawn piece by piece when the draw element receives it
- first send 'n' command to avoid drawing directly
- then send all elements for the graphic
- and after that send 'u' command to draw all objects
To 'd'elete the list send command:
'rmt_draw1_XX_data' 'SP' ';'d' 'CR'
Alle elements will be removed from list and the draw area is filled with the draw color.
Examples (delete, no update, update):
rmt_draw1_XX_data ;d
rmt_draw1_XX_data ;n
rmt_draw1_XX_data ;u
|
|
Map element (new in version 1.7) |
|
Add a map element with:
'rmt_map1_XX_cfg' 'SP' ';'title' ;'mapHeight' ; 'latitude' ; 'longitude' ;'size' ;'type'; 'sendRegion' 'CR'
- 'rmt_map1_XX_cfg' where XX has to be unique combination of 2 characters
- 'title' is the text above the map
- 'mapHeight' is the height (in pixel) of the graph.
(The height can not be changed with the update command.)
- 'latitude' is the geo position latitude angle (float)
- 'longitude' is the geo position longitude angle (float)
- 'size' is the map height in m shown in the map.
(The size can not be changed with the update command.
- 'type' is the type of map. (0=normal, 1=satellite, 2=hybrid)
- 'sendRegion' marker to set for sending cyclic the region shown in the map.
(0=no feedback, 1=send feedback)
To stream data (in form of pins to show) to map send:
'rmt_map1_XX_data' 'SP' ;'lat' ;'long' ;'title' ;'subtitle' ;'URL' 'CR'
- 'lat' is the geo position latitude angle (float)
- 'long' is the geo position longitude angle (float)
- 'title' is title shown when a pin is touched
- 'subtitle' is the subtitle shown when a pin is touched and
- 'URL' is the the URL. When a pin is touched a small view with
title and subtitle will be shown. Touch the blue button to go
to a new view including with title, subtitle and URL in a webbrowser.
When sendRegion is set to '1' the element sends region data when position or zoom changes
in the following format:
'rmt_map1_XX_data 'SP' 'lat' 'SP' 'long' 'SP' 'dh' 'SP' 'dw' 'CR'
where
- 'lat' is the geo position latitude angle (center of map, float)
- 'long' is the geo position longitude angle (center of map, float)
- 'dh' is the height (in m) of the region shown in map (float)
- 'dw' is the width (in m) of the region shown in map (float)
Example: map with 3 pins (upper map):
rmt_map1_aa_cfg ;Map description:; 200; 52.3768; 9.7283;1000;1000; 0;1
rmt_map1_aa_data ;52.3768; 9.7283;Homepage synertronixx;This is our homepage!;http://www.synertronixx.de
rmt_map1_aa_data ;52.3768; 9.7285;Logo synertronixx;This in a our logo!;http://www.synertronixx.de/images/synertronixx_sphere.jpg
rmt_map1_aa_data ;52.3768; 9.7287;SCB9324;This is a our socket computer SCB9324;http://www.synertronixx.de/images/scb9324_small_1.jpg"
|
|
Radio/Segment button element |
|
Add a radio/segment button element with:
'rmt_radio1_XX_cfg' 'SP' ';'description' ; 'selIndex' ; 'value1' ; 'value2' [...] [; 'value n'] 'CR'
- 'rmt_radio1_XX_cfg' where XX has to be unique combination of 2 characters
- 'description' is the text above the radio/segment button
- 'selIndex' is the selected index
- 'value1' is the first title of radio/segment button
- 'value2' is the second title of radio/segment button
- (optional more titles) ...........
- 'value n' (optional) is the last title of radio/segment button. The no. of segments is not limited.
The minimum is 2.
When a segment is selected it sends:
'rmt_radio1_XX_data' 'SP' 'index' 'CR'
where 'index' is the index of the selected segment (left segment = 0, ..., right segment = n-1).
Examples:
rmt_radio1_a1_cfg ;Description for segment/radio button element:; 0;Value 1;Value 2;Value 3
rmt_radio1_a2_cfg ;Description for segment/radio button element with a lot of values:; 0;Value 1;Value 2;Value 3;Value 4;Value 5;Value 6;Value 7;Value 8;Value 9
|
|
Picker element |
|
Add a picker element with:
'rmt_pick1_XX_cfg' 'SP' ';'description' ; 'selIndex' ; 'value1' ; 'value2' [...] [; 'value n'] 'CR'
- 'rmt_pick11_XX_cfg' where XX has to be unique combination of 2 characters
- 'description' is the text above the radio/segment button
- 'selIndex' is the selected index
- 'value1' is the first value in picker list
- 'value2' is the second value in picker list
- ...........
- 'value n' is the last value in picker list. The no. of values is not limited.
The minimum is 2.
To show the picker itself press button "+/-". When a value gets selected it sends:
'rmt_pick1_XX_data' 'SP' 'index' 'CR'
where 'index' is the index of the selected value (first value = 0, ..., last value = n-1).
Press button "Done" to hide the picker again.
Examples (1. picker hidden, 2. picker shown):
rmt_pick1_a1_cfg ;Description:;1;Value 1;Value 2;Value 3;Value 4;Value 5;Value 6
rmt_pick1_a2_cfg ;Animals:;2;Cat;Dog;Mouse;Snake;Bird;Spider
|
|
Special command & more infos |
|
There are some special commands:
To remove all elements send:
'rmt_clear 'SP' 'CR'
Removing elements can be helpfull to send a new remote view.
You don't have to add all elements you need in remote controller view.
e.g.: Send remote control with
a lot of buttons. When a special button is pressed your device can send
the remove command and thereafter a new RC configuration.
When connection was established to device or the orientation changes RC sends:
'rmt_hardware' 'SP' 'platform' 'width' 'height' 'CR'
where
- 'platform' is the hardware platform and generation of device (iPhone, iPad, etc.)
- 'width' is the width (in pixel) of the RC screen
- 'height' is the height (in pixel) of the RC screen
This commands let the RC server know on which device the app is running and how large the screen is.
It can be used to create different GUI for iPhone and iPad and orientations (Portrait or Landscape).
Some more things to know:
- When you send a command to remote controller that is
kown (was used before) again the element will be updated
not added. So you can change the text, range or state at any time
(e.g. to give the user a feedback).
- You can add new elements at any time.
- The elements are shown in the order your device sends the configuration commands.
- The max. no. of elements is 100.
When you need more use the clear command and send new remote view(s).
- When you what to send all values of all elements
press button 'Send all'.
- To remove all elements from remote control view press
button 'Clear'
- To reload all all elements press button "Reload".
DeviLAN App will send get_config to your devices that now knows it
has to send configuration again.
|
|
Demo mode |
|
We added a special demo mode to
demonstrate how a remote control could work.
There are two ways to start it.
First:
- At the Start tab press button 'Start RC demo'.
- App will to go tab 'socket' and performs the start of the demo.
Second:
- Go to Socket tab
- Enter command 'modul_typ remote' in edit field
- Press send button
- Now the three subviews called
"Accelerometer",
Geo Data & Magnetis/Compass
and "Remote Control" will be added.
- Select "Remote Control"
- You see an emtpy remote control, press button "Start Demo"
to start the demo mode.
- Now several elements will be added and
updated automatically.
- Press button ("Stop demo") again to stop demo.
|


|
Some examples |
|
Example 1:
To get the this remote control view just send the following commands:
('CR' is not shown here)
rmt_header1_aa_cfg ;All GUI Elements: Header type 1
rmt_slider1_aa_cfg ;Slider type 1 description:; 0; 100; 25
rmt_switch1_aa_cfg ;Switch type 1 description:; 1
rmt_button2_aa_cfg ;Left Button type 2;Right Button type 2
rmt_button3_aa_cfg ;Left Button;Type 3;Right Button
rmt_edit1_aa_cfg ;Edit field type 1 description:;Enter text here
rmt_header1_bb_cfg ;
rmt_header1_cc_cfg ;
|

|
Example 2:
To get the this remote control view just send the following commands:
('CR' is not shown here)
rmt_header1_05_cfg ;Mixed examples 190
rmt_slider1_AA_cfg ;Temperature bathroom 26°C; 5; 35; 30
rmt_slider1_BB_cfg ;Temperature living room; 5; 35; 27
rmt_switch1_10_cfg ;Light intern Off; 0
rmt_switch1_11_cfg ;Light extern; 0
rmt_button3_10_cfg ;Start;Stop 190;Pause
rmt_button3_11_cfg ;TV on;TV off;
rmt_edit1_11_cfg ;Enter text here:;Text to send 1
To update the elements you could send:
rmt_header1_05_cfg ;Mixed examples 155
rmt_slider1_AA_cfg ;Temperature bathroom 26°C; 5; 35; 25
rmt_slider1_BB_cfg ;Temperature living room; 5; 35; 27
rmt_switch1_10_cfg ;Light intern On; 1
rmt_switch1_11_cfg ;Light extern; 0
rmt_button3_10_cfg ;Start;Stop 155;Pause
rmt_button3_11_cfg ;TV on;TV off;
rmt_edit1_11_cfg ;Enter text here:;Text to send 1
|


|
Example 3:
To get the this remote control view just send the following commands:
('CR' is not shown here)
rmt_header1_03_cfg ;Button examples
rmt_button3_a1_cfg ;Left;Middle;Right
rmt_button3_b1_cfg ;Left;;
rmt_button3_c1_cfg ;;Middle;
rmt_button3_d1_cfg ;;;Right
rmt_button3_e1_cfg ;Left;;Right
rmt_button2_f1_cfg ;Left Button;Right Button
|
|
Testing commands |
|
To test a command you can also directly edit it. Go to the "socket" tab and
add '@' before the command and press "Send" button.
Commands that starts with '@' are not transmitted to your device!! The '@'
will be removed and the command will be processed like a command that has been
received via socket.
E.g.: to test the clear command just edit:
@rmt_clear
and press "Send" button.
This mechanism works with all commands that command interpreter of DeviLAN App knows.
|
|
PC tool DeviLAN Control |
|
He added a remote control server to our PC tool called DeviLAN Control.
This can be used as a RC server, so you can see how DeviLAN App remote control function could be used
for your application.
Just do the following:
- Install DeviLAN Control at your PC which you find here:
DeviLANControl_112_Installer.exe
- Start the program and select tab "Socket-PC"
(don't worry about some parts of GUI are in german, you don't need them ;-))
- The program automatically will open a "listening socket"
at port 3333 at default.
- Press button"Show" right fom text 'DeviLAN App RC Tester'
at the bottom of tab.
- Now a new tab occurs called "RC Test".
- Start "DeviLAN App" and go to tab "Socket"
- Enter your PC-IP e.g. "192.168.1.3" and port no. "3333" and press button "Connect"
to establish a connection with PC tool
- Now select entry Remote Control
- Go back to PC tool and choose the RC control scene you want to see
and follow the commands "Received & tranmitted commands".
We also offer free sample code for Linux that allows
you to see how a RC server could work. It does the same as RC server part of PC tool DeviLAN Control.
You can download it here
DeviLAN_App_RC_Server.zip
.
|

|
Accelerometer |
|
To stream data from 3 axis accelerometer from your iOS device
to your device just select the frequency for sending.
You can get raw data directly
from accelerometer or filter them before sending.
Use the filter settings that are usefull for your application.
The data format for raw data sending is:
'rmt_accr_data 'SP' 'X' 'SP' 'Y' 'SP' 'Z' 'CR' and
'rmt_accf_data 'SP' 'X' 'SP' 'Y' 'SP' 'Z' 'CR'
for filtered where
- 'X' is raw / filtered value of accelerometer x
(format: float, two digits after dot, '%5.2f')
- 'Y' is raw / filtered value of accelerometer y
(format: float, two digits after dot, '%5.2f') and
- 'Z' is raw / filtered value of accelerometer z
(format: float, two digits after dot, '%5.2f')
|
|
Geo Data, Teslameter & Compass |
|
To stream data from positioning system, Teslameter and
Compass from your iOS device
to your device just select the frequency for sending.
The data is transmitted in the following format:
'rmt_geodata
'SP' 'latitude' 'SP' 'longitude' 'SP' 'altitude'
'SP' 'horAcc' 'SP' 'verAcc' 'SP' 'speed'
'SP' tx' 'SP' 'ty' 'SP' 'tz' 'SP' 'compass' 'CR'
where:
- 'latitude' is the geo position latitude angle in deg.
(format: float, five digits after dot, '%.5f')
- 'longitude' is the geo position longitude angle in deg.
(format: float, five digits after dot, '%.5f') and
- 'altitude' is the geo position altitude in m
(format: float, two digits after dot, '%.2f')
- 'horAcc' is the horizontal accuracy in m
(format: float, zero digits after dot, '%.0f')
- 'verAcc' is the vertical accuracy in m
(format: float, zero digits after dot, '%.0f')
- 'speed' is the speed in m/s
(-1=speed not available, format: float, one digits after dot, '%.1f')
- 'tx' is the x components of magnetic strength in µT
(format: float, one digits after dot, '%.1f')
- 'ty' is the y components of magnetic strength in µT
(format: float, one digits after dot, '%.1f')
- 'tz' is the z components of magnetic strength in µT
(format: float, one digits after dot, '%.1f')
- 'compass' is the compass angle in deg.
(format: float, one digits after dot, '%.1f')
|
|
So that's It!!
We hope that this tool will be useful for your development. To give us a feedback
please send an email to devilanapp(AT)synertronixx.de.
Here you can download DeviLAN App from
Apple Appstore.
your synertronixx team
|
|