იმ მიზნით, რომ 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;
}