欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 樹莓派串口TCP透傳 [打印本頁]

作者: potato1992    時間: 2018-4-21 17:33
標題: 樹莓派串口TCP透傳
此代碼用于解決有些朋友想通過樹莓派連接單片機,并和單片機雙向數據透傳,電腦或者手機均可以通過tcp的方式連接到樹莓派并直接與單片機通信。完整工程請下載附件,進入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

127.27 KB, 下載次數: 23, 下載積分: 黑幣 -5

樹莓派串口tcp透傳


作者: lylus    時間: 2019-4-13 20:11
感謝大佬貢獻,下載用用,幫頂。




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1