黃雪穎,牛 丹,李 濤,李 凡,薛裕峰
(1.東南大學(xué)自動化學(xué)院,江蘇 南京 210096)(2.“復(fù)雜工程系統(tǒng)測量與控制”教育部重點實驗室,江蘇 南京 210096)(3.江蘇聚力智能機械股份有限公司,江蘇 蘇州 215212)
隨著我國經(jīng)濟的發(fā)展和居民生活水平的逐步提高,越來越多的家庭擁有私家車,汽車保有量迅速增加帶來的“停車難”問題日益突出[1]。人類社會的不斷進步使得城市的規(guī)模逐漸擴大,然而城市人口數(shù)量的劇增使得人均生存空間越來越小。如何高效、合理利用有限空間解決“停車難”成了一個亟需解決的問題。因此,庫容量大且占地面積小的立體車庫應(yīng)運而生[2]。
目前,我國一些經(jīng)濟發(fā)達且人口密度較大的城市,如北京、上海,已經(jīng)開始大力發(fā)展具有諸多優(yōu)勢的立體車庫[3]。但當(dāng)前的立體車庫大多沒有聯(lián)網(wǎng),沒有把車庫的車位信息和運行信息上傳服務(wù)器,因此車庫運營方難以遠程控制、管理車庫[4],存車用戶也無法遠程查詢和預(yù)約車位。隨著“互聯(lián)網(wǎng)+”概念的提出,研發(fā)一款集立體車庫管理和車位預(yù)定查詢等功能于一體的立體車庫停車系統(tǒng)就顯得十分必要。
國內(nèi)有不少學(xué)者對這一問題進行了大量的研究,張志田等[5]提出了一種采用手機 APP預(yù)約取車的方式,減少了用戶的停車等待時長。劉秀芝等[6]提出通過手機上的APP軟件進行車輛存取,方便車主取車,大大縮短了存取車時間。豐宇等[7]設(shè)計了一個多口進出貨物存放式立體車庫,減少了存車和取車時的等待時間,符合現(xiàn)代人的生活節(jié)奏。 但是上述研究主要是優(yōu)化用戶的存取車操作,對用戶預(yù)約車位、導(dǎo)航以及在線支付停車費用,管理員遠程管理車庫等功能都未涉及。因此對基于手機客戶端,集立體車庫管理和車位預(yù)定、查詢等功能于一體的立體車庫停車系統(tǒng)進行研究就顯得很迫切。本文基于Android操作系統(tǒng),提出的基于Android的立體車庫停車系統(tǒng)的設(shè)計與實現(xiàn),是對現(xiàn)有的基于互聯(lián)網(wǎng)的立體車庫系統(tǒng)的一種擴展和補充,對業(yè)界具有一定的參考意義[8]。
Android是Google開發(fā)的基于Linux平臺的開源手機操作系統(tǒng),分為應(yīng)用程序?qū)印?yīng)用程序框架層、系統(tǒng)運行庫層以及Linux內(nèi)核層[9]。Android基于Linux內(nèi)核,其核心系統(tǒng)服務(wù)都依賴于Linux內(nèi)核[10]。
客戶端需要請求網(wǎng)絡(luò),與服務(wù)器端進行交互從而獲取數(shù)據(jù)。OkHttp是一個處理網(wǎng)絡(luò)請求的輕量級框架,提供了get請求、post請求等功能。使用該框架可以快速實現(xiàn)與數(shù)據(jù)庫的數(shù)據(jù)交互。
首先創(chuàng)建一個OkHttpClient對象,如果是post請求,需要構(gòu)建FormBody,傳入?yún)?shù);如果是get請求,不需要構(gòu)建FormBody。接著構(gòu)造Request對象,并將Request封裝為Call。最后,以異步的方式去執(zhí)行請求,等待任務(wù)執(zhí)行完成,在Callback中即可得到結(jié)果。重寫回調(diào)方法,對結(jié)果進行處理即可。
處理好不同數(shù)據(jù)模型之間的關(guān)系,減少數(shù)據(jù)冗余,對提高數(shù)據(jù)庫系統(tǒng)性能十分重要[11]。 E-R圖就是描述現(xiàn)實世界關(guān)系概念模型的有效方法[12]。本系統(tǒng)數(shù)據(jù)庫E-R圖如圖1所示。
圖1 數(shù)據(jù)庫E-R圖
通過對系統(tǒng)功能需求進行分析,將立體車庫停車系統(tǒng)細分為用戶系統(tǒng)和管理員系統(tǒng)。系統(tǒng)功能模塊圖如圖2所示。
圖2 功能模塊圖
用戶系統(tǒng)包括4個模塊:登錄注冊模塊、訂單詳情顯示模塊、預(yù)約模塊和在線支付模塊。
1)登錄注冊模塊。登錄注冊模塊主要實現(xiàn)注冊、登錄、找回密碼、注銷等功能。未注冊用戶可通過可用的手機號碼進行注冊,通過短信驗證后,就可以設(shè)置密碼并輸入用戶信息。已注冊用戶正確輸入用戶名和密碼后就可以成功登錄該系統(tǒng)。已注冊用戶如果忘記密碼,可通過該模塊重新設(shè)置密碼。該功能模塊的流程圖如圖3所示,界面截圖如圖4所示。
圖3 登錄注冊模塊流程圖
圖4 用戶系統(tǒng)登錄界面
2)訂單詳情顯示模塊。訂單詳情顯示模塊主要的功能是顯示用戶當(dāng)前的訂單狀態(tài),讓用戶實現(xiàn)存取車操作。用戶在該模塊通過點擊相關(guān)按鈕,就可以快速便捷地實現(xiàn)存取車操作。該功能模塊的流程圖如圖5所示,界面截圖如圖6所示。
3)預(yù)約模塊。該模塊包括預(yù)約、查詢預(yù)約和取消預(yù)約功能。用戶成功登錄后可進入主界面并定位到用戶當(dāng)前位置。主界面的開發(fā)是基于百度地圖開放的第三方SDK庫,使用添加標(biāo)注的方法,將車庫以標(biāo)注的形式在地圖上顯示出來,并給標(biāo)注添加點擊事件,用戶點擊標(biāo)注,就可以彈出相關(guān)的信息框,用以顯示車庫的具體信息,用戶點擊想預(yù)約的車庫,就可以預(yù)約車位。同時用戶也可以查詢到當(dāng)前所有預(yù)約,并可取消預(yù)約。預(yù)約模塊的流程圖如圖7所示,界面截圖如圖8所示。
圖5 訂單詳情顯示模塊流程圖
圖6 用戶系統(tǒng)訂單詳情界面
圖7 預(yù)約模塊流程
4)在線支付模塊。該功能模塊通過調(diào)用微信和支付寶提供的SDK實現(xiàn)微信支付和支付寶支付,用戶可直接在線支付停車費用,十分方便。
管理員系統(tǒng)主要包括4個模塊:登錄模塊、車位剩余情況顯示模塊、車庫運行情況顯示模塊和所有訂單數(shù)據(jù)顯示模塊。
1)登錄模塊。該模塊主要實現(xiàn)登錄以及修改密碼等功能。管理員正確輸入用戶名和密碼后,就可以成功登錄管理員系統(tǒng)。管理員登錄后可以通過該功能模塊進行密碼的修改。
2)車位剩余情況顯示模塊。該模塊的功能是在車位剩余情況界面下顯示各個車庫的車位使用情況,即通過適配器將車庫信息表中相應(yīng)字段的數(shù)據(jù)顯示在ListView界面組件上[13]。在適配器中先設(shè)置數(shù)據(jù)的布局格式,然后將相應(yīng)的組件實例化,并且設(shè)置數(shù)據(jù)表中的值,從而實現(xiàn)動態(tài)地加載顯示數(shù)據(jù)的功能,界面截圖如圖9所示。
圖8 用戶系統(tǒng)預(yù)約界面 圖9 車位剩余情況界面
3)車庫運行情況顯示模塊。通過該功能模塊,管理員可以查看車庫的運行情況,如果發(fā)生故障,可以第一時間發(fā)現(xiàn)并做出反應(yīng),界面截圖如圖10所示。
4)所有訂單數(shù)據(jù)顯示模塊。通過該功能模塊,管理員可以查看該車庫的所有訂單信息,界面截圖如圖11所示。
圖10 車庫運行情況界面 圖11 所有訂單信息界面
本文設(shè)計與實現(xiàn)了基于Android的立體車庫停車系統(tǒng),測試表明,該系統(tǒng)的整體性能較好、功能較完善。本文的創(chuàng)新點如下:1)通過調(diào)用百度地圖、支付寶以及微信等接口,實現(xiàn)了多個功能,為用戶和管理員提供了很大的便利。2)實現(xiàn)了基于Android的集用戶系統(tǒng)和管理員系統(tǒng)于一身的立體車庫停車系統(tǒng),對解決“停車難”、推進立體車庫的大力發(fā)展可起到較大的推動作用。