CN1968468B - 集GIS与PDA功能于一体的Tetra手机及其实现方法 - Google Patents
集GIS与PDA功能于一体的Tetra手机及其实现方法 Download PDFInfo
- Publication number
- CN1968468B CN1968468B CN2006101040637A CN200610104063A CN1968468B CN 1968468 B CN1968468 B CN 1968468B CN 2006101040637 A CN2006101040637 A CN 2006101040637A CN 200610104063 A CN200610104063 A CN 200610104063A CN 1968468 B CN1968468 B CN 1968468B
- Authority
- CN
- China
- Prior art keywords
- gis
- module
- information
- program
- tetra
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明涉及一种具备GIS功能和PDA优势的Tetra数字集群手机,主要应用于政府部门、公共安全以及轨道交通等集群通信系统中。本发明从软件架构的设计着手,设计创造了符合自己电话程序的接口协议栈(简称T-Server)程序,在一个嵌入GIS功能的Tetra手机上,同时实现了PDA和Tetra手机的功能;同时利用Tetra手机的一体化优势对GIS功能进行开发,引入组队位置信息共享的技术,实现了两类新增功能,一是可在GIS地理图中进行组队成员定位显示,能够实现组队位置信息共享的技术,对成员能够进行实时定位;另一是在运行GIS程序时,可通过直接点击成员点对地图中的组成员进行呼叫和短信操作。
Description
技术领域
本发明涉及一种嵌入GIS的Tetra集群手机,更具体地,是涉及一种具备GIS功能和PDA优势的Tetra集群手机及其实现方法。该手机在Tetra集群手机和具备GIS功能的PDA之间实现了一体化。
背景技术
目前,国外在数字集群通信系统的建设和应用方面已经很成熟。芬兰的诺基亚、美国的摩托罗拉等大型公司已开发出了大量的集群通信系统产品,这些产品已应用于各国的政府部门、工矿企业公共安全以及轨道交通等系统中。
在国内,政府已经意识到了数字集群移动通信系统的重要作用。2000年12月28日信息产业部发布了电子行业《数字集群移动通信系统体制》行业标准,该标准推荐了Tetra和IDEN两种体制。目前,我国已建设了铁路、地铁、轻轨、水利、公安、安全等20多个Tetra数字集群网,2003年公安部已经制定350MHz Tetra数字集群行业标准,并在广州组建了试验网。
特别是,为迎接2008年北京奥运会,作为“数字北京”、“数字奥运”的无线通信指挥调度网络平台,由北京正通公司于2003年建设了北京市政府六十项重大工程之一——北京市800MHz数字集群指挥调度共网,目前已投入使用并正在扩容。该网络能够在净化北京电磁环境、节约频率资源和社会资源的同时,极大地提高北京国际化大都市的应急指挥调度能力,满足公安、安全、卫生、消防、防汛、防火、急救等政府部门的指挥调度需求。
随着我国数字集群移动通信系统的建设,对于依托数字集群移动通信共网的各种应用系统也出现了新的应用方式。由于Tetra数字集群共网只是一个无线应用的平台,不同行业在该平台上有不同的应用,目前还没有一套完全面向不同行业综合应用的“移动终端”,因此必须对Tetra数字集群移动终端进行开发,将其应用至不同行业的实际工作中。
该终端根据当前Tetra集群通信系统的应用特点,从通信和数据应用的角度,对特种行业应用所需要的智能数据终端系统进行研究和开发,分析其体系结构和应用软件架构,开发一套具有较强的通信处理能力、系统扩展能力和数据处理能力,特别是针对目前国内大量建设的应急指挥系统,提出在整个指挥调度中,基于移动智能终端的一体化解决方案,力图使其在应急指挥系统中的指挥调度、现场辅助决策以及数据采集的功能上,更加完备、更加实用,提高事件的快速处置能力。为公安和交通等行业在日常工作和紧急事件处置中,发挥重要作用。
传统中的Tetra集群手机显示屏幕小、呼叫内容简单、用户操作界面单调,并且在集群呼叫时,不能够了解同组成员的位置信息,不能为自己和别的成员进行位置定位。而在PDA中,可以实现基本的掌上电脑的功能,有的PDA也能够实现地理位置信息定位的功能, 但是大多数的PDA没有能够进行通话的功能,能够通话的PDA也大多数是在GSM网上进行的通信的PDA,而不能在集群网上进行通信。
发明内容
本发明的目的在于将两个独立的产品有效地、成功地合为一体,在一个嵌入GIS功能的Tetra手机上,同时实现PDA和Tetra手机的功能。我们重点从软件架构设计着手,设计创造了符合自己电话程序的接口协议栈(Tetra Server,简称T-Server)软件,同时引入组队位置信息共享的技术,将电话操作界面程序和GIS程序相互融合,可以在GIS程序中对组内成员直接进行呼叫和发短信。使Tetra集群手机和具备GIS功能的PDA之间实现了一体化。我们还利用本发明Tetra手机的一体化优势对GIS功能进行了开发和创新。
本发明集GIS、GPS与PDA功能于一体的Tetra手机,由液晶触摸屏、硬件主板、电池模块和手机外壳组成,其特征在于,硬件主板由嵌有GPS模块的PDA模块和Tetra手机模块两部分组成;PDA模块和Tetra手机模块之间通过连接器和电缆连接,以RS-232串口的方式来进行通信,PDA模块的发送串口接向Tetra手机模块的接收串口,Tetra手机模块的发送串口接向PDA模块的接收串口。
本发明的Tetra手机除具备现有技术中的GIS功能外,还具备两类新增功能;一类是在GIS地理图中进行组队成员定位显示,即在GIS程序中,能够看到组内所有的成员,能够实现组队位置信息共享的技术,对成员能够进行实时定位;另一类是在GIS界面中,对地图中的组成员进行呼叫和短信操作,即可以在运行GIS程序时,对GIS图中存在的成员能够直接点击成员点而进行呼叫或短信操作。
本发明的Tetra手机除GIS程序上的操作都在液晶触摸屏上用触摸笔来执行外,其他操作既可以通过液晶触摸屏上的数字键来进行操作,也可以通过按键来进行操作;如可以通过直接按PTT键来发起直接组呼,也可以使用软件中的数字键或者是按键来发起呼叫、发短信和进行挂断,同时,本手机还有一个切换按键,可以在电话程序和GIS程序间进行切换。
本发明集GIS与PDA功能于一体的Tetra手机,其信息在Tetra基站和Tetra手机间的传送过程如下;
信息接收过程;控制和业务信息由Tetra基站发向Tetra手机模块,Tetra手机模块接收处理后,会通过串口再发向PDA模块。PDA模块会对信息进行帧的解析,以区别信息到底是GPS信息还是普通短信息,然后将不同的信息传入到不同的软件中进行处理;
信息发送过程;用户首先在Tetra手机上进行操作,然后在软件中产生一个消息队列到T-Server,T-Server接口协议栈会把信息进行转换,然后PDA模块会把信息通过串口再传到Tetra手机模块,再由Tetra手机模块上的天线传至Tetra网基站。
本发明中基于消息队列的T-Server软件运行在PDA模块上,负责Tetra手机模块与PDA模块上的消息交互,对Tetra底板方面提供帧的解析和生成,对MMI软件提供消息机制完成与PDA模块的消息交互,该模块对外提供API函数来实现具体的信息。
T-Server软件的运行流程如下;
输入发送过程;用户在屏幕上进行操作之后,相关程序会产生一个消息队列到T-Server,T-Server会一直对消息队列进行监听,接收到消息队列后会对其进行分析识别,判断出信令的类别,然后对信令进行一定的帧处理,使其能与Tetra手机模块下的协议信令相一致,最后经过处理后的信令经过RS-232串口向Tetra手机模块发送;
接收处理过程;从Tetra手机模块发上来的消息通过RS-232串口进入PDA模块,T-Server先将发送过来的消息信令转换为自己需要的帧结构信令,然后将到来的消息进行识别,最后传向各个业务软件,由各个业务软件来进行处理。
Tetra手机模块和T-Server之间通信所用到的封装信令如下;
#ifndef_MMI_H
#define_MMI_H
#endif
Typedef U32 Boolean;
typedef U32 MCC_Type;
typedef U32 MNC_Type;
typedef U32 SSI_Type;
#define HSArrayIndex 21 /*06MAR02*/
/*pid definitions for primitives*/
#define MAX_GRP_IDS 64 /*Maximum number of concurrent groups*/
/*changed the value from 4 to 64 on04-02-05 as we now support 64 groups*/
#define MAX_DGNA_GROUPS 32/*Maximum number of DGNA Groups Added on 7-12-04*/
Typedef enum{
TMOSetUpInd=1, /*struct TMO_SetUpIndType被呼信令-1*/
TMOSetUpResp, /*struct TMO_SetUpRespType接收呼叫响应-2*/
TMOSetUpConf, /*struct TMO_SetUpConfType呼叫建立确认-3*/
TMOTxInd, /*struct TMO_TxIndType发射指令-4*/
TMOReleaseInd, /*struct TMO_ReleaseIndType通话结束指令-5*/
TMORegInd, /*struct TMO_RegIndType注册信息-6*/
TMOServiceInd, /*struct TMO_ServiceIndType服务区信息-7*/
TMOSetUpReq, /*struct TMO_SetUpReqType呼叫申请-8*/
TMOReleaseReq, /*struct TMO_ReleaseReqType通话结束申请-9*/
TMOSdsInd, /*struct TMO_SdsIndType收到状态短信指令-10*/
TMOUnitSdsInd, /*struct TMO_UnitSdsReqType收到文本短信指令-11*/
TMOSdsReq, /*struct TMO_SdsReqType状态短信发送申请-12*/
TMOUni tSdsReq, /*struct TMO_Uni tSdsReqType文本短信发送申请-13*/
TMOSdsRep, /*struct TMO_SdsRepType短信发送报告-14*/
TMOGrpAttachDetachReq, /*struct TMO_GrpAttachDetachReqType组附属/去附属申请-
15*/
TMOGrpAttachDetachInd, /*struct TMO_GrpAttachDetachIndType组附属/去附属指令-
16*/
DMOSetUpInd=30, /*struct DMO_SetUpIndType被呼信令-30*/
DMOSetUpReq, /*struct DMO_SetUpReqType呼叫申请-31*/
DMOSetUpConf, /*struct DMO_SetUpConfType呼叫建立确认-32*/
DMOReleaseReq, /*struct DMO_ReleaseReqType通话结束申请-33*/
DMOReleaseInd, /*struct DMO_ReleaseIndType通话结束指令-34*/
DMOUnitSdsReq, /*struct DMO_UnitSdsReqType文本短信发送申请-35*/
DMOSdsReq, /*struct DMO_SdsReqType状态短信发送申请-36*/
DMOSdsRep, /*struct DMO_SdsRepType短信发送报告-37*/
DMOSdsInd, /*struct DMO_SdsIndType接收状态短信指令-38*/
DMOUnitSdsInd, /*struct DMO_UnitSdsIndType接收文本短信指令-39*/
SysPttStatus=60, /*struct Sys_PttStatusType PTT状态报告-60*/
SysBattery, /*struct Sys_BatteryType电池电量-61*/
SysSignal, /*struct Sys_SignalType信号强度-62*/
SysDmoReq, /*struct Sys_DmoReqType TMO转DMO申请-63*/
SysTmoReq, /*struct Sys_TmoReqType DMO转TMO申请-64*/
SysModeAck, /*struct Sys_ModeAckType状态转换确认-65*/
}MainboardPrimitives;
本发明为集GIS与PDA功能于一体的Tetra手机,其MMI主板GIS软件系统模块由用户交互层、功能实现层和程序控制层三层结构构成,用户交互层包括UI模块和DLG模块,该层主要功能是面向用户提供用户所需的系统功能,并将用户操作进行分解传递到程序控制层;程序控制层是系统的核心模块,主要功能为接收来自用户交互层和功能实现层的请求,并做出判断处理将请求映射到功能实现层的相应模块来执行;功能实现层完成了程序的所有功能,包含所有系统功能实现模块;为了降低系统的耦合度,相同层次的不同模块不能直接进行通信,用户交互层与功能实现层上的模块不能进行通信,即所有的模块间的通信都由程序控制层的模块中转实现。
本发明除具备现有技术中的GIS功能外,还具备两类新增功能;一类是在GIS地理图中进行组队成员定位显示,即在GIS程序中,能够看到组内所有的成员,能够实现组队位置信息共享的技术,对成员能够进行实时定位;另一类是在GIS界面中,对地图中的组成员进行呼叫和短信操作,即可以在运行GIS程序时,对GIS图中存在的成员能够直接点击成员点而进行呼叫或短信操作。
在GIS地理图中进行组队成员定位显示的功能通过手机短信消息队列的方式实现,Tetra手机间定位显示包括两种发送GIS短信信息的方式,一种为自动GIS短信息发送,另一种为手动GIS短信息发送;两种方式的比较如下表所示;
1)自动GIS短信息发送方式(使用的编程语言为Embedded Visual C++4.0)主要是适用于组内部成员间的定位显示,具体过程为:由Tetra手机中的GPS模块通过天上的卫星来得到自己的经纬度,在接收到自己的经纬度之后,在本机应用程序上进行处理,将数据帧以Tetra短信的帧格式来发送到调度台,调度台再转发到组中任意一个Tetra手机上,最后,组中每个Tetra手机都能够得到第一个Tetra手机的位置信息了;当Tetra手机收到组内别的组员的位置信息后,会向GIS程序传送信息,内容包括经纬度、海拔、标准时间等众多的信息,
此GIS程序用消息队列如下:hr=g_SWriteQueue.CreateQueue((TCHAR*)MQ_UP_PATHNAME)向短信息程序发送GIS信息,是上行位置信息;GIS程序传送给Tetra板的数据结构如下,它包含18字节的数据,具体压缩后的内容如下表所示:
struct UpLocation 上行帧数据结构(GIS程序->Tetra板)
{reserved Char[2];预留2字节
Char local; 1字节南北/东西 0X00:北纬/东经0X01:北纬/西经0X02:南纬/东经0X03:南纬/西经
float latitude;4字节
float longitude;4字节
float High; 4字节
Char UTC[3]; 3字节
};18字节
当GIS短信息发送给调度台以后,经过调度台重组,添加短信息内容之后,通过Tetra基站转发短信息给其他同组用户;当终端收到来自调度台的位置更新信息之后,提取出来自调度台的位置信息内容,短信息程序使用消息队列如下:
hr=g_SWriteQueue.CreateQueue((TCHAR*)MQ_DOWN_PATHNAME);向GIS程序发送,是下行位置信息,帧结构为24字节:
一个位置结构体(18字节)+ISSI(3字节)+组号(3字节)
struct DownLocation位置结构体
{reserved Char[2];预留2字节
TChar Local;1字节南北/东西0X00:北纬/东经0X01:北纬/西经0X02:南纬/东经0X03:南纬/西经
Float Latitude;4字节
float Longitude;4字节
float High; 4字节
Char UTC[3];3字节
Char ISSI[3]; 3字节
Char GSSI[3]; 3字节
};24字节
将此信息交由GIS程序处理,得到ISSI用户的位置和所属组;
2)手动GIS短信息发送方式主要是用在组内的成员A向组外的成员B进行GIS位置信息的发送,具体过程为:
A首先打开短信程序,在短信程序中选中GIS,在号码一栏写上B的号码,发送内容为空,然后进行发送,B通过Tetra基站收到A的GIS位置信息之后,即可看到A当时的地理位置信息,B可以对A回复手动GIS信息,这样A即可看见B当时的地理位置信息了;在A向B发送手动GIS信息后,B可以看见A的位置点,但是B只能看见A的一个不动的点,这时,B可以知道A当时的位置。手机会每隔一个固定的时间会进行自动的刷屏,这时,手动信息发送的点会被刷掉。当A发生位置变换时,A需要再给B发送一个手动短信才能实现B对A的再一次定位。
当短信息程序接收到GIS上行短信息后,会自动把它作为文本短信息的内容,通过普通文本短信的形式发送给server。通过预留字节提醒server这是一条GIS短信息,server就不用回复了,也不用保存为已发短信息了。
下图为GIS短信息的数据结构:
手动GIS短信息发送的数据结构与自动发送相同,当目标终端接收到这条文本短信息后,通过预留字节辨析,会发现这是一条GIS短信息,信息模块会对该数据模块进行重构得到如下“一个位置结构体(18字节)+ISSI(3字节)+组号(3字节)”的数据结构:
同时,把这个数据结构再传送给GIS程序,这样,接收方就可以收到带对方Tetra号码的GIS位置信息,从而得到对方的GIS位置。
在GIS界面中可以对地图中的组成员进行呼叫和短信操作,具体过程为:首先,GIS程序通过GPS卫星和Tetra网络接收其它组组成员的经纬度坐标信息。然后,将组成员的位置信息动态地显示在地图的跟踪层上,(跟踪层是指地图里面人员移动所经过的动态虚拟点),地图的实现会对组成员的位置进行实时更新,当用户点击地图上的组成员后,系统可以提供对该组成员的呼叫以及短信功能。GIS程序通过对数据库的查找,找到用户选中的组员信息,并提取出对应的电话号码。当用户点击呼叫或短信后,GIS程序将用户的手机号码和启动PHONE的标识信息打包写入消息队列中,直接调用PHONE程序而出现PHONE程序界面。
在GIS界面中对地图中的组成员进行呼叫和短信操作的技术实现方法为:
首先GIS模块通过Tetra网络接收其他组成员的经纬度坐标信息,将此信息交由GIS模块处理,得到ISSI用户的位置和所属组;
将组成员的位置信息动态显示在地图的跟踪层里,实现对组成员位置的实时更新;具体如下:
当得到组成员的位置信息后,在GIS模块中将经纬度坐标创建成一个点对象元素,再将经纬度坐标赋到新的点对象中,具体代码如下:
CSeGeoPoint*myGeoPoint=new CSeGeoPoint();
myGeoPoint->SetPoint((long)fLongitude,(long)fLatitude);
创建完点对象元素后,便可以将它添加到地图的跟踪层中:
m_MapWnd.m_TrackingLayer.AddEvent(myGeoPoint,_T(″″));
同时根据不断得到的组成员经纬度坐标信息,对点对象元素的位置进行更新,以便在地图上保证组成员位置的时时更新;
当用户点击地图中的组成员后,GIS模块会通过对数据库的查找,找到用户选中的组员信息,提取出对应的电话号码;具体如下:
用户首先获得的是Tetra号,通过Tetra号找到组中的成员,然后再获取到ISSI号码,GIS模块根据组成员的ISSI号找到组成员的相关信息,然后通过MSMQ传递给PHONE模块,启动电话或短信界面:
long lTetraUserIndex=g_SuperGis.GetCurTetraUserIndex();//获得选中的Tetra用户序号
if(lTetraUserIndex<=0)return 1;
CString sPhoneNumber;
//通过序号获得手机号等...........TCHAR szPhoneNumber[20];
szPhoneNumber=GetPhoneNumber()
1)当用户点击呼叫或短信后,GIS模块将用户的手机号(ISSI号码)的信息打包写入MSMQ中,直接调用PHONE程序;具体如下:
当点击短信或呼叫后,GIS模块调用WRITING方法将电话号码,是短信还是呼叫操作写入MSMQ中等待系统执行:
Writing(SMSSERVERMQ,SMSSERVERLABEL,(BYTE*)sPhoneNumber.GetBuffer(1),sPhoneNumber.GetLength());
(上面的例子表示了程序将电话号码写入了短信的MSMQ中,再通过调用短信的MSMQ,来启动短信的界面)
2)最后出现PHONE程序界面
由获得Tetra号码再得到ISSI号码,再调出短信或者是电话程序的这一段源程序如下:
case MSG_TETRA_SMS:
//向选中的Tetra用户发短信
{long lTetraUserIndex=g_SuperGis.GetCurTetraUserIndex();//获得选中的Tetra用户序号
if(lTetraUserIndex<=0)return 1;
CString sPhoneNumber;
//通过序号获得手机号等...........TCHAR szPhoneNumber[20];
Writing(SMSSERVERMQ,SMSSERVERLABEL,(BYTE*)sPhoneNumber.GetBuffer(1),sPhoneNumber.GetLength());
g_pTetraGisDlg->OnStateChage(MSG_TETRA_SMS);
}break;
case MSG_TETRA_CALL:
//向选中Tetra用户打电话
{long lTetraUserIndex=g_SuperGis.GetCurTetraUserIndex();//获得选中的Tetra用户序号
if(lTetraUserIndex<=0)return 2;
CString sPhoneNumber;
//通过序号获得手机号等...........
Writing(TELEPHONESERVERMQ,TELEPHONESERVERLABEL,(BYTE*)sPhoneNumber.GetBuffer(1),sPhoneNumber.GetLength());
g_pTetraGi sDlg->OnStateChage(MSG_TETRA_CALL);}
break;
本发明的有益效果是:集成了两个成熟产品、并嵌入GIS功能的Tetra手机,具有所有的集群通话功能、GIS信息定位功能、掌上电脑的功能,能够充分满足人们对集群通信的要求,从而达到满足实时通信、准确通信的要求。以PDA技术作为本发明的MMI控制板,PDA可以比较好的满足用户多功能使用的要求。
附图说明
下面参照附图更详细地描述本发明,附图中:
图1是本发明Tetra手机主要部件(手机外壳除外)的结构图
图2是本发明Tetra手机系统模块间的通信结构图
图3是本发明Tetra手机T-Server软件总体设计框图
图4是本发明Tetra手机MMI主板GIS软件系统模块层次结构图
图5是本发明Tetra手机MMI主板GIS软件系统模块用户操作处理流程图
图6是本发明Tetra手机MMI主板呼叫软件(电话程序)流程图
图7是本发明Tetra手机GIS界面的按钮显示图
图8是本发明Tetra手机的节点/组员功能键区按钮显示/隐藏规则图
图9是本发明Tetra手机的GIS地图上各类点的定义示意图
图10是本发明Tetra手机软件设计的结构图
图11是本发明Tetra手机T-Server软件工作流程图
具体实施方式
如图1所示,为依据本发明设计的Tetra集群手机主要部件(手机外壳除外)的结构图,主要由两个硬件主板和一个供电的电源及液晶触摸屏组成,前面的一块硬件主板是嵌有GPS模块的MMI控制板(含有PDA模块),后面的一块硬件主板是Tetra手机模块。在整体的结构中,我们将两个模块板合到一个形体中,两块模块之间是通过一个RS-232串口在进行相互通信的。(在RS-232串口中,PDA模块的发送串口接向Tetra手机模块的接收串口,Tetra手机模块的发送串口接向PDA模块的接收串口,并且两端串口要分别能够接地。)在运行PHONE程序和GIS程序时,我们主要是针对前面这个硬件模块上的按键和触摸屏进行操作,消息指令通过RS-232串口传入到后面那块手机模块上,经过处理后再通过天线传入网中;在接收指令时,集群网络会将信息通过天线传送到Tetra手机模块上,Tetra手机模块会将消息通过RS-232串口再传给PDA模块,然后消息会在前面的触摸屏上进行显示。图1中,Tetra基站的任务是基于规则的信息转发,和管理;Tetra手机模块是实现Tetra的所有功能和软件控制接口;MMI主板是实现带GPS、液晶触摸屏的PDA板。
如图2所示,为本发明Tetra手机整个通信过程的结构图,所有的信息都是在Tetra基站和Tetra手机间进行相互传送的。以Tetra手机的接收信息过程为例:信息由Tetra基站发向Tetra手机模块,Tetra手机模块接收处理后,会通过串口再发向PDA模块。PDA模块上的T-Server软件会对信息进行帧的解析,以区别信息到底是GPS信息还是通话信息,然后将不同的信息传入到不同的软件(MMI板GIS软件或MMI板呼叫软件)中进行处理。在Tetra手机的发送信息过程中,用户首先在Tetra手机上进行操作,然后在软件中产生一个消息队列到T-Server,T-Server软件会把信息进行转换,然后再传到PDA模块,PDA模块会把信息通过串口再传到Tetra手机模块,再由Tetra手机模块上的天线传至Tetra网基站。图2中,T-Server是实现控制Tetra模块的API函数,并进行PDA模块上信息数据帧的解析;MMI板GIS软件的功能是实现GIS的操作功能,处理成员位置的GPS定位及显示,生成位置数据库;MMI板呼叫软件的功能是以消息激活机制,实现呼叫界面、配置界面、短数据界面及切换。
如图3所示,为本发明Tetra手机T-Server软件总体设计框图。图中数据分为两个方向的走向,一个是由手机向外部发送信息,另一个是手机接收信息。具体流程为:(1)发送过程:在界面上进行对应用程序(如电话程序)的操作了之后,应用程序会产生一个消息队列到T-Server程序,由T-Server程序来进行分析,根据消息标签来分析过来的消息到底是什么内容的消息,然后生成新的数据,形成新的帧结构,最终由串口来进行发送。(2)接收过程:PDA模块上的应用程序是由串口来接收数据的,接收来的数据由T-Server成帧处理了之后,由T-Server来进行分析,分析过来的消息到底是什么内容的消息,最后将消息队列传送到显示的界面。
如图4所示,是本发明Tetra手机MMI主板GIS软件系统模块层次结构图。其中:UI为用户操作界面,DLG为对话框,GIS为地理位置信息,GPS为卫星定位模块,DB为数据库,Team为Tetra成员分组,System为系统程序切换。本发明的Tetra Gis系统包含系统模块和非系统模块;非系统模块由Res和Public构成,主要是保存系统共享资源和数据结构定义等。系统模块采用如图所示的三层结构,分别包括用户交互层,功能实现层和程序控制层。用户交互层包括UI模块和DLG模块,该层主要功能是面向用户提供用户所需的系统功能,并将用户操作进行分解传递到程序控制层。程序控制层是系统的核心模块,主要功能为接收来自用户交互层和功能实现层的请求,并做出判断处理将请求映射到功能实现层的相应模块来执行。功能实现层完成了程序的所有功能,包含所有系统功能实现模块。为了降低系统的耦合度,相同层次的不同模块不能直接进行通信,用户交互层与功能实现层上的模块不能进行通信,即所有的模块间的通信都由程序控制层的模块中转实现。
如图5所示,是本发明Tetra手机MMI主板GIS软件系统模块用户操作处理流程图。首先,用户交互层的用户交互界面获取用户的操作类型,并对用户操作进行分解以系统消息的方式传递到程序控制层。程序控制层的消息处理中心在获取用户交互层的消息后对消息进行分类,分别由对应的消息处理模块负责对消息进行功能分解和映射。最终消息分解后的功能执行序列被传递到功能实现模块,功能实现模块在相应模块上执行每个功能并得到相应结果,完成用户操作的请求功能。图中下部框中为模块所使用到的组件和语言。图5中,UI的意义是指用户界面,用户在进行了界面上的操作了之后,会产生相应的消息队列(MSMQ)的方式到指定的模块去进行操作执行。可执行的模块包括Query(查询)、Path(最短路径)、Sign(路标标记)、Navigate(导航路线)、GPS(GPS接收属性,如端口)、System(系统控制多种语言的输入)、Tetra组(处理是否显示组成员、组成员的颜色显示等属性信息)、DB(数据库)这样一些模块。下面以GPS(GPS接收属性)为例,用程序来进行说明。
在UI的GPS面扳上点击打开GPS,定义pCallBackFunc这样的一个方法:
void CDlgGpsSet::OnGpson()
{
//TODO:Add your control notification handler code here
GPS_SETDATA gpsSetData;
gpsSetData.GPS_PORT=2;
gpsSetData.GPS_RATE=57600;
gpsSetData.GPS_BITS=8;
gpsSetData.GPS_PARITY=0;
gpsSetData.GPS_STOPBITS=0;
GPS_Param.gpsSetData=gpsSetData;
pCallBackFunc(DLG_GPS_OPEN,(LPVOID)&GPS_Param);
}
2)通过pCallBackFunc方法将GPS的DLG_GPS_OPEN消息发送到相应的处理模块
/************************************************************************/
/* GPS面板 消息处理 */
/************************************************************************/
UINT CMsgProcCenter::OnCommandFromGPSDlg(MSG_TYPE msgType,LPVOID pParam)
{
/**/
LPARAM_GPS*lpGPS=(LPARAM_GPS*)pParam;
/**/
switch(msgType)
{
case GPS_INITIALIZTION:
{
UINT uInt;
bool bAutoRun;
g_XmlDB->GetGPSParams(uInt,bAutoRun);
g_SuperGps.SetAutoRun(bAutoRun);
g_SuperGps.SetInterval(uInt);
if(g_SuperGps.GetAutoRun())
{
m_nTimer=SetTimer(AfxGetMainWnd()->GetSafeHwnd(),
1,
g_SuperGps.GetInterval(),
TimerProc);
}
break;
}
case GPS_START:
{
////if(g_SuperGps.GetGpsOpened())
{
m_nTimer=SetTimer(AfxGetMainWnd()->GetSafeHwnd(),
1,
g_SuperGps.Get Interval(),
TimerProc);
}
break;
}
case GPS_STOP:
{
KillTimer(AfxGetMainWnd()->GetSafeHwnd(),1);
break;
}
case DLG_GPS_GETINTERVAL: //得到Interval值
lpGPS->nInterval=g_SuperGps.Get Interval();
break;
case DLG_GPS_SET_INTERVAL:
g_SuperGps.SetInterval(lpGPS->nInterval);
break;
case DLG_GPS_SETAUTORUN: //得到autorun值
{
g_SuperGps.SetAutoRun(lpGPS->bAutoRun);
break;
}
case DLG_GPS_GETAUTORUN:
{
lpGPS->bAutoRun=g_SuperGps.GetAutoRun();
break;
}
case DLG_GPS_GETGPSDATA: //得到GPS数据
lpGPS->gpsData=g_SuperGps.GetGPSData();
// lpGPS->gpsData.GPS_LONGITUDE=g_SuperGps.GetGPSLongitude();
// lpGPS->gpsData.GPS_LATITUDE=g_SuperGps.GetGPSLatitude();
// lpGPS->gpsData.GPS_BEARING=g_SuperGps.GetGPSBearing () ;
break;
case DLG_GPS_GETSTATELLITEDATA://得到卫星数据
lpGPS->statelliteData=g_SuperGps.GetSatelliteData();
break;
case DLG_GPS_OPEN: //设置GPS参数
{
if(lpGPS)
{
g_SuperGps.OpenGPS(lpGPS->gpsSetData);
} else
{
g_SuperGps.OpenGPS();
}
break;
}
case DLG_GPS_CLOSE:
g_SuperGps.CloseGPS();
break;
default:
break;
}
return 0;
}
3)然后由对应的GPS模块(g_SuperGps)处理相应的请求, 如
case DLG_GPS_OPEN: //设置GPS参数
{
if(lpGPS)
{
g_SuperGps.OpenGPS(lpGPS->gpsSetData);
} else
{
g_SuperGps.OpenGPS();
}
break;}
GPS的处理过程结束,别的模块也类似。
图6所示,为本发明Tetra手机MMI主板呼叫软件(电话程序)流程图。MMI主板呼叫软件(电话程序)电话程序中定义了三种状态,分别为空闲状态、输入状态、通话状态。在任何时刻,它必定处于其中的某一种状态,在此,这个状态被称为当前状态。另外,电话程序中还设定了一个堆栈,它的作用为:(1)保存电话程序刚启动时所处的状态;(2)当电话程序需要进行状态转换时,它被用来保存上一个当前状态以及新建的状态。(注:这里提到的“状态”和通常讲的“状态”稍有不同,实际上它是对通常将的“状态”的一种抽象,即相当于面向对象程序中的类。)
电话程序是基于消息驱动的,它主要接收两种消息,一种是由用户操作而触发的消息,另一种是由T-Server触发的消息。当将这些消息处理完毕后,电话程序将执行两种操作,一种是刷新程序的界面,另一种是给T-Server发送MSMQ消息,但是,后一种操作只是在接收到某些消息后,才会执行,即并不是对所有的消息处理后,都将引发这项操作。
如图6所示,当电话程序接收到消息以后,这个消息首先将被发送给电话程序的CPhoneDlg对象进行处理,之后,它又被传递给CStack对象,在这个对象中,当前状态将对这个消息进行处理,处理完毕后,电话程序将检查是否需要进行状态转换,如果需要进行状态转换,电话程序将建立一个新的状态,这个状态将作为新的当前状态,新的当前状态继续对这个消息进行处理,在当前状态对消息处理完毕后,电话程序将会检测栈顶的元素是否有效,如果栈顶的元素无效,那么这个元素将被弹出,堆栈中的下一个元素将被作为栈顶的元素,程序继续检测这个元素的有效性。这种操作将一直进行下去,直到找到一个有效的元素,这个有效的元素将被作为当前状态。经过这样一系列处理之后,电话程序将进行界面刷新,刷新之后,电话程序界面上显示的内容正是对这个消息处理的结果。
如图7所示,是本发明Tetra手机GIS界面的按钮显示图。图中1为功能控制键,2用户功能面板键,3为GPS信号区,4、5为节点/组员功能键区,6为静态文本显示区,7(包括7.1-7.4)为功能键区。各功能键状态及使用定义如下:
功能控制键1有两种状态:下压状态和原始状态。通过单击该按钮实现两种状态之间的切换。当由原始状态切换到下压状态时,将功能键区2和用户功能面板键3显示,其他部分保持不变;当由下压状态切换到原始状态时,将功能键区2和用户功能面板键3隐藏,其他部分不变。
用户功能面板键2的功能是将用户功能列表面板显示出来,单击该按钮,主窗体将被覆盖。该键的默认显示状态均为隐藏,其显示状态由功能控制键1控制。
GPS信号区该区3的功能主要显示向用户提供的文本信息,显示内容由程序内部控制,包括,选中对象信息,导航信息等。该区只有显示状态即保持显示。
节点/组员功能键区4、5包含两类按键:节点相关按键和Tetra组员相关按键。每组包括两个按钮,两组按键共享一块屏幕显示区域,同组按钮保持同时显示/隐藏。该键区按键默认状态为隐藏。该键区按钮显示/隐藏规则如图8所示,从原始状态开始,用户单击地图改变原始状态,通过判定,状态转换为“选中节点”时,节点组的按钮状态设为显示状态,节点组按钮覆盖显示区域;状态转换为“选中组员”时,组员组的按钮状态设为显示状态,组员组按钮覆盖显示区域;当为“空白”状态时,两组按钮都设为隐藏,状态自动转换为原始状态。当前状态为“选中节点”或“选中组员”时,用户单击地图操作需要相同的判断和状态转换流程。节点组包括:设为目标点和存储为路标两个按钮;单击设为目标点按钮,选中的点将作为目标点在地图上标示,同时转换到原始状态,单击存储为路标按钮,主界面将被覆盖。组员组包括:打电话和发短信两个按钮;单击任一按钮,主界面将被PHONE程序界面或短信界面覆盖。如图9所示,节点表示GIS地图上道路的交差点,目标点为要到达的点,必经点为路上所必须经过的点,路标点的用途是将一些要设为有用点的点设为路标点,以后可以直接将点设为目标点或者是路标点。
静态文本显示区6为图片区,包含以下几种状态:断开/连接中/强度1/强度2/强度3/强度4。其状态的装换由程序内部控制。该区只有显示状态即保持显示。
功能键区7包含4个功能键:地图放大/地图缩小/全图显示/地图平移。其中,前三项的功能通过单击对应按钮即可实现;地图平移功能键包含两个状态:下压和原始,通过单击操作可实现两者转换,当为下压状态时,在地图工作空间(屏幕空白区域)下压滑动触笔可实现地图平移,原始状态即取消地图平移功能。该键区的所有按键默认显示状态均为隐藏,其显示状态由功能控制键1控制。
屏幕其它区域为可见的地图工作空间,它包括除上述图标覆盖区域外的所有区域。该区负责显示地图。
如图10所示,是本发明Tetra手机软件设计的结构图。本发明采用MOBILE EXP平台架构进行软件设计,GIS软件、PHONE软件和T-Server软件都是独立的进程运行在Winee上。采用MOBILE EXP平台架构可以大大减轻电话程序界面的开发工作量。我们实现了三个方面的内容:1是写好接口协议栈程序(T-Server)实现与Tetra模块的接口。2是实现各业务的界面。3是在phone端实现基于消息队列的自己业务的业务流程。
图10中,T-Server运行在PDA模块上,负责Tetra模块与PDA模块间的消息交互,对Tetra模块方面提供帧的解析和生成,对MMI软件他提供消息机制完成与PDA模块的消息交互,这部分模块对外提供API函数来实现具体的信息。T-Server的设计决定了整个架构的消息处理过程和状态迁移处理,这里考虑将T-Server设计成抢先式独占下行消息的互斥消息处理,内部不记忆状态的被动处理模型。也就是,同一时刻,只接受上层同一进程的消息,没有处理完则不开放别的消息进入。对下层而言,则永远开放消息,这样可以并行处理短消息。T-Server是个独立的功能实体,对Tetra模块实现MMI的消息接口,对上层业务实现完整的功能。也就是T-Server将实现各个业务功能的流程及握手,对上层业务只提供封装的服务。当涉及高优先级抢占时,T-Server接受抢占,但不记忆状态,当上层的栈弹出时发消息通知T-Server,这时T-Server询问Tetra模块原来的呼叫是否存在,如果在则继续通话,不在则断开。
图11所示,为本发明Tetra手机T-Server软件工作流程图。各流程具体表示:业务界面显示方面:对页面显示内容进行操作,在屏幕上完成通话的相关控制,例如个呼电话的呼叫、短信的发送与接收...
核心消息队列监听线程:用户在屏幕上进行了操作之后,相关程序会产生一个消息队列到T-Server,而T-Server会一直对消息队列进行监听,来了消息队列了之后会进行分析识别;启动相应业务程序: 在消息队列到来之后,T-Server会对此进行识别,根据消息队列的标签来进行分析,分析到来的消息队列到底是什么业务呼叫的信令,然后再对信令进行一定的帧处理,帧处理的目的是为了能够与Tetra手机底板下的协议信令相一致。
串口发送:经过处理后的信息会经过物理上连接的RS-232串口向外部发送。
在接收方面:串口接听:从Tetra模块发上来的消息会通过RS-232串口向内部进行发送。
成帧处理:将发送过来的消息信令转换为自己需要的帧结构信令。
其中,帧的格式和内容如下:
注:CRC编码
CRC校验采用16位多项式G(X)=X16+X12+X5+1,只编码‘具体信令’,除祯头祯尾中0x10外,报文中如含有0x10则重发一次
有关帧格式的说明规则:
PDA模块的串口伺服程序以完整帧与Tetra手机模块进行通信,采用收、发指令的数据方式,规则如下:
1.失效时间:是彼此判断处理是否及时的参考,如果超出时间则退出当前状态,主要是为保证各自独立完备不至于由于耦合导致死机。
2.操作场景是每一个发起者在发出信息后,均要得到接收方的确认,这样才算信息传送完成,否则报告故障。
3.为避免帧中的数据被识别为命令,要对帧头进行判断,帧头要足够独特。业务判断处理,实现传输层:将到来的消息进行识别,然后再传向各个业务软件,由各个业务软件来进行处理。
在T-Server中先实现呼叫部分业务,就是有一个工作线程等候上层UI传下的消息,当呼叫相关的消息到达后建立执行线程,进行任务处理。在串口接听线程中先进行成帧处理,在收到匹配帧后,然后再进行相应的处理。
在T-Server中实现其它部分业务的模型与此类似。
当我们的PDA模块要发送信息到Tetra模块时,会从PHONE软件中触发一个消息队列到T-Server,而T-Server会将消息代码合上上面这些Tetra命令合成为一个新的数据帧,然后将数据帧通过串口发给Tetra手机模块,由模块做出了响应之后,会通过T-Server转换命令信息,然后再把命令传回到PHONE界面上。
下面以TMO模式(TMO模式是有Tetra网覆盖的模式)下的呼叫过程为例,说明实现过程。
T-Server程序启动时,就建立消息队列监听线程,用来监听从各个应用程序发过来的消息队列。
HRESULT InitMSMQ(HWND hwnd)
{
CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)PhoneMQThreadProc,NULL,0,NULL);
}
以上代码表示创立一个线程,该线程根据消息队列中消息的标签来判断对应的处理方法。
其中,监听MQ线程所使用的函数为:DWORD WINAPI PTTMQThreadProc(LPVOID lpPara)分析消息,跳转线程所使用的函数为:
DWORD WINAPI PTTServiceThread(LPVOID lp)
举个例子,当在PHONE程序中执行PTT呼叫操作时,会形成下面这个信息标签。
const TCHAR PTT_SIMPLEX_CALL[] = L″Ptt_Simplex_Call″;
以下为T-Server对消息标签的处理:
WaitForSingleObject(g_hTetraCommuModeMutex,INFINITE);//等待可执行信号量
memcpy(tNumber,lpPhoneBuffer,MSMQ_PACKAGE_NUMLEN);
memset(g_PTTCmnd.m_SerialPort.m_pPhoneNO,0,sizeof(g_PTTCmnd.m SerialPort.m_pPhoneNO));
memcpy(g_PTTCmnd.m SerialPort.m_pPhoneNO,lpPhoneBuffer,MSMQ_PACKAGE_NUMLEN);
注:标签为“Ptt_Simplex_Call”的消息是用户输入号码后按下PTT键,Phone程序会向T-Service发送一个消息标签。当监听线程捕获消息后,会自动跳转到相应的处理方法来进行处理。
T-Server通过串口向Tetra模块发送指令,并从串口读出数据,成帧处理后分析出Tetra模块对指令的回复情况,通知Phone程序。
1.串口数据的读取
串口监听线程:ReadThreadFunc(LPVOID lparam),
当串口读入数据后自动触发串口监听线程,将数据读入内存后进行处理。
readBuf=new byte[willReadLen];
ReadFile(ceSeries->m_hComFile,
readBuf,
willReadLen,
&actual ReadLen,0);
2.指令帧的生成
m_SerialPort.SetMessageQ(m_SerialPort.m_signalMode,pszNumber);
m_SerialPort.WritePort();
代码实现是通过串口类成员实现数据帧的填充,再将按照数据格式填充好的数据帧通过串口发送出去。相关代码如下:
byte*sendBuf=NULL;
sendBuf=ceSeries->getMsgToSend(&bufLen);
EnterCriticalSection(&m_hCritical); //进入临界区
WriteFile(ceSeries->m_hComFile,
sendBuf,
bufLen,
&dwNumBytesWritten, NULL) //写串口
LeaveCriticalSection(&m_hCritical); //离开临界区
3.数据分析
对于内存中读入的串口数据,根据数据成帧的约定对其进行成帧,并对成帧的数据进行解析,得出相关信息。
long_CRC=yb_crc(tArray+2,lenForTemp-6);
DisposeMessage(tempArray,ceSeries);
计算CRC,对成帧的数据进行处理
4.通知Phone程序
bRet=PackageCallLineInfo(g_vecCallLineInfo);
... ...
CallLineInfo*pCur=lpInfoMemo;
pCur->nIndex =g_vecCallLineInfo[nLoop].nIndex;
pCur->nDirection=g_vecCallLineInfo[nLoop].nDirection;
pCur->nState =g_vecCallLineInfo[nLoop].nState;
pCur->nMode =g_vecCallLineInfo[nLoop].nMode;
pCur->nMpt =g_vecCallLineInfo[nLoop].nMpty;
... ...
wcscpy(pCur->tNumber,g_vecCallLineInfo[nLoop].tNumber);
hr = g_hQueueServer[g_appMQIndex.nPhoneIndex] //g_hQueueServer
.Write((TCHAR*)PHONE_CALLLINESTATUS,(LPBYTE)lpInfoMemo
,sizeof(CallLineInfo)*g_vecCallLineInfo.size());
Claims (10)
1.集GIS与PDA功能于一体的Tetra手机,由液晶触摸屏、硬件主板、电池模块和手机外壳组成,其特征在于:
所述的硬件主板为含有PDA模块的电路板和含有Tetra手机模块的电路板两块电路板组成;
所述的含有PDA模块的电路板上嵌有GPS模块,GPS模块对Tetra手机定位并处理位置信息;
所述的PDA模块和Tetra手机模块之间通过连接器和电缆连接,以RS-232串口的方式来进行通信,PDA模块的发送串口接向Tetra手机模块的接收串口,Tetra手机模块的发送串口接向PDA模块的接收串口;
所述的含有PDA模块的电路板上有电话操作界面程序、GIS程序;
所述的PDA模块内有基于消息队列的接口协议栈(T-Server),负责Tetra手机模块与PDA模块上的消息交互,对Tetra手机模块提供帧的解析和生成,负责电话操作界面程序、GIS程序与PDA模块的消息交互,同时对外提供API函数来实现具体的信息;
Tetra手机模块接收信息经处理后通过串口发送给PDA模块上的基于消息队列的接口协议栈(T-Server)软件,基于消息队列的接口协议栈(T-Server)软件对所述的信息进行帧的解析以区别是GPS信息还是通话信息,并将GPS信息传送给GIS程序进行处理,将通话信息传送给电话操作界面程序进行处理。
2.如权利要求1所述的集GIS与PDA功能于一体的Tetra手机,其特征在于,GIS程序通过GPS卫星和Tetra网络接收其它组组成员的经纬度坐标信息,同时将组成员的位置信息动态地实时显示在地图的跟踪层上,跟踪层是指地图里面人员移动所经过的动态虚拟点,即能够在GIS程序中显示组内所有的成员的位置信息,能够实现组队位置信息共享的技术,对成员能够进行实时定位;可以在运行GIS程序时,对GIS图中存在的成员能够直接点击成员点而进行呼叫。
3.如权利要求1所述的集GIS与PDA功能于一体的Tetra手机,其特征在于,除GIS程序上的操作都在液晶触摸屏上用触摸笔来执行外,其他操作既可以通过液晶触摸屏上的数字键来进行操作,也可以通过按键来进行操作;在集GIS、GPS与PDA功能于一体的Tetra手机上有一个切换按键,实现在电话程序和GIS程序间进行切换。
4.集GIS与PDA功能于一体的Tetra手机实现方法,其特征在于,信息在Tetra网基站和Tetra手机间的传送过程为:
信息接收过程:控制和业务信息由Tetra基站发向Tetra手机模块,Tetra手机模块接收处理后,通过串口发向PDA模块,PDA模块会对信息进行帧的解析,以区别信息到底是GPS信息还是通话信息,然后将GPS信息传入GIS程序,将通话信息传入电话操作界面程序分别进行处理;
信息发送过程:用户首先在Tetra手机上进行操作,然后在软件中产生一个消息队列到基于消息队列的接口协议栈(T-Server),基于消息队列的接口协议栈会把信息进行转换,然后再传到PDA模块,PDA模块会把信息通过串口再传到Tetra手机模块,再由Tetra手机模块传至Tetra网基站。
5.如权利要求4所述的集GIS与PDA功能于一体的Tetra手机实现方法,其特征在于,GIS程序由用户交互层、功能实现层和程序控制层三层结构构成,用户交互层包括用户界面UI(User Interface)模块和对话模块,用户交互层包括的功能为面向用户提供用户所需的系统功能,并将用户操作进行分解传递到程序控制层;程序控制层是系统的核心模块,包括的功能为接收来自用户交互层和功能实现层的请求,并做出判断处理将请求映射到功能实现层的相应模块来执行;功能实现层完成了程序的所有功能,包含所有系统功能实现模块;为了降低系统的耦合度,相同层次的不同模块不能直接进行通信,用户交互层与功能实现层上的模块不能进行通信,即所有的模块间的通信都由程序控制层的模块中转实现。
6.如权利要求4所述的集GIS与PDA功能于一体的Tetra手机实现方法,其特征在于,可在GIS地理图中进行组队成员定位显示,此功能通过手机短信消息队列的方式实现,Tetra手机间定位显示包括两种发送GIS短信信息的方式,一种为自动GIS短信息发送,另一种为手动GIS短信息发送;
1)自动GIS短信息发送方式是适用于组内部成员间的定位显示,具体过程为:由Tetra手机中的GPS模块通过天上的卫星来得到自己的经纬度,在接收到自己的经纬度之后,在本机应用程序上进行处理,将数据帧以Tetra短信的帧格式来发送到调度台,调度台再转发到组中任意一个Tetra手机上,最后,组中每个Tetra手机都能够得到第一个Tetra手机的位置信息了;当Tetra手机收到组内别的组员的位置信息后,会向GIS程序传送信息,内容包括经度纬度、海拔、标准时间众多的信息,GIS程序再以固定的数据格式通过串口传送给Tetra主板;
此GIS程序用消息队列如下:
hr=g_SWriteQueue.CreateQueue((TCHAR*)MQ_UP_PATHNAME)向短信息程序发送GIS信息,是上行位置信息;GIS程序传送给Tetra板的数据结构如下,它包含18字节的数据:
struct UpLocation 上行帧数据结构(GIS程序->Tetra板)
{reserved Char[2];预留2字节
Char local;1字节南北/东西0X00:北纬/东经0X01:北纬/西经0X02:南纬/东经0X03:南纬/西经
float latitude;4字节
float longitude;4字节
float High;4字节
Char UTC[3];3字节
};18字节
当GIS短信息发送给调度台以后,经过调度台重组,添加短信息内容之后,通过Tetra基站转发短信息给终端用户;当终端收到来自调度台的位置更新信息之后,提取出来自调度台的位置信息内容,短信息程序使用消息队列如下:
hr=g_SWri teQueue.CreateQueue((TCHAR*)MQ_DOWN_PATHNAME);向GIS程序发送,是下行位置信息,帧结构为24字节:
一个位置结构体(18字节)+发送方号码(3字节)+组号(3字节)
struct DownLocation位置结构体
{reserved Char[2];预留2字节
TChar Local;1字节南北/东西0X00:北纬/东经0X01:北纬/西经0X02:南纬/东经0X03:南纬/西经
Float Latitude;4字节
float Longitude;4字节
float High;4字节
Char UTC[3];3字节
Char ISSI[3];3字节
Char GSSI[3];3字节
};24字节
将此信息交由GIS程序处理,得到发送方用户的位置和所属组;
2)手动GIS短信息发送方式是用在组内的成员A向组外的成员B进行GIS位置信息的发送,具体过程为:
A首先打开短信程序,在短信程序中选中GIS,在号码一栏写上B的号码,发送内容为空,然后进行发送,B通过Tetra基站收到A的GIS位置信息之后,即可看到A当时的地理位置信息,B可以对A回复手动GIS信息,这样A即可看见B当时的地理位置信息了;在A向B发送手动GIS信息后,B可以看见A的位置点,但是B只能看见A的一个不动的点,这时,B可以知道A当时的位置,手机会每隔一个固定的时间会进行自动的刷屏,这时,手动信息发送的点会被刷掉,当A发生位置变换时,A需要再给B发送一个手动短信才能实现B对A的再一次定位;
手动GIS短信息发送的数据结构与自动发送相同,当目标终端接收到这条文本短信息后,通过预留字节辨析,会发现这是一条GIS短信息,信息模块会对该数据模块进行重构得到如下“一个位置结构体(18字节)+发送方号码(3字节)+组号(3字节)”的数据结构,同时,把这个数据结构传送给GIS程序,这样,接收方就可以收到带对方Tetra号码的GIS位置信息,从而得到对方的GIS位置。
7.如权利要求4所述的集GIS与PDA功能于一体的Tetra手机实现方法,其特征在于,可在GIS界面中对地图中的组成员进行呼叫和短信操作,具体过程如下:
首先,GIS程序通过GPS卫星和Tetra网络接收其它组组成员的经纬度坐标信息,然后,将组成员的位置信息动态地显示在地图的跟踪层上,跟踪层是指地图里面人员移动所经过的动态虚拟点,地图的实现会对组成员的位置进行实时更新,当用户点击地图上的组成员后,系统可以提供对该组成员呼叫以及短信功能,GIS程序通过对跟踪层的查找,找到用户选中的组员信息,并提取出对应的电话号码,当用户点击呼叫或短信后,GIS程序将用户的手机号码和启动PHONE的标识信息打包写入消息队列中,直接调用PHONE程序而出现PHONE程序界面。
8.如权利要求7所述的集GIS与PDA功能于一体的Tetra手机实现方法,其特征在于,在GIS程序的GIS界面中对地图中的组成员进行呼叫和短信操作的技术实现为:
首先GIS程序通过Tetra网络接收其他组成员的经纬度坐标信息,将此信息交由GIS程序处理,得到发送方用户的位置和所属组;
将组成员的位置信息动态显示在地图的跟踪层里,实现对组成员位置的实时更新;具体如下:
当得到组成员的位置信息后,在GIS模块中将经纬度坐标创建成一个点对象元素,再将经纬度坐标赋到新的点对象中;
创建完点对象元素后,便可以将它添加到地图的跟踪层中;
同时根据不断得到的组成员经纬度坐标信息,对点对象元素的位置进行更新,以便在地图上保证组成员位置的实时更新;
当用户点击地图中的组成员后,GIS程序通过对跟踪层的查找,找到用户选中的组员信息,提取出对应的电话号码,具体如下:
用户首先获得的是Tetra号,通过Tetra号找到组中的成员,然后再获取到发送方号码,GIS程序根据组成员的发送方号找到组成员的相关信息,然后通过微软消息队列MSMQ传递给PHONE模块,启动电话或短信界面,当用户点击呼叫或短信后,GIS程序将用户的手机号的信息打包写入微软消息队列MSMQ中,直接调用PHONE程序;具体如下:
当点击短信或呼叫后,GIS程序将电话号码或短信或呼叫操作写入微软消息队列MSMQ中等待系统执行,最后出现PHONE程序界面。
9.如权利要求4所述的集GIS与PDA功能于一体的Tetra手机实现方法,其特征在于,T-Server软件的运行流程如下:
输入发送过程:用户在屏幕上进行操作之后,相关程序会产生一个消息队列到T-Server,T-Server会一直对消息队列进行监听,接收到消息队列后会对其进行分析识别,判断出信令的类别,然后对信令进行一定的帧处理,使其能与Tetra手机模块下的协议信令相一致,最后经过处理后的信令经过RS-232串口向Tetra手机模块发送;
接收处理过程:从Tetra手机模块发上来的消息通过RS-232串口进入PDA模块,T-Server先将发送过来的消息信令转换为自己需要的帧结构信令,然后将到来的消息进行识别,最后传向各个业务软件,由各个业务软件来进行处理;
T-Server程序逻辑上分为以下几个功能块:
微软消息队列MSMQ消息接受/分析:T-Server与其他相关服务程序的连接通道为微软消息队列MSMQ,负责监听微软消息队列MSMQ并触发相应的处理方法;
微软消息队列MSMQ消息生成:当服务模块需要与相关程序通信时,通过微软消息队列MSMQ消息生成模块生成微软消息队列MSMQ消息;
串口数据生成:对应不同的服务功能,涉及不同种类的信令,串口数据生成功能块对传入的消息进行成帧处理,即转换为帧结构信令,并通知串口程序将数据通过RS-232串口发送至Tetra手机模块;
串口数据处理:负责串口数据的监听/解析/发送;T-Server需要监听RS-232串口传入的数据以提取Tetra手机模块发出的有用信息,串口数据处理功能块将串口数据进行数据帧处理;
其他服务模块:对以上各个功能块的支持,包括资源管理、数据管理、Server模式检验/转换。
10.如权利要求9所述的集GIS与PDA功能于一体的Tetra手机实现方法,其特征在于,Tetra手机模块和T-Server之间通信采用了封装信令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101040637A CN1968468B (zh) | 2006-08-02 | 2006-08-02 | 集GIS与PDA功能于一体的Tetra手机及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101040637A CN1968468B (zh) | 2006-08-02 | 2006-08-02 | 集GIS与PDA功能于一体的Tetra手机及其实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1968468A CN1968468A (zh) | 2007-05-23 |
CN1968468B true CN1968468B (zh) | 2010-11-24 |
Family
ID=38076951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006101040637A Expired - Fee Related CN1968468B (zh) | 2006-08-02 | 2006-08-02 | 集GIS与PDA功能于一体的Tetra手机及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1968468B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101587184B (zh) * | 2008-05-19 | 2012-09-19 | 鸿富锦精密工业(深圳)有限公司 | 实时提供联络人所在位置的方法 |
WO2010057349A1 (zh) * | 2008-11-18 | 2010-05-27 | 深圳市时代经纬科技有限公司 | 基于位置服务的移动即时通讯方法及其系统 |
CN101876903A (zh) * | 2009-04-30 | 2010-11-03 | 深圳富泰宏精密工业有限公司 | 通讯装置多配件软件自动生成系统及方法 |
CN101839988B (zh) * | 2010-04-23 | 2012-07-04 | 天津七一二通信广播有限公司 | 一种适用于tetra终端实现多点定位功能的方法 |
CN102932411B (zh) * | 2012-09-17 | 2015-09-23 | 太原理工大学 | 一种基于gis矿用手机安全监测方法 |
CN105898694A (zh) * | 2016-04-06 | 2016-08-24 | 众景视界(北京)科技有限公司 | 用于定位及信息交互的方法、头戴式可视设备及服务器 |
CN108124239A (zh) * | 2017-11-09 | 2018-06-05 | 北京交通大学 | 一种基于mcptt的集群终端显示方法 |
WO2019148490A1 (zh) * | 2018-02-05 | 2019-08-08 | 深圳星图腾科技有限公司 | 即时通讯的信息处理方法、终端、服务器及可读存储介质 |
CN108377357B (zh) * | 2018-02-13 | 2020-12-04 | 山东顺国电子科技有限公司 | 一种可视化平台通话方法及装置 |
CN108322689A (zh) * | 2018-02-13 | 2018-07-24 | 山东顺国电子科技有限公司 | 一种可视化平台视频方法及装置 |
CN110784599A (zh) * | 2019-11-12 | 2020-02-11 | 天通畅达(深圳)科技有限公司 | 一种地图模式下拨打电话的方法及终端设备 |
CN110996065B (zh) * | 2019-12-18 | 2021-07-13 | 广州澳盾智能科技有限公司 | 一种基于物联网的远程生物调查指挥方法 |
CN111586171B (zh) * | 2020-05-07 | 2023-05-30 | 广州虎牙信息科技有限公司 | 服务器运行方法和装置、电子设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1486072A (zh) * | 2002-09-25 | 2004-03-31 | 袁建国 | 电话号码作为定位信息的导航方法 |
-
2006
- 2006-08-02 CN CN2006101040637A patent/CN1968468B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1486072A (zh) * | 2002-09-25 | 2004-03-31 | 袁建国 | 电话号码作为定位信息的导航方法 |
Non-Patent Citations (4)
Title |
---|
向东,顾炎.综合应用定位技术实现单线铁路调度监督.西南交通大学学报37 5.2002,4(5),全文. |
向东,顾炎.综合应用定位技术实现单线铁路调度监督.西南交通大学学报37 5.2002,4(5),全文. * |
温锦,郑旭峰,李展荣,胡小燕,褚良,陈勇.深圳公交电子站牌系统的设计与实现.科学技术与工程4 10.2004,4(5),全文. |
温锦,郑旭峰,李展荣,胡小燕,褚良,陈勇.深圳公交电子站牌系统的设计与实现.科学技术与工程4 10.2004,4(5),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN1968468A (zh) | 2007-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1968468B (zh) | 集GIS与PDA功能于一体的Tetra手机及其实现方法 | |
CN105472557A (zh) | 基于北斗gps双模定位的td-lte应急通信终端和监控指挥系统 | |
CN102316168A (zh) | 融合通讯指挥调度系统 | |
CN102811418A (zh) | 移动通信装置的追踪系统与方法 | |
CN100380350C (zh) | 将内部操作系统连接到应用操作系统 | |
CN107635016A (zh) | 一种基于大数据的通话信息管理方法及系统 | |
CN110213717A (zh) | 一种定位方法、定位消息提醒终端及定位消息提醒系统 | |
CN202481100U (zh) | 轨道交通指挥调度系统 | |
CN101924815A (zh) | 3g moa 手机中间件嵌入式系统 | |
CN101312573B (zh) | 一种gps手机及gps监控系统 | |
CN102083017A (zh) | 天气信息的发送方法、系统及移动终端 | |
CN115714846A (zh) | 视频会议终端的网络传屏方法及系统 | |
CN201118710Y (zh) | 数字集群有线调度台 | |
US20100164961A1 (en) | Communication system, apparatus, and method | |
CN102957995A (zh) | 智能矿用无线定位通讯系统 | |
CN206433029U (zh) | 一种基于gps的位置共享终端设备 | |
CN102611778A (zh) | 基于手机联系人号码归属地管理联系人的系统及方法 | |
CN107369117A (zh) | 一种基于物联网的社区独居老人帮扶系统 | |
KR101202597B1 (ko) | 모바일 스마트 알림장 서비스 제공시스템 및 방법 | |
Bandara et al. | Design and implementation of an integrated contextual data management platform for context-aware applications | |
CN201312318Y (zh) | 智能会议席位管理系统 | |
CN110113740A (zh) | 一种信息提醒方法及移动终端 | |
CN208014042U (zh) | 一种无线门禁系统 | |
CN209767535U (zh) | 北斗数传终端 | |
Ueda et al. | W-mail: An electronic mail system for wearable computing environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101124 Termination date: 20160802 |
|
CF01 | Termination of patent right due to non-payment of annual fee |