设备管理模块实现

简介: 设备管理模块实现


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 服务可以重新渲染电缆段在地图上的走向和位置。

目录
相关文章
|
7月前
|
数据采集 监控 网络协议
MES系统跟车间设备怎么连接?设备管理后的好处有哪些?
万界星空科技MES系统通过直接联网通信、工业网关采集和远程IO采集三种方式与车间设备连接,实现设备状态实时监控、统一管理、异常报警、故障记录和预防性维护。设备联网能提升生产效率,降低生产成本,推动数字化工厂建设。
238 2
|
2月前
|
数据采集 SQL Java
TDengine在设备管理系统中应用
这篇文章介绍了TDengine时序数据库在设备管理系统中的应用,包括处理大规模数据插入、查询优化以及如何通过超级表管理多设备数据的具体实践。
29 0
|
7月前
|
存储 传感器 运维
|
存储 JSON 物联网
设备管理组件功能介绍
设备管理组件功能介绍
325 0
|
API 开发者
HarmonyOS学习路之开发篇—设备管理(控制类小器件)
控制类小器件指的是设备上的LED灯和振动器。其中,LED灯主要用作指示(如充电状态)、闪烁功能(如三色灯)等;振动器主要用于闹钟、开关机振动、来电振动等场景。
|
7月前
|
编解码 数据格式
A-B罗克韦尔 1771-IXHR模块 PLC 5模拟输入模块
A-B罗克韦尔 1771-IXHR模块 PLC 5模拟输入模块
|
7月前
|
设计模式 前端开发
应用软件功能设计和功能列表
应用软件功能设计和功能列表
258 0
计算机维修的工具与设备
计算机维修的工具与设备。
95 1
|
存储 算法 调度
设备管理
一、设备管理 设备管理是操作系统中的一个重要功能,它负责管理计算机系统中的各种硬件设备,包括输入设备、输出设备和存储设备等。设备管理的主要任务包括设备分配、设备驱动程序管理、设备中断处理和设备错误处理等。 设备分配是指将多个进程对设备的请求进行合理分配,以实现设备的共享和高效利用。设备管理需要维护设备队列,记录设备的使用情况和状态,根据进程的请求进行设备分配。设备分配可以采用多种方式,包括独占分配、共享分配和虚拟设备等。 设备驱动程序管理是指管理设备驱动程序的加载、运行和卸载等操作。设备驱动程序是操作系统中的一个关键组件,它负责与硬件设备进行通信和控制。设备管理需要加载适当的设备驱动程序,并确
111 0
下一篇
DataWorks