• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于微信的電動(dòng)汽車充電運(yùn)營(yíng)平臺(tái)實(shí)現(xiàn)

      2017-03-31 15:53:54張梅
      軟件導(dǎo)刊 2016年8期
      關(guān)鍵詞:移動(dòng)支付微信公眾號(hào)

      張梅

      摘 要:電動(dòng)汽車發(fā)展迅速。為了解決電動(dòng)汽車充電難和充電樁閑置的矛盾,設(shè)計(jì)了電動(dòng)汽車充電運(yùn)營(yíng)平臺(tái)系統(tǒng),實(shí)現(xiàn)了平臺(tái)的掃碼充電、移動(dòng)支付、查詢充電狀態(tài)等功能。以工程實(shí)踐為本,論述了微信公眾平臺(tái)和WebService技術(shù),研究了Socket服務(wù)器的基本原理。平臺(tái)已成功應(yīng)用于某電動(dòng)汽車充電樁運(yùn)營(yíng)商。

      關(guān)鍵詞關(guān)鍵詞:WebService;Socket服務(wù)器;電動(dòng)汽車充電;微信公眾號(hào);移動(dòng)支付

      DOIDOI:10.11907/rjdk.161410

      中圖分類號(hào):TP319

      文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2016)008-0077-03

      0 引言

      電動(dòng)汽車以電代油、環(huán)保高效,成為目前新能源汽車的主力[1-4],其配套設(shè)施充電樁也得到迅速發(fā)展。但目前充電樁生產(chǎn)廠家各自為陣,充電卡不能通用;運(yùn)營(yíng)商參差不齊,管理不統(tǒng)一;結(jié)算方式不一致,無(wú)法統(tǒng)一結(jié)算,由此造成大量充電樁處于閑置狀態(tài),嚴(yán)重阻礙了新能源汽車的發(fā)展。

      移動(dòng)互聯(lián)網(wǎng)蓬勃發(fā)展,我國(guó)移動(dòng)智能設(shè)備2015年達(dá)到8.99億[5]。數(shù)據(jù)研究公司IDC報(bào)告顯示,2017年全球移動(dòng)支付金額將突破1萬(wàn)億美元,移動(dòng)支付業(yè)務(wù)將呈現(xiàn)持續(xù)走強(qiáng)趨勢(shì)。

      將移動(dòng)支付應(yīng)用到電動(dòng)汽車行業(yè)是條新路。本文提出一種便于電動(dòng)汽車車主充電和付款、利于運(yùn)營(yíng)商推廣和管理的充電樁解決方案。充電樁運(yùn)營(yíng)商申請(qǐng)微信公眾號(hào),獲取相應(yīng)資源開(kāi)發(fā)公眾號(hào)功能,構(gòu)成前端。建立一個(gè)與充電樁交互的運(yùn)營(yíng)平臺(tái),開(kāi)發(fā)出相應(yīng)的WebService方法供前端調(diào)用。用戶只需在充電樁上掃描二維碼即可在微信里實(shí)現(xiàn)充電支付,方便快捷,本系統(tǒng)對(duì)不同運(yùn)營(yíng)商的充電樁皆可使用,且無(wú)須辦理充電卡或下載運(yùn)營(yíng)商App。

      1 系統(tǒng)架構(gòu)

      本系統(tǒng)分為平臺(tái)層、網(wǎng)絡(luò)層和終端層,架構(gòu)如圖1所示。平臺(tái)層是核心,包含WebService服務(wù)端和獨(dú)立運(yùn)行的數(shù)據(jù)集中服務(wù)器。數(shù)據(jù)集中服務(wù)器主要負(fù)責(zé)與所有分散的充電樁通信,并維持長(zhǎng)連接,輔助WebService服務(wù)端;WebService服務(wù)端主要監(jiān)聽(tīng)微信端的用戶請(qǐng)求,通過(guò)數(shù)據(jù)集中服務(wù)器獲取充電樁響應(yīng)再返回給用戶。終端層包括交流樁、直流樁等電動(dòng)汽車充電終端設(shè)施和智能手機(jī)、平板電腦、PC機(jī)等用戶設(shè)備。PC機(jī)便于運(yùn)營(yíng)商管理后臺(tái),電動(dòng)汽車車主則用智能手機(jī)來(lái)控制充電樁給電動(dòng)汽車充電,是平臺(tái)的輸入端,平臺(tái)的輸出是充電終端設(shè)施,負(fù)責(zé)完成車主指令,由此構(gòu)成完整的系統(tǒng)。網(wǎng)絡(luò)層是平臺(tái)層與終端層的紐帶,提供數(shù)據(jù)傳輸?shù)耐ǖ?,使用TCP/IP協(xié)議,包括有線網(wǎng)和無(wú)線網(wǎng)。充電樁可通過(guò)有線光纖網(wǎng)與平臺(tái)交互數(shù)據(jù),智能手機(jī)則可通過(guò)無(wú)線Wi-Fi、4G網(wǎng)絡(luò)等與后臺(tái)通信。

      2 系統(tǒng)組成及實(shí)現(xiàn)

      系統(tǒng)由微信公眾號(hào)、Web后臺(tái)管理、WebService服務(wù)端和數(shù)據(jù)集中服務(wù)器構(gòu)成。微信公眾號(hào)相當(dāng)于內(nèi)嵌的瀏覽器,提供用戶交互界面;Web后臺(tái)管理主要負(fù)責(zé)對(duì)用戶及充電樁進(jìn)行管理;WebService服務(wù)端處理微信公眾號(hào)轉(zhuǎn)發(fā)的用戶請(qǐng)求,通過(guò)數(shù)據(jù)集中服務(wù)器將命令發(fā)送給充電樁執(zhí)行,數(shù)據(jù)集中服務(wù)器負(fù)責(zé)處理所有充電樁的連接請(qǐng)求,收發(fā)充電樁的通信報(bào)文,按照協(xié)議解析、轉(zhuǎn)發(fā)給WebService服務(wù)端。

      2.1 微信公眾平臺(tái)

      2.1.1 微信公眾號(hào)

      微信公眾號(hào)的載體是微信,在微信里關(guān)注公眾號(hào)即可使用。手機(jī)內(nèi)存占用少,開(kāi)發(fā)簡(jiǎn)單快捷,用戶使用方便,易于推廣。用微信公眾號(hào)結(jié)算,解決了用戶出門(mén)帶多卡、忘帶卡無(wú)法充電的煩惱,解決了跨運(yùn)營(yíng)商、跨地區(qū)結(jié)算的難題。

      2.1.2 微信公眾平臺(tái)開(kāi)發(fā)

      微信是騰訊公司于2011年推出的一款通過(guò)網(wǎng)絡(luò)快速發(fā)送語(yǔ)音短信、視頻、圖片和文字,支持多人群聊的手機(jī)聊天軟件。微信公眾平臺(tái)是在微信的基礎(chǔ)上新增的功能模塊。在微信公眾平臺(tái)上,個(gè)人和企業(yè)可以申請(qǐng)一個(gè)微信公眾賬號(hào),實(shí)現(xiàn)和特定群體的文字、圖片、語(yǔ)音等全方位溝通、互動(dòng)[6]。

      微信公眾號(hào)開(kāi)啟微信公眾平臺(tái)的“開(kāi)發(fā)模式”,可以使用公眾平臺(tái)的接口開(kāi)發(fā)程序與用戶進(jìn)行消息交互。用戶關(guān)注了微信公眾號(hào)后,可以向該公眾號(hào)發(fā)送消息,消息通過(guò)網(wǎng)絡(luò)到達(dá)微信后臺(tái),微信后臺(tái)將該消息轉(zhuǎn)發(fā)到平臺(tái)服務(wù)器,服務(wù)器接收并解析消息,從數(shù)據(jù)庫(kù)查詢數(shù)據(jù)或下發(fā)命令給充電樁執(zhí)行,將結(jié)果返回給微信后臺(tái),微信后臺(tái)將結(jié)果轉(zhuǎn)發(fā)給微信客戶端,公眾號(hào)回復(fù)的消息到達(dá)用戶手機(jī)[7]。系統(tǒng)數(shù)據(jù)交互見(jiàn)圖2。

      在此數(shù)據(jù)交互過(guò)程中,微信就相當(dāng)于平臺(tái)的內(nèi)置瀏覽器,程序員開(kāi)發(fā)的平臺(tái)服務(wù)器要能夠接收微信后臺(tái)發(fā)送的用戶請(qǐng)求,并實(shí)現(xiàn)自己的業(yè)務(wù)邏輯,將用戶需要的數(shù)據(jù)返回給微信后臺(tái),該部分功能由WebService服務(wù)端完成。

      2.1.3 電動(dòng)汽車充電微信公眾號(hào)實(shí)現(xiàn)功能

      通過(guò)需求分析,本平臺(tái)主要實(shí)現(xiàn)電動(dòng)汽車的充電和支付功能,具體菜單包括掃碼充電、充電進(jìn)度、充電記錄、電樁搜索、充電預(yù)約5項(xiàng)。充電流程如圖3所示,其中涉及到WebService方法,有連接握手、驗(yàn)證充電樁合法性、下發(fā)開(kāi)始充電、查詢充電樁狀態(tài)、下發(fā)結(jié)束充電、保存/查詢充電記錄、設(shè)置電價(jià)、解鎖或鎖定充電樁、微信充值、查詢充值記錄、查詢賬戶信息等,具體開(kāi)發(fā)步驟詳見(jiàn)微信公眾平臺(tái)開(kāi)發(fā)者文檔,在此不再贅述。平臺(tái)與充電樁通過(guò)Socket進(jìn)行通信,公眾號(hào)使用RPC方式調(diào)用WebService,下面詳述Socket服務(wù)器開(kāi)發(fā)和WebService服務(wù)端開(kāi)發(fā)。

      2.2 數(shù)據(jù)集中服務(wù)器實(shí)現(xiàn)

      數(shù)據(jù)集中服務(wù)器決定著平臺(tái)的充電樁接入容量,主要通過(guò)Socket實(shí)現(xiàn),而充電樁與服務(wù)器是長(zhǎng)連接,需要異步通訊,故服務(wù)器采用Socket + 異步回調(diào)方法,大概能接入7 500個(gè)客戶端,這對(duì)于中小型運(yùn)營(yíng)商已經(jīng)足夠。

      在異步模式下,服務(wù)器使用BeginAccept()方法和EndAccept()方法來(lái)完成連接到客戶端的任務(wù)。BeginAccept在異步方式下傳入連接嘗試,不必等待連接建立就可執(zhí)行后面程序。注意在調(diào)用BeginAccept()之前,必須使用Listen方法來(lái)偵聽(tīng)是否有連接請(qǐng)求。

      使用BeginAccept()的基本流程:①創(chuàng)建本地服務(wù)節(jié)點(diǎn),并新建套接字與本地服務(wù)節(jié)點(diǎn)進(jìn)行綁定;②在端口上偵聽(tīng)是否有新的連接請(qǐng)求;③請(qǐng)求接入新的連接,傳入Socket實(shí)例。

      當(dāng)BeginAccept()方法調(diào)用后,一旦有新的連接發(fā)生,將調(diào)用回調(diào)函數(shù),而該回調(diào)函數(shù)必須用來(lái)結(jié)束接入連接操作的EndAccept()方法??蛻舳瞬捎肅onnect()請(qǐng)求連接,建立連接后,可與服務(wù)器端進(jìn)行數(shù)據(jù)通信。服務(wù)端用BeginSend()和EndSend()方法發(fā)送數(shù)據(jù),用BeginReceive和EndReceive來(lái)接收數(shù)據(jù)。

      為使服務(wù)器具有很高的響應(yīng)速度且控制簡(jiǎn)單,采用程序阻塞的方式處理充電樁的連接,也即線程同步。.Net提供了EventWaitHandle類,即事件等待句柄來(lái)表示一個(gè)線程的同步事件,該類允許線程通過(guò)互發(fā)信號(hào)和等待彼此的信號(hào)來(lái)達(dá)到線程同步的目的。此類有2個(gè)子類,分別為AutoRestEevnt(自動(dòng)重置)和ManualRestEvent(手動(dòng)重置)。

      本程序采用ManualRestEvent對(duì)象創(chuàng)建一個(gè)等待句柄,在調(diào)用BeginAccept方法前使用Reset方法允許其它線程阻塞;為了防止在連接完成之前對(duì)套接字進(jìn)行讀寫(xiě)操作,務(wù)必要在BeginAccept方法后調(diào)用WaitOne讓線程進(jìn)入阻塞狀態(tài)。當(dāng)有連接接入后,系統(tǒng)會(huì)自動(dòng)調(diào)用回調(diào)函數(shù),所以當(dāng)代碼執(zhí)行到回調(diào)函數(shù)時(shí),說(shuō)明連接已經(jīng)成功,并在函數(shù)的第一句就調(diào)用Set方法讓處于等待的線程可以繼續(xù)執(zhí)行。

      2.3 WebService技術(shù)

      2.3.1 WebService技術(shù)簡(jiǎn)介

      WebService是一種通過(guò)Web部署提供對(duì)業(yè)務(wù)功能訪問(wèn)的技術(shù),通過(guò)它能使運(yùn)行在不同機(jī)器上的不同應(yīng)用無(wú)需借助附加的、專門(mén)的第三方軟件或硬件,就可相互交換數(shù)據(jù)或集成。Web Service將消息以XML格式編碼,并將消息通過(guò)標(biāo)準(zhǔn)的互聯(lián)網(wǎng)協(xié)議(如HTTP)發(fā)送出去,與其它應(yīng)用程序進(jìn)行通信。

      WebService是面向?qū)ο蟮姆?wù)體系結(jié)構(gòu)(SOA),包括3個(gè)關(guān)鍵技術(shù):SOAP、WSDL和UDDI。WebService的開(kāi)發(fā)者借助UDDI(Universal Description, Discovery and Integration,通用描述、發(fā)現(xiàn)和集成協(xié)議)在互聯(lián)網(wǎng)上公布Web Service。任何語(yǔ)言、任何平臺(tái)上的客戶都可以閱讀WSDL(Web Service Description Language)文檔,通過(guò)SOAP調(diào)用這個(gè)WebService[8]。

      2.3.2 WebService技術(shù)實(shí)現(xiàn)

      鑒于快速開(kāi)發(fā)需求,我們采用C#開(kāi)發(fā)電動(dòng)汽車充電運(yùn)營(yíng)平臺(tái),開(kāi)發(fā)環(huán)境為Microsoft Visual Studio 2010;平臺(tái)使用SQL Server 2008數(shù)據(jù)庫(kù)管理用戶、存儲(chǔ)充電記錄和充值記錄。

      考慮平臺(tái)的擴(kuò)展性,采用三層架構(gòu)體系(3-tier application)。通常意義上的三層架構(gòu)就是將整個(gè)業(yè)務(wù)應(yīng)用劃分為:表示層(UI)、業(yè)務(wù)邏輯層(BLL)、數(shù)據(jù)訪問(wèn)層(DAL)。表示層(UI)用于顯示數(shù)據(jù)和接收用戶輸入的數(shù)據(jù),為用戶提供一種交互式操作界面;業(yè)務(wù)邏輯層(BLL)操作數(shù)據(jù)訪問(wèn),對(duì)數(shù)據(jù)業(yè)務(wù)進(jìn)行邏輯處理;數(shù)據(jù)訪問(wèn)層(DAL)負(fù)責(zé)數(shù)據(jù)庫(kù)的訪問(wèn),可以訪問(wèn)數(shù)據(jù)庫(kù)系統(tǒng)、二進(jìn)制文件、文本文檔或XML文檔。區(qū)分層次的目的是為了體現(xiàn)“高內(nèi)聚,低耦合”的思想。此外還需要Model實(shí)體類來(lái)傳遞數(shù)據(jù)。

      (1)在SQL Server 2008中建好用戶表、充電記錄表、用戶與充電記錄表之間的關(guān)系表、充值記錄表、用戶與充值記錄表之間的關(guān)系表。

      (2)在VS2010中新建結(jié)構(gòu)工程,分別是Model層、DAL層、BLL層、UI層。

      (3)使用三層結(jié)構(gòu)代碼生成器連接數(shù)據(jù)庫(kù),生成相應(yīng)的Model和DAL層,并復(fù)制到相應(yīng)的VS2010工程后,作相應(yīng)修改,使DAL層能訪問(wèn)數(shù)據(jù)庫(kù)。在UI層添加Web代碼,構(gòu)建用戶管理和充電樁管理界面。

      (4)在BLL層完成數(shù)據(jù)庫(kù)邏輯操作,包括用戶的增刪改查、充電記錄的增查等。充電實(shí)時(shí)控制的相關(guān)命令需與充電樁進(jìn)行通信,使用Socket編程,按照已經(jīng)規(guī)定的協(xié)議進(jìn)行數(shù)據(jù)交互。

      (5)在VS2010中新建WebService工程,調(diào)用BLL層的函數(shù)實(shí)現(xiàn)服務(wù)方法。使用IIS將Web服務(wù)發(fā)布到相應(yīng)的服務(wù)器,供微信公眾號(hào)開(kāi)發(fā)者和Web前端調(diào)用。數(shù)據(jù)集中服務(wù)器在Web訪問(wèn)時(shí)必須啟動(dòng),即將監(jiān)聽(tīng)函數(shù)寫(xiě)在Global.asax的Application_Start函數(shù)中。為了防止Web無(wú)訪問(wèn)造成充電樁無(wú)法連接服務(wù)器,可利用網(wǎng)頁(yè)緩存過(guò)期方法來(lái)定時(shí)訪問(wèn)Web。

      3 應(yīng)用實(shí)例

      筆者實(shí)驗(yàn)室與某充電樁運(yùn)營(yíng)商合作共同研發(fā)了基于微信的電動(dòng)汽車充電運(yùn)營(yíng)平臺(tái),目前應(yīng)用于龍門(mén)寺高速服務(wù)區(qū)。用戶開(kāi)車到充電樁附近,關(guān)注公眾號(hào)并授權(quán),會(huì)收到用戶余額信息,見(jiàn)圖4。若余額不足,則需選擇菜單欄“賬戶”/“充值”對(duì)賬戶進(jìn)行充值,成功后方可進(jìn)行充電操作。通過(guò)掃描充電樁上二維碼,會(huì)顯示圖5所示界面,包括充電樁信息、用戶余額以及充電方式選擇,可選擇定額充電或定時(shí)充電,如果都不填,則默認(rèn)為充滿為止。輸入用戶密碼,點(diǎn)擊“開(kāi)始充電”。可選擇“充電”/“充電進(jìn)度”查詢充電進(jìn)度。如果是交流樁,充電進(jìn)度界面會(huì)顯示充電時(shí)間或充電金額信息;如果是直流樁,除顯示以上信息外,還會(huì)顯示電池SOC值、電池溫度和電池電壓。在充電進(jìn)度界面下可根據(jù)需要提前結(jié)束充電。如不提前結(jié)束,則充電樁將按要求正常結(jié)束充電、生成充電記錄、完成扣費(fèi)并通知用戶?!俺潆娪涗洝碧峁┙o用戶查詢,也是扣費(fèi)的依據(jù)。

      4 結(jié)語(yǔ)

      本文設(shè)計(jì)并實(shí)現(xiàn)了基于微信的電動(dòng)汽車充電運(yùn)營(yíng)平臺(tái),為電動(dòng)汽車充電提供了一種解決方案。使用微信公眾平臺(tái)和WebService技術(shù)開(kāi)發(fā)運(yùn)營(yíng)商平臺(tái),簡(jiǎn)單快捷,擴(kuò)展性好,用戶只需微信掃一掃即可實(shí)現(xiàn)充電,使用方便。后期將建設(shè)電動(dòng)汽車充電運(yùn)營(yíng)統(tǒng)一管理平臺(tái)。

      參考文獻(xiàn):

      [1] SORTOMME E,EL-SHARKAWI M A. Optimal charging strategies for unidirectional vehicle-to-grid [J] . IEEE Transaction on Smart Grid,2011,2(1):131-138.

      [2] GUOQINGLAI,WANG YAO,SUN HONGBIN,et al. Research on architecture of ITS based smart charging guide system [C].Power and Energy Society General Meeting. San Diego:IEEE,2011:1-5.

      [3] 王恩琦.電動(dòng)汽車充電設(shè)施運(yùn)營(yíng)模式及規(guī)劃研究[D].北京:華北電力大學(xué),2012.

      [4] 殷樹(shù)剛,劉磊,胡宇宣,等.市政路燈和電動(dòng)汽車充電樁的一體化系統(tǒng)研究[J].供用電,2014,31(8):24-27.

      [5] 移動(dòng)數(shù)據(jù)服務(wù)商QuestMobile.2015年中國(guó)移動(dòng)互聯(lián)網(wǎng)研究報(bào)告[EB/OL].2016-01.http://tech.sina.com.cn/2016-01-08/doc-ifxnkkuy7746197.shtml

      [6] 鐘志勇.微信公眾平臺(tái)應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)[M].北京:機(jī)械工業(yè)出版社,2013.

      [7] 微信公眾平臺(tái)開(kāi)發(fā)者文檔[EB/OL]. http://mp.weixin.qq.com/wiki/home/

      [8] 房曉東.ASP.NET從入門(mén)到精通[M].北京:化學(xué)工業(yè)出版社,2009.

      (責(zé)任編輯:杜能鋼)

      猜你喜歡
      移動(dòng)支付微信公眾號(hào)
      以微信紅包為例分析移動(dòng)支付對(duì)互聯(lián)網(wǎng)金融的促進(jìn)作用
      從財(cái)務(wù)角度探討支付寶移動(dòng)支付業(yè)務(wù)對(duì)醫(yī)院的挑戰(zhàn)與對(duì)策
      移動(dòng)支付中NFC創(chuàng)意新技術(shù)
      電子商務(wù)環(huán)境下移動(dòng)支付模式研究
      打車軟件的普及對(duì)城市交通壓力緩解情況研究
      山東青年(2016年9期)2016-12-08 16:07:36
      采用開(kāi)源路由器實(shí)現(xiàn)多功能智能監(jiān)控報(bào)警系統(tǒng)
      江蘇生鮮產(chǎn)品微信公眾號(hào)營(yíng)銷問(wèn)題及對(duì)策研究
      微信公眾號(hào)的運(yùn)營(yíng)模式研究
      微信公眾號(hào)在高?!癙hotoshop圖像處理”課程中的應(yīng)用
      試論“央視新聞”公眾號(hào)的成功運(yùn)行對(duì)傳統(tǒng)媒體轉(zhuǎn)型發(fā)展的借鑒意義
      出版廣角(2016年15期)2016-10-18 00:30:30
      石渠县| 荣成市| 普宁市| 通化市| 新余市| 克东县| 临朐县| 咸丰县| 财经| 页游| 元朗区| 盖州市| 林甸县| 岱山县| 乌拉特前旗| 鱼台县| 凤冈县| 德令哈市| 紫阳县| 丁青县| 海丰县| 盐亭县| 金溪县| 普兰店市| 宜川县| 章丘市| 海兴县| 盐边县| 浦城县| 宜君县| 漳平市| 衡南县| 永定县| 台湾省| 满洲里市| 文昌市| 廊坊市| 左云县| 布拖县| 湖南省| 磐石市|