100+
ჩამოტვირთვები
შემცველობის რეიტინგი
ყველა
ეკრანის ანაბეჭდის სურათი
ეკრანის ანაბეჭდის სურათი
ეკრანის ანაბეჭდის სურათი
ეკრანის ანაბეჭდის სურათი
ეკრანის ანაბეჭდის სურათი

ამ აპის შესახებ

იმ მიზნით, რომ app კონტროლი დისტანციური აპარატურა მოსწონს Arduino, Netduino, Raspberry Pi ...
ოქმი TCP / IP (კლიენტი).

UP: 0, ძალა 0
DOWN: 0, -power 0
LEFT: -power, ძალა 0
RIGHT: ძალა, ძალა, 0
MIDDLE: 0, 0, 0 ან 0, 0, ელექტრო (Zero აქტიური)

Byte რეჟიმი: 3 პოზიციები გადაეცემა 3 bytes (default)
ASCII რეჟიმი: 3 პოზიციები გადაეცემა როგორც ტექსტი მძიმით გამოყოფილი (დასრულდა \ n)
სხდომაზე უმოქმედო: ყოველი გადაცემა Serated დაკავშირებით
სხდომაზე აქტიური კავშირი არასოდეს იხურება, მაგრამ საჭიროების შემთხვევაში ავტომატური ხელახლა (default)
Zero უმოქმედო არ დაბრუნების ნულოვანი ღირებულებები გათავისუფლების შემდეგ
Zero აქტიური: Auto დაბრუნების ნულოვანი ღირებულებები გათავისუფლების შემდეგ

ნიმუში კოდი სერვერზე 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"

ბათილად შეცდომა (const char * msg)
{
    perror (msg);
    exit (1);
}

int ძირითადი (int argc, char * argv [])
{
    int sockfd, newsockfd, portno, n;
    socklen_t clilen;
    char ბუფერული [256];
    struct sockaddr_in serv_addr, cli_addr;
    
    sockfd = socket (AF_INET, SOCK_STREAM, 0);
    თუ (sockfd <0)
         შეცდომა ( "შეცდომა გახსნა ბუდე");

    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);
    თუ (bind (sockfd (struct sockaddr *)
           და Serv_addr, sizeof (serv_addr)) <0)
                შეცდომა ( "შეცდომა სავალდებულო");

    ხოლო (1)
    {
         მოვუსმინოთ (sockfd, 5);
         clilen = sizeof (cli_addr);
         newsockfd = მიიღოს (sockfd (struct sockaddr *)
               და Cli_addr, და clilen);
         თუ (newsockfd <0)
               შეცდომა ( "შეცდომა მიიღოს");

         ხოლო (1)
         {
               bzero (ბუფერული, 256);
               n = წავიკითხე (newsockfd, ბუფერული, 3);
               თუ (n <3)
               {
                     შეცდომა ( "კითხვის შეცდომა socket");
                     მოხსნა;
               }

               float tmp1 = (float) ბუფერული [0];
               თუ (tmp1> 127)
                     tmp1 - = 256;

               float tmp2 = (float) ბუფერული [1];
               თუ (tmp2> 127)
                      tmp2 - = 256;

               ათწილადი tmp3 = (float) ბუფერული [2];
               თუ (tmp3> 127)
                      Tmp3 - = 256;

               printf ( "% d% d% d \ n", (int) tmp1, (int) tmp2, (int) tmp3);
         }
         ახლოს (newsockfd);
     }
     ახლოს (sockfd);
     დაბრუნებას 0;
}
განახლდა:
23 მარ. 2016

მონაცემთა უსაფრთხოება

უსაფრთხოება იწყება დეველოპერების მიერ თქვენი მონაცემების შეგროვებისა და გაზიარების წესების გაცნობით. მონაცემთა კონფიდენციალურობისა და უსაფრთხოების პრაქტიკები შეიძლება განსხვავდებოდეს თქვენი აპის ვერსიის, გამოყენების, რეგიონის და ასაკის მიხედვით. ეს ინფორმაცია მოწოდებულია დეველოპერის მიერ და შეიძლება დროთა განმავლობაში განახლდეს.
მონაცემები არ ზიარდება მესამე მხარეებთან
შეიტყვეთ მეტი დეველოპერების მიერ პუბლიკაციების გამოქვეყნების შესახებ
მონაცემები შეგროვებული არ არის
შეიტყვეთ მეტი დეველოპერების მიერ კოლექციის გამოქვეყნების შესახებ
აცხადებს, რომ მზადაა, Google Play-ს საოჯახო დებულება დაიცვას