《智能移動終端電網信息查詢系統(tǒng)的設計》5800字(論文)_第1頁
《智能移動終端電網信息查詢系統(tǒng)的設計》5800字(論文)_第2頁
《智能移動終端電網信息查詢系統(tǒng)的設計》5800字(論文)_第3頁
《智能移動終端電網信息查詢系統(tǒng)的設計》5800字(論文)_第4頁
《智能移動終端電網信息查詢系統(tǒng)的設計》5800字(論文)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

??PAGEI?智能移動終端電網信息查詢系統(tǒng)的設計摘要:隨著我國電力行業(yè)多年的發(fā)展,電網規(guī)模逐漸擴大,設備也在不斷增加,電力行業(yè)工作人員的巡檢任務也越來越大。在進行巡檢工作時會出現一些流程繁瑣或效率低下等一系列問題。目前的互聯網技術已經得到了廣泛應用,信息技術也在不斷的高速發(fā)展,電力行業(yè)也逐漸對移動辦公有了更高的需求。通過使用移動終端設備,工作人員可以更高效方便的完成任務,可以隨時隨地作業(yè)。所以,非常有必要設計一些軟件來幫助電業(yè)人員的工作,從而提升巡檢質量,提高工作效率。本文介紹了一個基于JAVA開發(fā)的一款用于電力巡檢系統(tǒng)方面應用的APP。該軟件主要有兩個功能:一個功能是完整的電子地圖以及GPS實時定位系統(tǒng),方便了巡檢人員實施路線規(guī)劃以及人員調度,能看到工作人員的實時位置。另一個就是記錄設備信息的功能,大幅度提高了巡檢人員的工作效率。本文主要從理論和軟件開發(fā)兩個方面入手,針對智能移動終端系統(tǒng)的設計與實現進行探索,對電力系統(tǒng)智能移動終端設備的研究背景、研究意義進行了闡述。文章介紹了一個由Java技術開發(fā)的一款電力系統(tǒng)的軟件,針對系統(tǒng)的開發(fā)和功能做了詳細的講解。關鍵詞:智能移動終端、app、電力巡檢、Java目錄摘要 I一、緒論 11.1研究背景及意義 11.2研究現狀 11.3本文的研究內容 2二、軟件開發(fā)與設計過程 22.1應用程序框架 22.2登錄界面 32.3Main界面 62.4地圖界面 82.5任務列表界面 112.6任務詳情 132.7應用程序界面 17三、總結展望 203.1總結 20 3.2展望 20參考文獻 22學生姓名:畢業(yè)(設計)論文題目(不要加副標題)一、緒論1.1研究背景及意義電的出現使人們的生活習慣發(fā)生了改變,使人們的生活更加方便,電力在我們人類社會的一切日常生活工作中都已是屬于一種必不可少能源的一種存在形式了,社會的生產都需要和依靠著電能,人類社會的一切日常生活工作更是離不開電力。一旦城市供電系統(tǒng)發(fā)生出了重大問題,相繼預示著城市供水系統(tǒng)、照明供電系統(tǒng)等市政基礎設施都將會無法進行正常的工作,整個城市人們日常生活將都會因此遭到嚴重影響。隨著現代社會科學技術的快速逐步的發(fā)展,人們的對獲取信息方面的各種工作的需求程度也會越來越的變高。但是一些電力企業(yè)的設備安全事故經常發(fā)生,給自己和社會都造成了不良的影響還有經濟方面的損失。所以要想使電力企業(yè)的設備安全穩(wěn)定的運行,能夠更方便的發(fā)現安全隱患并將其排除,是所有的電力工作人員要面對的新的挑戰(zhàn)。在電力系統(tǒng)的工作中,電力巡檢的工作是必不可少的環(huán)節(jié),巡檢工作是電力系統(tǒng)正常運行的保障。電網規(guī)模隨著社會的發(fā)展不斷擴大,電力設備也在逐漸增加,電力人員的巡檢工作量也逐漸增大。國內的變電站巡檢工作大部分是通過巡檢人員用筆和紙來進行記錄,工作人員通過自身的經驗來判斷設備情況、核查參數、記錄數據。這樣的傳統(tǒng)方式無法適應時代的發(fā)展,主要是因為信息種類越來越多、能夠提供信息服務的軟件也在增加。還有目前的巡檢工作過于依賴人的主動性,難免會有失誤的地方,不能及時發(fā)現問題從而發(fā)生電力故障。而且現在的電力管理系統(tǒng)重點在于離線管理,巡檢結果往往不能及時提交,工作人員在現場時不能查詢歷史記錄信息。為了能夠實時掌握電力系統(tǒng)信息,工作人員能夠及時發(fā)現安全隱患,非常需要采取信息化方式,通過智能移動設備來提升巡檢工作質量。不過雖然電網問題逐漸明顯,現代技術擁有傳輸數據快和儲存數據兩大等很多優(yōu)勢,這也將成為支撐電網系統(tǒng)的一個重要基礎,在對電力設備信息的巡檢和各種故障發(fā)現分析的方面提供了更便捷的方式,智能移動終端技術也逐漸成為了電網系統(tǒng)中的一個重要部分。目前國內智能的電力巡檢系統(tǒng)基本上有了一定的應用技術與基礎,智能信息化的巡檢方式已經逐漸成為了發(fā)展趨勢。為了使現有的電力巡檢系統(tǒng)更好的發(fā)展,希望可以研發(fā)一些可以查詢電力信息,更方便掌握電力設備信息的智能系統(tǒng),也能夠更方便的記錄各種設備信息?;诒菊撐牡难芯砍晒娏ρ矙z人員通過智能移動終端設備可以實現實時定位,更便于規(guī)劃巡檢路線,也能夠更方便的記錄處理電力設備的信息,大幅度提高了巡檢效率。1.2研究現狀目前的互聯網技術正在飛速發(fā)展。在電力巡檢過程中,巡檢的內容偏向于設備的溫度、放電等內容,但很多都是在變電站中進行的。各種各樣的發(fā)展趨勢使得互聯網技術逐漸應用到各種供電設備中,但是國內對于箱變和環(huán)網柜這類設備的研究還比較少。國外對于電氣行業(yè)有著較多的經驗與智能科技成果,所以在研究時可以多學習一些國外先進的經驗。通過一些資料可以了解到,一些國家已經普遍應用了巡檢機器人來代替人工巡檢了,尤其是對于變電站的巡檢,視頻監(jiān)控也是國外常用的一種巡檢方式。巡檢機器人算是一種比較先進的技術了,這種巡檢方式主要是通過操縱機器人就可以自動記錄收集一些信息,還可以將具體的位置信息記入數據庫,也節(jié)省了一些人工成本。而視頻監(jiān)控的巡檢方式對于圖像識別模式有較高要求,需要高分辨率的視頻系統(tǒng),并且這種巡檢方式大多數是以地理信息系統(tǒng)為基礎的,通過GPS定位系統(tǒng)給出準確的經緯度,然后把數據傳輸到系統(tǒng)中。與傳統(tǒng)巡檢方式相比,這類巡檢方式主要是采集信息的方式的不同,但是傳統(tǒng)的人工巡檢也具有著不可替代的優(yōu)勢,人工巡檢有著高度的靈活性,可以應對一系列的突發(fā)狀況,所以人工巡檢依然占據主要的地位。國內目前的人工電力領域由于發(fā)展起來的時間相對的較晚,而且由于在人工電力設備的巡檢方面這一反面也發(fā)展相對的也相對的晚,猶豫成本高等的各種技術原因,國內目前大部分地方的人工電力企業(yè)目前仍然主要選擇使用的仍然是人工電力設備巡檢的技術方法來進行對用電設備的實施監(jiān)管。但是隨著時間上的技術進展和自動化技術水平的日益提高,加上變電站管理對更信息化技術的迫切需求,不少自動化公司近年來也開始逐步地把這種更信息化技術的自動化巡檢管理方法引入。比如說國內比較有知名的IMS系統(tǒng)方案以及北塔BTIM的智能運維管理系統(tǒng)方案,這兩者都有著比較齊全的功能性,可以實時監(jiān)測到客戶系統(tǒng)中的數據、服務器狀態(tài)以及其他很多的核心信息,不過也會存在著一定的局限,有以下三處可以明顯體現。一:不可以實現即時的傳遞設備信息,也就接收到不了由巡檢現場工作的人員們所直接發(fā)送過來的任何遠程命令,也就無法及時把遠程命令結果上傳反饋給現場巡檢的工作的人員,也就無法真正實現巡檢工作人員們隨時隨地的都要能夠及時掌握現場設備狀況信息的要求。二:不具有個性化功能,大多數軟件沒有針對性,目前國內的巡檢系統(tǒng)都是基于整個巡檢行業(yè)進行開發(fā),可以滿足電力行業(yè)很多公司巡檢功能的需求,但是不具備個性化功能。三:系統(tǒng)不具備分析能力,現在的有些系統(tǒng)能夠通過設定閾值來實現報警功能,只能在發(fā)生設備故障后才能給巡檢人員傳遞信息,不能夠提前對將要發(fā)生的故障進行預判。目前國內有一些專有的硬件設備來記錄電力設備信息,這種設備是基于定位系統(tǒng)發(fā)明的,但是這類設備攜帶不方便,功能升級不方便。隨著現在的智能移動設備的飛速發(fā)展,已經可以通過Android系統(tǒng)在智能手機或者平板上開發(fā)軟件來幫助完成巡檢。1.3本文的研究內容本文主要研究了一款以Java為基礎的電力巡檢的軟件,該軟件主要由用戶登錄界面、地圖界面、設備界面三個組成,對軟件的開發(fā)與設計實現過程進行了講述。二、軟件開發(fā)與設計過程2.1應用程序框架Android項目的整體結構如下Android項目需要配置我們的整體環(huán)境(1)在外面的build.gradle需要配置我們大致的依賴Android項目需要在AndroidManifest.xml里進行配置我們所有的Activity,并且設置我們首個Activity。<activityandroid:name="com.sandy.localcheck.login.LoginActivity"android:label="@string/app_name"><intent-filter><actionandroid:name="ent.action.MAIN"/><categoryandroid:name="ent.category.LAUNCHER"/></intent-filter></activity> 我們在utils類中創(chuàng)建我們的數據庫連接工具,可以簡單的執(zhí)行一些數據庫操作。2.2登錄界面我們需要的一個登錄界面,理應有一個用戶名窗口,用戶密碼窗口,并且具有驗證正確性的功能。在Android項目中,一個頁面其實是需要前端xml,以及Activity視圖驅動類。前端xml:添加LinearLayout線性布局進行控制頁面的分布。<LinearLayoutxmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/b2"android:gravity="center"android:orientation="vertical"tools:context="com.sandy.localcheck.main.MainActivity"></LinearLayout>添加TextView節(jié)點,同樣是使用樣式進行設置節(jié)點。<TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/title"android:textSize="18sp"android:textColor="#AF3A3A"/>添加EditText文本輸入框節(jié)點,我們就可以在里面輸入用戶名密碼一類的文字。<EditTextandroid:id="@+id/et_username"android:layout_width="160dp"android:layout_height="wrap_content"android:hint="@string/et_username"android:singleLine="true"/>添加Button節(jié)點,用戶就可以點擊按鈕,登錄,或者退出。<Buttonandroid:id="@+id/bt_log"android:layout_width="wrap_content"android:layout_height="wrap_content"android:minWidth="48dp"android:text="@string/bt_log"/> 這樣子我們就用節(jié)點堆起來一整個頁面: ActivityJava代碼:我們將會創(chuàng)建一個Java類,并繼承android.app.Activity來表明這是一個Activity視圖驅動類,Android會調用到這個Activity,并在Android中渲染出我們所寫的頁面。publicclassLoginActivityextendsActivity由于我們繼承了Activity,我們必須重寫父類Activity的onCreate函數,onCreate函數是生成窗口,我們將會在里面進行編寫這個頁面進行初始時的代碼。onCreate函數會有一個參數Bundle,我們應將參數傳遞給父類Activity進行初始化:super.onCreate(savedInstanceState);通過setContentView方法設置我們當前的頁面視圖:setContentView(R.layout.activity_login);R.layout.activity_login指的就是我們上一段話提到的由各種節(jié)點堆起來的頁面。獲取頁面節(jié)點,根據父類提供的findViewById獲取到我們需要得到的頁面元素(按鈕,文本框),并且能夠對該元素進行操作、獲取數據、綁定事件://通過資源標識獲得控件實例

et_username=(EditText)findViewById(R.id.et_username);et_password=(EditText)findViewById(R.id.et_password);Buttonbt_log=(Button)findViewById(R.id.bt_log);Buttonbt_bos=(Button)findViewById(R.id.bt_bos);綁定:在用戶輸入了用戶名以及密碼后,將點擊登錄按鈕,所以,用戶點擊登錄時我們需要獲取到用戶輸入的用戶名與密碼,將它進行驗證是否正確,正確則進入下一個界面,錯誤則提示用戶。bt_log.setOnClickListener(v->{//獲取用戶輸入的數據StringstrUsername=et_username.getText().toString();StringstrPassword=et_password.getText().toString();//判斷用戶名和密碼是否正確測試版本if(strUsername.equals("admin")&&strPassword.equals("admin")){Toast.LENGTH_SHORT).show();Intentintent=newIntent();intent.setClass(LoginActivity.this,MainActivity.class);startActivity(intent);}else{Toast.LENGTH_SHORT).show();}});bt_bos.setOnClickListener(v->finish());我們使用setOnClickListener對選中的bt_log元素進行綁定點擊事件。if(strUsername.equals("admin")&&strPassword.equals("admin")) if判斷語句進行判斷用戶名密碼是否正確。使用Toast.makeText進行彈出一個小氣泡提示用戶是否用戶名密碼正確。Intentintent=newIntent();intent.setClass(LoginActivity.this,MainActivity.class);startActivity(intent);使用Intent創(chuàng)建下一個要跳轉的頁面,MainActivity,然后使用startActivity進行渲染MainActivity頁面,也就進入了我們下一個頁面,mian頁面。2.3Main頁面Main界面是我們的主體界面,我們的任務頁面,地圖頁面都將放在main頁面進行點擊展示同樣是同過xml代碼寫頁面樣式,并編寫MainActivity進行頁面渲染。在頁面創(chuàng)建的時候我們將會初始化我們的一些數據:Utils.createPathTable(context);Utils.addPathToDB(context,"2022-2-1122:33:54","2022-2-1222:33:54","測試任務",""); publicstaticvoidaddPathToDB(Contextcontext,Stringstarttime,Stringendtime,Stringname,Stringpathlist){//打開或創(chuàng)建test.db數據庫SQLiteDatabasedb=context.openOrCreateDatabase("data.db",Context.MODE_PRIVATE,null);//初始化一個路徑實體ModelTaskpathMode=newModelTask(0,starttime,endtime,name,pathlist);//插入數據db.execSQL("INSERTINTOpathVALUES(NULL,?,?,?,?)",newObject[]{pathMode.startTime,pathMode.endTime,pathM,pathMode.pathList});db.close();}通過SQLiteDatabase我們可以進行連接數據庫,execSQL可以執(zhí)行sql語句操作數據庫。通過底部點擊事件,使用FragmentTransaction類,進行添加子頁面,達到替換下方按鈕上面空白頁面的效果。2.4地圖界面點擊main頁面下面的地圖圖標我們可以進入我們的地圖頁面。地圖頁面是使用了高德地圖api,實現了定位,地圖放大縮小等功能。實現使用高德地圖api,我們需要將高德地圖的jdk放入我們的工程中:并在build.gradle中引用這些包dependencies{implementation'com.android.support:support-v4:19.+'implementationfiles('libs/AMap_Services_V2.5.0.jar')implementationfiles('libs/Android_2DMapApi_V2.5.0.jar')implementationfiles('libs/Android_Location_V1.3.3.jar')implementationfiles('libs/okhttp-2.5.0.jar')implementationfiles('libs/okio-1.6.0.jar')}接著我們要創(chuàng)建一個頁面放我們的地圖:在頂部我們將引用我們的地圖類,也就是官方demo里的GaoDeMapView。以下是搭載高德地圖頁面的頁面,我們可以看到我們將上面所說的高德地圖類引用進來了:我們需要在官網申請一個key供我們調用地圖api使用,并把它放在AndroidMainifest.xml中<meta-dataandroid:name="com.amap.api.v2.apikey"android:value="a8a73a17a14209fca3c5b371ac2fc847"/>2.5任務列表界面點擊main頁面的任務按鈕,進入任務頁面。相關頁面以及代碼:我們根據ListView這個組件來創(chuàng)建一個列表://獲取列表控件this.lvTaskList=(ListView)view.findViewById(R.id.taskList);ArrayList<ModelTask>itemList=this.getItemList();this.mAdapter=newTaskListItemAdapter(context,itemList,this);this.lvTaskList.setAdapter(mAdapter);這樣子就很方便的將我們的數據渲染到頁面上,并實現列表一樣的功能。然后在單個行,也就是每一行,我們都綁定點擊事件,實現進入到任務詳情頁面的功能。lyItem.setOnClickListener(x->{MainActivity.popAllFragmentsExceptTheBottomOne();FragmentTransactionft=MainActivity.fMgr.beginTransaction();ft.hide(MainActivity.fMgr.findFragmentByTag("weiXinFragment"));ViewTaskDetailsf=newViewTaskDetail();Bundlebundle=newBundle();bundle.putString("id",String.valueOf(taskDetail.getId()));sf.setArguments(bundle);ft.add(R.id.fragmentRoot,sf,"AddressFragment");ft.addToBackStack("AddressFragment");mit();}); 再給我們的刪除任務按鈕,綁定刪除任務應該執(zhí)行的語句ButtonbtDelete=(Button)convertView.findViewById(R.id.delete);btDelete.setOnClickListener(x->{SQLiteDatabasedb=mContext.openOrCreateDatabase("data.db",Context.MODE_PRIVATE,null);db.execSQL("DELETEFROMpathWHERE_id=?",newObject[]{taskDetail.getId()});db.execSQL("DELETEFROMdetailWHEREid=?",newObject[]{taskDetail.getId()});Log.i("mine","刪除任務id"+taskDetail.getId());viewTask.setLvTaskList();}); 我們實現一下新增任務的功能,找到那個按鈕ButtonaddTask=(Button)view.findViewById(R.id.addTask);addTask.setOnClickListener(x->showModifyPathDialog());展示新增任務的窗口protectedvoidshowModifyPathDialog(){AlertDialog.Builderbuilder=newAlertDialog.Builder(context);builder.setMessage("路徑名稱:");builder.setTitle("提示");finalEditTextpathName=newEditText(context);builder.setView(pathName);builder.setPositiveButton("確認",(dialog,which)->{if(pathName.getText().toString().length()>0){Utils.addPathToDB(context,null,null,pathName.getText().toString(),null);Utils.addPathToDB(context,null,null,pathName.getText().toString(),null);dialog.dismiss();setLvTaskList();}else{Toast.makeText(context,"路徑名稱不能為空!",Toast.LENGTH_SHORT).show();}});builder.setNegativeButton("取消",(dialog,which)->dialog.dismiss());builder.create().show();}以上我們實現了任務列表的功能。2.6任務詳情點擊任務列表的單條任務,可以進入任務詳情頁面,也就是設備列表頁面。設備列表頁面通過一個ListView實現。由于設備是固定的,所以定義了一個靜態(tài)的數據集來存放設備列表,然后通過讀取靜態(tài)數據集,來渲染當前頁面。/***列表設值*/publicvoidsetDeviceList(){ArrayList<DeviceListItemAdapter.ItemEntity>itemList=this.getItemList();this.mAdapter=newDeviceListItemAdapter(context,itemList);this.lvTaskList.setAdapter(mAdapter);lvTaskList.setOnItemClickListener((arg0,arg1,arg2,arg3)->{try{showEditDialog(itemList.get(arg2).getName());}catch(JSONExceptione){e.printStackTrace();}});}同樣我們還將綁定每行的點擊事件,來展開單個設備的詳細信息。protectedvoidshowEditDialog(Stringkey)throwsJSONException{Map<String,String>valueMap=newLinkedHashMap<>();SQLiteDatabasedb=context.openOrCreateDatabase("data.db",Context.MODE_PRIVATE,null);Cursorcursor=db.rawQuery("SELECT*FROMdetailWHEREid=?ANDdeviceKey=?",newString[]{id,key});if(cursor.getCount()==0){valueMap=this.listMap.get(key);}else{StringjsonMap="";while(cursor.moveToNext()){@SuppressLint("Range")StringjsonMapDb=cursor.getString(cursor.getColumnIndex("jsonMap"));Log.i("mine",jsonMapDb);jsonMap=jsonMapDb;}JSONObjectjsonObject=newJSONObject(jsonMap);Iteratorit=jsonObject.keys();//遍歷jsonObject數據,添加到Map對象while(it.hasNext()){Stringname=String.valueOf(it.next());Stringvalue=jsonObject.optString(name);valueMap.put(name,value);}}cursor.close();db.close();TaskDialogtaskDialog=newTaskDialog(context,key,valueMap,this);taskDialog.setOnNegativeListener(v->taskDialog.dismiss());taskDialog.show();}詳細信息采用和新增任務一樣的形式:彈窗。在彈出的窗口中循環(huán)列表,以上是單個列表的樣式代碼,通過一個文本框TextView,一個輸入框EditText組成。在用戶點擊保存時,通過LinkedHashMap<String,String>getDate(){returnnewLinkedHashMap<String,String>(){{for(inti=0;i<listView.getChildCount();i++){//獲得子item的layoutRelativeLayoutlayout=(RelativeLayout)listView.getChildAt(i);Stringname=((TextView)layout.findViewById(R.)).getText().toString();Stringvalue=((EditText)layout.findViewById(R.id.value)).getText().toString();put(name,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論