微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于GPRS的出租车监控调度系统方案

基于GPRS的出租车监控调度系统方案

时间:10-10 来源:互联网 点击:

据传输的,最后,进行IPCP 协商,主要进行IP地址的协商,协商成功后,出租车终端将获得GGSN(GPRS 网关)为其动态分配的IP 地址。PPP 链路就建立完成了,之后出租车终端就相当于公网上的一台主机,可以自由地与Internet 的其他主机进行数据交互了。

3.2 监控中心的软件设计

监控中心是位于出租车公司的控制中心,它与公司服务器进行局域网连接如图1,服务器具有固定公网(Internet)IP 地址,而监控中心的IP 地址为局域网IP,公网上的主机(出租车终端)是不能通过该IP 来访问监控中心的,要想实现这个过程,必须在公司服务器设置端口映射,端口映射的原理是将拥有固定IP 地址的服务器端口映射到处于局域网的某台主机端口上,如图4:

图4 端口映射示意

上图中,将服务器的1111 端口映射到局域网内监控中心的2222 端口,这样外网主机发往服务器1111 端口的数据都将被重定向到监控中心的2222 端口,监控中心只要开放并监听该端口,即可获得相关数据。

监控中心主机采用 Debian Linux 操作系统,Debian 是一套为计算机设计的自由操作系统,它包含一万五千多个软件包,都是自由开源的,并被包装成容易安装的deb 格式,Debian是一款功能强大的Linux 操作系统。

监控中心的软件设计主要完成以下两个任务:接收出租车终端发送过来的信息并写入数据库;设计图形管理软件,方便各项功能的实现。

(1)接收出租车终端发送过来的定位信息并写入数据库

设计一个守护(Daemon)进程,它可以实现在操作系统启动后一直在后台运行,不受控制终端的控制,该进程主要用于监听本监控中心的指定端口,接收由出租车终端发送过来的定位、速度和时间信息,然后将所有信息写入POSTGRESQL8.0 数据库[4]。POSTGRESQL数据库是世界上可以获得开放源码的最先进的数据库系统,支持几乎所有 SQL 构件(包括子查询,事务和用户定义类型和函数),并且为多种开发语言提供接口(包括 C,C++,Java 等)。

Linux 系统下采用C 语言对该数据库进行操作,主要用到以下三个函数:

PQconnectdb(“dbname=psql_data”)用于打开名为psql_data 的POSTGRESQL 数据库;PQexec(PQconnectdb(),sql_query)用于对打开的数据库执行各种SQL 语句;PQfinish()用于关闭打开的数据库。(2)图形管理软件设计

监控中心采用 GTK+2.0 进行图形管理软件的开发,GTK+2.0 采用面向对象的C 语言开发框架,尽管完全用 C 写成的,但它是基于类和回调函数的思想实现的,应用它可以轻松的在Linux 系统平台的X WINDOW 环境下开发出漂亮的图形界面应用程序。

该管理软件采用双线程编程,实现的功能如图5:

图5 监控中心软件功能

POSTGRESQL 数据库中保存的信息是各项功能实现的基础。由于GTK+2.0 开发可以完全使用C 语言来实现,所以在一个GTK+2.0 程序中可以很方便的进行POSTGRESQL 数据库的各项操作。需要注意的是在使用GTK+2.0 开发中文软件的时候要将输入字符设置为utf-8 的格式,否则软件不能正常显示中文字。

3.3 车载终端和监控中心通信程序设计

出租车终端已获得 IP 实现拨号上网,监控中心也进行了服务器端的端口映射,两者都成为了连上Internet 的主机,接下来就可以通过Socket(嵌套字)实现两主机进程间的通信。

在网络通信过程中,各主机的进程是由与其绑定的端口号来进行区分的。

出租车终端和监控中心采用 client 和server 模型,因为数据发送比较频繁,所以使用UDP 协议进行数据包的传输,以提高传输速率。首先由车载终端进程创建一个Socket,接着向监控中心指定端口发起连接请求。监控中心进程也创建一个Socket,并将其绑定到该指定端口,接着对该端口进行监听,一旦检测到连接请求,随即调用connect 函数建立该连接,从而在两主机上的Socket 之间建立连接,之后双方进程之间就可以通过send()和recv()函数进行数据的发送和接收操作了。

4 结论

经过实际调试应用后,系统运行稳定。再加上本系统软件部分都是在Linux 操作系统下实现,使得系统开发成本大大降低,如果在车载终端硬件设计时能够进行针对性的优化配置,将使得成本进一步降低。另外,在本系统的基础上扩展其他功能也是很方便的。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top