平台介绍
主机操作系统:Centos6.7
开发平台: FL2440
GPS模块:FIT-GPS-SF2820
编程思想
SF2820的GPS信息通过串口发送给FL2440,FL2440通过socket上报给服务器,服务器获取到GPS数据信息进行解析后显示,详细见代码。
详细代码
以下代码模块中要是不理解可以翻阅前面的博文,都有详细的解说。
服务端:
存放的文件有
gps.c 与gps.h可见博文
https://blog.csdn.net/m0_38022615/article/details/81386652
socket_server.c源代码:
功能:与客户端进行通信,接收客户端发来的数据,进行解析
/*********************************************************************************
* Copyright: (C) 2018 NULL
* All rights reserved.
*
* Filename: socket_server.c
* Description: This file
*
* Version: 1.0.0(2018年08月05日)
* Author: DingHuanhuan <736787419@qq.com>
* ChangeLog: 1, Release initial version on "2018年08月05日 19时30分27秒"
*
********************************************************************************/
#include "gps.h"
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
/* sockaddr_in{} and other Internet define */
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
/* strerror(),perror(), errno head file */
#include <errno.h>
#define BUF_SIZE 1024
#define port 12345
int main(int argc, char **argv)
{
int listen_fd,accept_fd; //创建两个套接字,一个开启连接,一个通信
struct sockaddr_in server_addr;//服务器端地址,是一个结构体,等下要填充ipV4或者ipV6的结构
char buf[BUF_SIZE];
GPRMC gprmc_data;
listen_fd = socket(AF_INET,SOCK_STREAM,0);
if(listen_fd < 0)
{
printf("Creat socket failure:%s\n",strerror(errno));
return -1;
}
printf("Socket creat fd is %d\n",listen_fd);
/*服务器设置,设置server地址和端口号,用于接受任何client端*/
memset(&server_addr,0,sizeof(server_addr)); //清空再设置ipV4地址
server_addr.sin_family = AF_INET; //设置为ipV4地址
server_addr.sin_port = htons(port);