基于火狐xulrunner引擎的架构

一毕业就进入GXMIS工作。GXMIS是前公司的简称,是国内最大的轨道交通AFC系统的研发集成提供商。

进入GXMIS后,开始主要是参与深圳地铁延长线新一代AFC系统的研发工作。其中的线网化售票系统的就是本人开发。

UI部分的开发采用了基于火狐的引擎Xulrunner。在火狐的开发环境下进行开发调试和运行。开发语言为C++,Xul,和javaScript.

目前火狐的引擎越来越快。界面速度反应也很快。目前采用的架构已经运用在深圳1、2、3、5号线,成都地铁,沈阳地铁,武汉地铁等的线网地图上。

在火狐上可自定义自己的XPCOM组件,扩展程序的功能。

方式有点像C++下调用的dll功能。XPCPM组件要放在火狐环境下的components才能加载。

程序架构包含三部分功能层,界面层,界面逻辑层。

功能层用C++来开发与设备驱动交互的接口。

界面层采用xul语言来进行开发。

界面逻辑层用javaScript进行开发,作为界面和功能层沟通调用的桥梁。

xul的格式如下:

<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window 
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
windowtype="popup" sizemode="maximized" hidechrome="true"   
title="GXMIS" onload="window_onload();" >

<script type="application/x-javascript" src="chrome://equipmentapp/content/js/equipment_utils.js"/>
<script type="application/x-javascript" src="chrome://equipmentapp/content/js/equipment_dll.js"/>
<script type="application/x-javascript" src="chrome://equipmentapp/content/js/Init.js"/>

<image id="initimg" src="image/Init.gif" />

</window>

 

javaScrpt格式如下:

var obMainMenu;
var obPrompt1;

var obCardId; //物理卡号
var obUserId; //用户号
var obPassword;

var strUserInfo="";


function window_onload() 

SetMaintenanceRect();
observer_login.register();

  ......

}


猜你喜欢

转载自luguilong.iteye.com/blog/1666240