100+
Downloads
Content rating
Everyone
Screenshot image
Screenshot image
Screenshot image
Screenshot image
Screenshot image

About this app

The purpose of the app is to control remote hardware like Arduino, Netduino, Raspberry Pi ...
The protocol is TCP / IP (Client).

UP: 0, power, 0
DOWN: 0, -power, 0
LEFT: -power, power, 0
RIGHT: power, power, 0
MIDDLE: 0, 0, 0 or 0, 0, power (Zero active)

Byte Mode: 3 positions are transfered as 3 bytes (default)
ASCII mode: 3 positions are transfered as text seperated by comma (ended by \ n)
Session inactive: Each transmission in a Serated connection
Session active: Connection never closed, but if Necessary automatic reconnect (default)
Zero inactive: No return to zero values ​​after release
Zero active: Auto return to zero values ​​after release

Sample code for a server on Raspberry Pi:

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "unistd.h"
#include "sys / types.h"
#include "sys / socket.h"
#include "netinet / in.h"

void error (const char * msg)
{
    perror (msg);
    exit (1);
}

int main (int argc, char * argv [])
{
    int sockfd, newsockfd, portno, n;
    socklen_t clilen;
    char buffer [256];
    struct sockaddr_in serv_addr, cli_addr;
    
    sockfd = socket (AF_INET, SOCK_STREAM, 0);
    if (sockfd <0)
         error ( "ERROR opening socket");

    bzero ((char *) & serv_addr, sizeof (serv_addr));
    portno = 12345;

    serv_addr.sin_family = AF_INET;
    serv_addr.sin_addr.s_addr = INADDR_ANY;
    serv_addr.sin_port = htons (portno);
    if (bind (sockfd, (struct sockaddr *)
           & Serv_addr, sizeof (serv_addr)) <0)
                error ( "ERROR on binding");

    while (1)
    {
         listen (sockfd, 5);
         clilen = sizeof (cli_addr);
         newsockfd = accept (sockfd, (struct sockaddr *)
               & Cli_addr, & clilen);
         if (newsockfd <0)
               error ( "ERROR on accept");

         while (1)
         {
               bzero (buffer, 256);
               n = read (newsockfd, buffer, 3);
               if (n <3)
               {
                     error ( "ERROR reading from socket");
                     break;
               }

               float tmp1 = (float) buffer [0];
               if (tmp1> 127)
                     tmp1 - = 256;

               float tmp2 = (float) buffer [1];
               if (tmp2> 127)
                      tmp2 - = 256;

               float TMP3 = (float) buffer [2];
               if (TMP3> 127)
                      TMP3 - = 256;

               printf ( "% d% d% d \ n", (int) tmp1, (int) tmp2, (int) TMP3);
         }
         close (newsockfd);
     }
     close (sockfd);
     return 0;
}
Updated on
Mar 23, 2016

Data safety

Safety starts with understanding how developers collect and share your data. Data privacy and security practices may vary based on your use, region, and age. The developer provided this information and may update it over time.
No data shared with third parties
Learn more about how developers declare sharing
No data collected
Learn more about how developers declare collection
Committed to follow the Play Families Policy