|
此代碼用于解決有些朋友想通過(guò)樹(shù)莓派連接單片機(jī),并和單片機(jī)雙向數(shù)據(jù)透?jìng)鳎娔X或者手機(jī)均可以通過(guò)tcp的方式連接到樹(shù)莓派并直接與單片機(jī)通信。完整工程請(qǐng)下載附件,進(jìn)入debug目錄make即可
/*
============================================================================
Name : test.c
Author : Zhitao Lyu
Version :
Copyright : Your copyright notice
Description : Hello World in C, Ansi-style
============================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "sys/types.h"
#include "sys/stat.h"
#include <dirent.h>
//#include<sys/socket.h>
#include "common.h"
int accept_cmd(int fd_tcp,int fd_serial,struct sockaddr_in *addr_ser)
{
socklen_t sin_size = sizeof(struct sockaddr_in);
struct sockaddr_in add_cli;
socket_t sockfd_Cli=0;
unsigned char recvline[BuffSize+1]="";
int n=0;
bzero(&add_cli,sizeof(add_cli));
sockfd_Cli=accept(fd_tcp, (struct sockaddr *)(&add_cli), &sin_size);
printf("Accept from IP: %s\n",inet_ntoa(add_cli.sin_addr));
while(1)//per buff
{
n=recv_nb(sockfd_Cli,recvline,BuffSize);
if(n>0){
writeserial(fd_serial, recvline, n, NULL);
}
else if(n==0)sleepms(10);
else if(n<0)break;//end connection
n=readserial(fd_serial,recvline, BuffSize, NULL);
if(n>0) send(sockfd_Cli,recvline,n,0);
}
bzero(&add_cli,sizeof(add_cli));
return 0;
}
int main(int argc,char *argv[]) {
int err=0;
int fd_tcp=0;
int Port=5221;
struct sockaddr_in addr_ser;
int fd_serial=0;
if(argc>1)
{
Port=atoi(argv[1]);
if(Port<1024)
Port=5221;
}
fd_tcp=opentcpserver(&addr_ser,Port);
if(fd_tcp==-1){
printf("open tcpsever err\n");
return 0;
}
else{
printf("Start Listening,Port=%d\r\n",Port);
}
//open serial
fd_serial= openserial(SERIAL_PATH);
if(fd_serial==-1)
{
close(fd_tcp);
printf("openserial err msg:%d\r\n",err);
return 0;
}
err=setserial(fd_serial,4,8,'n',1);//9600 8 n 1
if(err==-1)
{
close(fd_tcp);
close(fd_serial);
printf("setserial err msg:%d\r\n",err);
return 0;
}
while(1)
{
err=accept_cmd(fd_tcp,fd_serial,&addr_ser);
if(err==8)break;
printf("Accept msg:%d\n",err);
}
close(fd_tcp);
close(fd_serial);
printf("Bye!\r\n");
return 0;
}
|
-
-
CoreControler_Single.zip
2018-4-21 17:32 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
127.27 KB, 下載次數(shù): 23, 下載積分: 黑幣 -5
樹(shù)莓派串口tcp透?jìng)?/p>
|