设备管理模块实现

简介: 设备管理模块实现


1 .导航树模块的实现

导航树的各节点是通过Ajax 技术异步加载的,系统初始化时导航树只会加载初始的城市节点,用户根据自身需要选择相应的父节点加载其逻辑关系下的子节点。各节点的数据信息是导航树模块通过JavaScript 与业务逻辑服务通信获得的。导航树的交互操作是定义各个组织节点和实例节点的右键菜单,根据节点的定义不同,构建菜单的功能也不相同,主要是设备的查询、增加、修改及删除功能以及地图定位等与GIS 模块的交互功能。导航树功能的实现效果如图

public class treeService {
private String fatherid;
private String fatherLevel;
private String fatherName;
private String fatherType;
private TreeCatalogtreeDao;
private Static finalString wrongMsg =”ERROR ” J
public void initVar (String id, String n, String lev) {
if(id !=null){
String 门缸ray = id. split (”-”);
this. father Id = array[ 1];
this.fatherType =缸ray[O];
this. fatherLevel = lev;
this. fatherName = n;
) else {
this.father!d =
this.fatherType =
null;
null;
/骨
this. fatherLevel = null;
this. fatherName = null;
private intgetType() {
if (father Level. 呵旧ls (” none ”)){
return O;
} else {
return l;
//获取最终目录数据
public String getd ata() {
return getJsonF(). toString ();
//获取返回JSON 数据
//( { idname :’TONGXIANG ’, isParent:true, iconSkin :’city'})
public JSONArray getJsonF() {
JSONArray jsa = newJSONArray ();
intt = this. getType () ;
List< TreeCatalogRecord >aim ; I I = treeDao. getTreeCatalog();
switch(t){
caseO : aim = treeDao. getTreeCatalog() ;break;
easel aim = treeDao. getTreeCatalog(Long. parseLong(fatherld), Integer. parselnt
(fatherType));break;
default : aim = treeDao . getTreeCatalog(Long. parseLong( fatherld), Integer. parselnt
(fatherType));
for( inti= 0; i <aim. size(); ++ i) {
JSONObject jso = newJSONObject ();
jso.accumulate (飞d”, aim. get( i). get'fypeld () +”-”+ aim. get( i). gets国tic Id());
jso.accumulate(”name ”, aim.get(i).getName());
jso.accumulate(” isParent”, aim.get(i).getParent());
jso.accumulate (” iconSkin”, aim.get(i).getlconSki叫));
jsa. add( jso);
return jsa;

2. 查询定位功能的实现

系统需要通过导航树和搜索功能实现电力管线设备的查询和定位,实现的界面效果如图。

导航树实例节点的右键交互菜单提供设备的定位功能,通过导航树的逻辑关系查询到对应设备后可以将其定位到地图的中间突出显示。系统的搜索功能是通过G I S 服务实现的,可以通过设备名字进行模糊查询和通过设备经纬度精确查询。本系统的查询功能支持模糊查询和经纬度查询两种方式。模糊查询实现后的界面效果如图

/糊查询功能函数/
Global. locus.method. vague_search = function (text, layerlndex) {
Global. constant . searchlndex = layerlndex;
var layer;
if{layerlndex == 0) {
layer =’electrical ’,
}else{
layer =’civil_ engineering’ ,
var filter = new OpenLayers. Filter. Comparison( {
type: OpenLayers.Filter.Comparison.LIKE,
pr operty : ” name ”,//查询的字段,需要根据阁层设置
value · ” *”+ text +”*”
})
var filter_l_O = new Openl.ayers. Format. Filter. vl_O_O();
var temp}(}任, = new Openl.ayers. Format. 泊任』(),
var xmlPara = tempXML. write ( filter_ 1_0. write ( filter) ) ;
var dataXML = Global. locus. constant. originXML
+ ’ < wfs: QuerytypeName = ” OpenGIS : geo_’+ layer +’”〉冒
+ ” /口”//查询的阁层, 需要设置
+’< wfs: Property name> OpenGIS: name </wfs : Property name >’
+ '/n '//查询的属性字段,需要设置
+’< wfs: Property name> OpenGIS: object_ type </wfs: Property name >’
+’/ n ’//查询的属性字段,需要设置
+’< wfs: Property name> OpenGIS: Static _id </wfs : Property name > ’
+’/ n ’//查询的属性字段,需要设置
+’< wfs: Property name> OpenGIS: geometry_ data </wfs: Property n四e >’
+’/口’//查询的几何字段,需要设置
+ xmlPara
+’</wfs: Query >『+ ” /n ”
+’</wfs: GetFeature >’ J
var request = Openl.ayers. Request . POST ( {
url :”http ://”+ Global. option . ip + ” : 8081/geoserver/wfs” ,
data : data泊忆,
callback : Global. locus. meth od. vague_search_handler
, ) }

除了模糊查询,系统还需要实现经纬度查询功能,在查询框中输入经度和纬度值,可实

现经纬度查询功能,实现效果如图所示,经纬度查询的关键代码如

/ 幡按经纬度查询功能铃/
Global.locus . method.cr_ search =function (text}{
var values = text. split(”,”);
if (values . length!== 2) {
Plugins. dialog. show( {
’ title ’ : ’错误信息’,
’ text , : ’请按照x,y 的形式输入’
},{
’ s 由mit ’ : function ( e) {
Plugins. dialog . remove();
., ) }
values = null;
} else {
values[ 0] = parseFloat( values[ 0]);
values[ 1] = parseFloat( values[ 1]);
if ( isNaN( values[ 0]) 1 1 isNaN( values[ 1])) {
Plugins . dialog. show( {
’ title ,:’错误信息’,
’ text': '输入的x,y 必须是数字’
},{
’ submit' function (e){
Plugins.dialog.remove();
., ) }
values = null;
} else {
var foundPosition = new OpenLayers. LonLat( values[ 0], values[ 1]) . transform(
new OpenLayers. Projection(”EPSG:4326 ”),
Global. locus. map. getProjectionObject()
Global. locus. map . setCenter( foundPosition, Global. constant . zoomLevel);
3.

3. 资源管理功能的实现

资源管理模块需要管理电气设备、土建设备、业务图图形等所有资源的属性和空间数据,其中资源管理模块的空间数据管理在表现层通过OpenLayers 接口利用Geo Server 服务实现,资源管理属性数据的管理通过调用服务器端的各种Action 接口实现。资源管理模块主要包括设备的查询、增加、修改以及删除操作,可以在导航树模块上选择相应的节点进行

资源管理的操作,也可以在地图进行交互操作时进行资源管理。下面以电缆段的查询操作

为例,介绍资源管理模块的详细实现流程。当资源管理模块的查询接口被调用时,系统与业

务逻辑服务通信获得设备的信息,然后在前台以对话框的形式显示,资源管理模块与业务逻

辑服务的时序图如图

4. 电缆段入沟功能实现

电缆段入沟操作是电力管线管理的必要流程之一,系统通过电缆段人沟可以建立电缆

段和管沟段之间的逻辑关系。实现人沟功能的界面如图所示,

系统通过导航树右键交互菜单请求电缆段人沟,在GIS 地图中可视化选择人沟的管沟段。入沟完成后, GIS 服务可以重新渲染电缆段在地图上的走向和位置。

目录
相关文章
|
8月前
|
存储 JSON 物联网
设备管理组件功能介绍
设备管理组件功能介绍
235 0
|
6天前
|
编解码 数据格式
A-B罗克韦尔 1771-IXHR模块 PLC 5模拟输入模块
A-B罗克韦尔 1771-IXHR模块 PLC 5模拟输入模块
|
9月前
|
API 开发者
HarmonyOS学习路之开发篇—设备管理(控制类小器件)
控制类小器件指的是设备上的LED灯和振动器。其中,LED灯主要用作指示(如充电状态)、闪烁功能(如三色灯)等;振动器主要用于闹钟、开关机振动、来电振动等场景。
|
7月前
|
存储 算法 调度
设备管理
一、设备管理 设备管理是操作系统中的一个重要功能,它负责管理计算机系统中的各种硬件设备,包括输入设备、输出设备和存储设备等。设备管理的主要任务包括设备分配、设备驱动程序管理、设备中断处理和设备错误处理等。 设备分配是指将多个进程对设备的请求进行合理分配,以实现设备的共享和高效利用。设备管理需要维护设备队列,记录设备的使用情况和状态,根据进程的请求进行设备分配。设备分配可以采用多种方式,包括独占分配、共享分配和虚拟设备等。 设备驱动程序管理是指管理设备驱动程序的加载、运行和卸载等操作。设备驱动程序是操作系统中的一个关键组件,它负责与硬件设备进行通信和控制。设备管理需要加载适当的设备驱动程序,并确
67 0
|
8月前
|
JSON 物联网 开发工具
设备接入组件功能介绍
设备接入组件功能介绍
335 0
|
9月前
|
存储 Java API
HarmonyOS学习路之开发篇—设备管理(设备标识符)
网络设备节点通信标识符,是分布式软总线提供的一种非永久性标识符。NetworkID基于Java原生的UUID接口随机生成,长度为32字节,使用十六进制表示。主要用于业务调用分布式能力时,标识分布式网络内的设备节点。
|
9月前
|
存储 语音技术
HarmonyOS学习路之开发篇—设备管理(设置项)
应用程序可以对系统各类设置项进行查询。例如,三方应用提前注册飞行模式设置项的回调,当用户通过系统设置修改终端的飞行模式状态时,三方应用会检测到此设置项发生变化并进行适配。如检测到飞行模式开启,将进入离线状态;检测到飞行模式关闭,其将重新获取在线数据。
|
12月前
第6章 设备管理
第6章 设备管理
99 0
|
传感器 芯片
RK3399平台开发系列讲解(内核驱动外设篇)6.35、IAM20680陀螺仪介绍
RK3399平台开发系列讲解(内核驱动外设篇)6.35、IAM20680陀螺仪介绍
183 0
 RK3399平台开发系列讲解(内核驱动外设篇)6.35、IAM20680陀螺仪介绍
|
存储 数据格式
振弦采集模块配置工具VMTool通用串口调试模块
双击主界面右侧扩展工具条可实现扩展功能区的显示与隐藏切换。 扩展功能包括串口调试、MODBUS、实时曲线及数据存储等几个功能模块。
振弦采集模块配置工具VMTool通用串口调试模块