• 
    

    
    

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

      基于開源OpenWrt的認(rèn)證路由器定點(diǎn)考勤*

      2018-08-08 07:31:40,
      關(guān)鍵詞:考勤開源路由器

      ,

      (鄭州大學(xué) 信息工程學(xué)院,鄭州 450001)

      引 言

      現(xiàn)今社會,人力資源管理是現(xiàn)代企業(yè)工作的重中之重,其有效性嚴(yán)重影響企業(yè)發(fā)展,進(jìn)一步影響企業(yè)的興衰成敗[1]。傳統(tǒng)的企業(yè)管理方式,例如在公司辦公時刷卡簽到、外勤辦公時電話查勤、月末匯總考勤信息時用紙質(zhì)報表或電腦應(yīng)用軟件[2]等方式擁有如下弊端:第一,考勤數(shù)據(jù)統(tǒng)計工作量大,而且誤差較大;第二,容易出現(xiàn)簽而未到、代打卡等情況。隨著社會節(jié)奏的加快,企業(yè)對管理的便捷、真實(shí)、高效的需求日益迫切。

      移動終端的普及為解決這一難題提供了契機(jī)[3]。但是手機(jī)的室內(nèi)定位精確度較低,不能滿足企業(yè)管理室內(nèi)考勤真實(shí)有效的要求。傳統(tǒng)的室內(nèi)考勤,如RFID[4]、指紋識別[5]和臉部識別[6]等雖解決了室內(nèi)考勤問題,但是其效率不高,不能滿足現(xiàn)今企業(yè)對管理的高效要求。

      隨著科技的發(fā)展,WiFi室內(nèi)定位技術(shù)因其容易安裝、總精度高,且易于整合的優(yōu)點(diǎn)逐漸走進(jìn)人們視野。普通路由器基于WiFi實(shí)現(xiàn)室內(nèi)考勤的方式[7]在企業(yè)管理中也是存在的,但是其考勤數(shù)據(jù)的真實(shí)性和有效性難以保證。通常標(biāo)識路由器有兩種方式,一種基于IP地址,另一種基于MAC地址。路由器一般通過撥號等方式進(jìn)行上網(wǎng),每次重啟時公網(wǎng)IP可能發(fā)生變化,所以IP地址不能作其唯一標(biāo)識;對于MAC地址來說,也會被非法改變或復(fù)制,難以實(shí)現(xiàn)唯一標(biāo)識的作用。因此,這就使基于普通路由器的室內(nèi)考勤方式流于形式。與此同時,開源路由器[8]設(shè)備也隨著開源路由器軟件的風(fēng)靡而日趨流行,它解決了傳統(tǒng)路由器設(shè)備價格昂貴、靈活性差等問題,滿足用戶根據(jù)自己的需要進(jìn)行定制開發(fā)的需求,這為實(shí)現(xiàn)企業(yè)管理的真實(shí)高效提供了新的解決思路。

      綜上所述,針對現(xiàn)今企業(yè)管理便捷、真實(shí)、高效的要求,根據(jù)河南省某運(yùn)營商的委托,結(jié)合智能移動手機(jī)終端、Android平臺和開源路由器,本文提出了基于OpenWrt開源路由器的企業(yè)管理系統(tǒng)解決方案。本方案利用OpenWrt開源路由器系統(tǒng)高靈活性的優(yōu)點(diǎn)設(shè)計實(shí)現(xiàn)定制認(rèn)證路由器;開發(fā)基于Android平臺的智能手機(jī)應(yīng)用系統(tǒng)實(shí)現(xiàn)企業(yè)管理;兩者結(jié)合有效解決了手機(jī)無法準(zhǔn)確完成室內(nèi)考勤的問題,實(shí)現(xiàn)企業(yè)的便捷、真實(shí)、高效的管理;可以增強(qiáng)企業(yè)管理的信息化,為企業(yè)管理的信息化建設(shè)提供支持;可以使工作流程更順暢、企業(yè)健康向上發(fā)展。

      1 系統(tǒng)總體設(shè)計

      1.1 網(wǎng)絡(luò)拓?fù)鋱D

      圖1為本系統(tǒng)的網(wǎng)絡(luò)拓?fù)鋱D。根據(jù)系統(tǒng)的需求,企業(yè)日常工作分為室內(nèi)和室外兩種工作場景,所以本系統(tǒng)設(shè)計分為室內(nèi)定點(diǎn)考勤和室外移動考勤兩種模式。在室內(nèi)定點(diǎn)考勤時,由于GPS和基站室內(nèi)定位困難,不能滿足公司室內(nèi)定點(diǎn)打卡的需求,本系統(tǒng)設(shè)計了認(rèn)證路由器。OpenWrt認(rèn)證路由器安裝在辦公室內(nèi),手機(jī)客戶端通過連接OpenWrt路由器的WiFi信號實(shí)現(xiàn)信息通信;OpenWrt路由器對手機(jī)客戶端發(fā)送的考勤信息進(jìn)行解析認(rèn)證,并將認(rèn)證后的考勤信息發(fā)送到服務(wù)器端考勤打卡,以此確定用戶考勤操作在公司規(guī)定范圍內(nèi)實(shí)現(xiàn),保證室內(nèi)考勤的真實(shí)有效性。在室外移動考勤模式中,員工使用Android客戶端利用3G/4G和WiFi連接網(wǎng)絡(luò)實(shí)現(xiàn)數(shù)據(jù)通信,通過GPS和基站來實(shí)現(xiàn)定位功能,基于百度API顯示員工當(dāng)前位置地址,通過HTTP協(xié)議實(shí)現(xiàn)客戶端和服務(wù)器端的信息通信。

      圖1 系統(tǒng)網(wǎng)絡(luò)拓?fù)鋱D

      1.2 系統(tǒng)總體架構(gòu)

      系統(tǒng)總體架構(gòu)設(shè)計圖如圖2所示,本系統(tǒng)的整體架構(gòu)分為服務(wù)器、OpenWrt認(rèn)證路由器和Android客戶端三部分。認(rèn)證路由器是基于開源嵌入式系統(tǒng)OpenWrt實(shí)現(xiàn)的,經(jīng)過裁剪使其更適用于本系統(tǒng)所選擇的JS7628嵌入式開發(fā)板。在此基礎(chǔ)上設(shè)計實(shí)現(xiàn)了自定義協(xié)議和RSSI閾值比對模塊,實(shí)現(xiàn)與Android客戶端的快速認(rèn)證,并確保室內(nèi)打卡在認(rèn)證路由器規(guī)定距離的范圍內(nèi),以避免非法打卡等現(xiàn)象的發(fā)生,滿足本系統(tǒng)室內(nèi)定點(diǎn)考勤的需求。Android客戶端基于Android平臺采用C/S模式開發(fā),通過GPS和基站實(shí)現(xiàn)室外考勤,并將室內(nèi)與室外考勤融合在一起,實(shí)現(xiàn)考勤、請假、內(nèi)部信息等管理功能,滿足系統(tǒng)整體需求。服務(wù)器端實(shí)現(xiàn)數(shù)據(jù)的后臺操作,包括數(shù)據(jù)的匯總、反饋和保存。

      圖2 系統(tǒng)總體架構(gòu)設(shè)計圖

      1.2.1 Android手機(jī)客戶端

      基于企業(yè)管理系統(tǒng)操作簡單、管理方便的目的,針對室內(nèi)室外兩種工作模式下傳統(tǒng)考勤方式便捷性不足的弊端,本系統(tǒng)設(shè)計了Android客戶端。出于與開源路由器結(jié)合實(shí)現(xiàn)企業(yè)的便捷管理的目的,本方案的 Android客戶端設(shè)計了數(shù)據(jù)采集、數(shù)據(jù)展示以及交互模塊。

      通過Android客戶端獲取用戶考勤的基本信息完成數(shù)據(jù)采集,包括當(dāng)前時間、地點(diǎn)等實(shí)時信息和用戶姓名、部門等用戶基本信息。數(shù)據(jù)展示是整個系統(tǒng)的展示窗口,實(shí)現(xiàn)與用戶的交互,提高用戶體驗(yàn)的滿意度,用戶通過Android客戶端可以實(shí)現(xiàn)查看各種信息的目的,包括打卡考勤及統(tǒng)計信息、請假及統(tǒng)計信息和公司內(nèi)部信息等。企業(yè)考勤管理客戶端為了實(shí)現(xiàn)與認(rèn)證路由器和服務(wù)器的數(shù)據(jù)交互,設(shè)計了交互模塊?;赥CP協(xié)議的Socket通信實(shí)現(xiàn)與OpenWrt認(rèn)證路由器間的數(shù)據(jù)交互,為了實(shí)現(xiàn)能夠通過認(rèn)證路由器的解析認(rèn)證,設(shè)計自定義協(xié)議對采集到的室內(nèi)考勤信息進(jìn)行處理,實(shí)現(xiàn)室內(nèi)考勤。通過HTTP協(xié)議實(shí)現(xiàn)與服務(wù)器端的數(shù)據(jù)交互,實(shí)現(xiàn)室外移動考勤和其他企業(yè)管理功能。

      1.2.2 OpenWrt認(rèn)證路由器

      針對傳統(tǒng)室內(nèi)考勤便捷性不足和真實(shí)性較低的問題,本系統(tǒng)設(shè)計了基于OpenWrt開源嵌入式系統(tǒng)的認(rèn)證路由器,實(shí)現(xiàn)對室內(nèi)考勤數(shù)據(jù)的認(rèn)證,確保室內(nèi)考勤的真實(shí)性;另外,實(shí)現(xiàn)與Android客戶端結(jié)合以提高系統(tǒng)的便捷性。為了實(shí)現(xiàn)與Android客戶端以及服務(wù)器端的數(shù)據(jù)交互設(shè)計了數(shù)據(jù)收發(fā)模塊,接收Android客戶端發(fā)來的考勤數(shù)據(jù),并將認(rèn)證處理過的數(shù)據(jù)發(fā)送到服務(wù)器端。為了確保室內(nèi)考勤的有效性、避免非法打卡等情況的發(fā)生,本系統(tǒng)在認(rèn)證路由器上設(shè)計實(shí)現(xiàn)了認(rèn)證處理模塊,認(rèn)證處理模塊是路由器的關(guān)鍵模塊。

      為了防止認(rèn)證路由器中的認(rèn)證程序意外終止、保證進(jìn)程的不間斷運(yùn)行,本系統(tǒng)設(shè)計了進(jìn)程管理。考慮到系統(tǒng)實(shí)現(xiàn)過程中的可配置性,本系統(tǒng)通過配置文件來配置參數(shù),當(dāng)進(jìn)行系統(tǒng)維護(hù)時,維護(hù)人員可直接在配置文件中對相關(guān)參數(shù)進(jìn)行配置,避免在源碼中的修改,提高了系統(tǒng)的可管理性。

      1.2.3 服務(wù)器

      服務(wù)器主要實(shí)現(xiàn)數(shù)據(jù)的匯總、反饋及保存,對收到的路由器或者手機(jī)客戶端發(fā)送的數(shù)據(jù)給予反饋,標(biāo)記打卡等操作是否成功,并且將數(shù)據(jù)保存匯總以便響應(yīng)手機(jī)客戶端發(fā)來的數(shù)據(jù)請求并生成考勤匯總表等。

      2 OpenWrt認(rèn)證路由器的設(shè)計

      2.1 OpenWrt認(rèn)證路由器的總體設(shè)計

      針對傳統(tǒng)室內(nèi)考勤真實(shí)性較低的問題,本系統(tǒng)設(shè)計了OpenWrt認(rèn)證路由器實(shí)現(xiàn)對用戶室內(nèi)考勤時的認(rèn)證,以此確保企業(yè)管理系統(tǒng)室內(nèi)考勤的真實(shí)有效性。同時,認(rèn)證路由器與Android客戶端結(jié)合實(shí)現(xiàn)室內(nèi)室外考勤集中管理,以提高系統(tǒng)的便捷性。為了彌補(bǔ)普通路由器標(biāo)識符不可靠的問題,本系統(tǒng)利用開源路由器可定制的特性設(shè)計了自定義協(xié)議及RSSI閾值對比認(rèn)證模塊,通過對手機(jī)客戶端接收到的考勤信息進(jìn)行認(rèn)證處理,然后向服務(wù)器端發(fā)送打卡請求實(shí)現(xiàn)室內(nèi)定點(diǎn)考勤,提高室內(nèi)考勤的真實(shí)有效性。

      OpenWrt認(rèn)證路由器的總體模塊設(shè)計分為硬件平臺、操作系統(tǒng)和應(yīng)用程序三部分,主要包含內(nèi)容如圖3所示。

      圖3 OpenWrt認(rèn)證路由器總體模塊設(shè)計圖

      在運(yùn)行過程中,啟動OpenWrt系統(tǒng)的Linux內(nèi)核需要啟動文件Bootloader,本系統(tǒng)選擇Uboot程序來實(shí)現(xiàn)。根據(jù)系統(tǒng)需求,為了提高系統(tǒng)室內(nèi)考勤的真實(shí)性,本系統(tǒng)基于嵌入式硬件平臺和OpenWrt操作系統(tǒng)設(shè)計了應(yīng)用程序,實(shí)現(xiàn)數(shù)據(jù)接收、數(shù)據(jù)處理和數(shù)據(jù)傳送功能,對考勤信息進(jìn)行認(rèn)證處理,確保室內(nèi)考勤信息的真實(shí)有效。本系統(tǒng)通過TCP協(xié)議的Socket通信從Android客戶端接收打卡信息實(shí)現(xiàn)數(shù)據(jù)接收;數(shù)據(jù)處理模塊將接收到的數(shù)據(jù)通過自定義協(xié)議和RSSI閾值對比模塊進(jìn)行處理認(rèn)證;數(shù)據(jù)發(fā)送模塊通過HTTP傳輸協(xié)議與服務(wù)器端傳輸數(shù)據(jù),基于Libcurl庫實(shí)現(xiàn)數(shù)據(jù)傳送。另外為了支撐各數(shù)據(jù)操作模塊,系統(tǒng)還設(shè)計了進(jìn)程管理、配置文件等模塊。

      2.2 硬件平臺以及操作系統(tǒng)OpenWrt開發(fā)

      2.2.1 系統(tǒng)硬件平臺

      經(jīng)過對比分析,本設(shè)計選用JS7628開發(fā)板為本系統(tǒng)的硬件平臺,它的主芯片是MTK(聯(lián)發(fā)科)的MT7628AN SoC芯片,其核心板是基于該芯片的WiFi模塊,具有580 MHz的CPU頻率,300 MHz的WiFi。JS7628開發(fā)板可長期穩(wěn)定運(yùn)行OpenWrt系統(tǒng),滿足本文OpenWrt對認(rèn)證路由器的設(shè)計要求。

      圖4為 JS7628開發(fā)板實(shí)物圖。為了滿足本系統(tǒng)的設(shè)計需求,在設(shè)計過程中將開發(fā)板的3個以太網(wǎng)接口分別設(shè)置成一個WAN口和兩個LAN口。WAN口與外網(wǎng)相連并且實(shí)現(xiàn)本系統(tǒng)考勤等數(shù)據(jù)的發(fā)送;兩個LAN口設(shè)置局域網(wǎng)實(shí)現(xiàn)認(rèn)證路由器端打卡數(shù)據(jù)的接收。擁有雙天線,可以保證本系統(tǒng)打卡數(shù)據(jù)接收和發(fā)送的高速進(jìn)行。DC 5 V/2 A的電源接口為開源路由器提供運(yùn)行基礎(chǔ),電源指示燈為是否正常供電提供指示作用。下排的5個LED指示燈,分別指示系統(tǒng)是否正常運(yùn)行、WiFi是否正常通信以及3個以太網(wǎng)口是否處于正常工作狀態(tài)。另外,開發(fā)板通過復(fù)位按鈕來實(shí)現(xiàn)故障恢復(fù)。

      圖4 JS7628開發(fā)板外觀圖

      2.2.2 OpenWrt開發(fā)流程

      OpenWrt系統(tǒng)開發(fā)的流程如圖5所示。與其他在WRT54G/GS的源碼基礎(chǔ)上修改得來的開源路由系統(tǒng)不同,OpenWrt系統(tǒng)是基于Linux源碼日漸完善的。開發(fā)者利用OpenWrt的高度模塊化特性可以方便快捷地將各種功能移植到該系統(tǒng)下,豐富用戶體驗(yàn)。

      圖5 OpenWrt系統(tǒng)開發(fā)的流程

      2.3 各功能模塊設(shè)計

      本文設(shè)計的OpenWrt認(rèn)證路由器主要有數(shù)據(jù)接收、數(shù)據(jù)處理、數(shù)據(jù)發(fā)送、進(jìn)程管理和配置文件等模塊。

      2.3.1 數(shù)據(jù)接收

      認(rèn)證路由器的數(shù)據(jù)接收模塊主要是從手機(jī)客戶端接收到考勤信息送去認(rèn)證處理模塊的過程,即與手機(jī)客戶端的交互模塊?;跀?shù)據(jù)傳送的安全性和連接的可靠性考慮,本系統(tǒng)通過TCP協(xié)議的Socket通信實(shí)現(xiàn)手機(jī)客戶端與OpenWrt認(rèn)證路由器的數(shù)據(jù)傳輸,確??煽窟B接。

      2.3.2 數(shù)據(jù)處理

      為了實(shí)現(xiàn)認(rèn)證路由器對用戶的快速認(rèn)證,避免二次以及多次交互認(rèn)證,本系統(tǒng)設(shè)計了一個自定義的數(shù)據(jù)封裝協(xié)議,并且為了確保用戶在公司規(guī)定范圍內(nèi)打卡,本系統(tǒng)設(shè)計了RSSI的閾值比對認(rèn)證。

      2.3.2.1自定義協(xié)議

      為了提高室內(nèi)考勤的真實(shí)有效性,本系統(tǒng)設(shè)計了自定義協(xié)議對手機(jī)客戶端傳送的考勤信息進(jìn)行認(rèn)證處理,以此來確保此次考勤打卡的信息有效且是在公司定點(diǎn)打卡。本文的自定義協(xié)議分段設(shè)計了數(shù)據(jù)內(nèi)容;并且對界定字符進(jìn)行區(qū)分,分為起始符SOF和結(jié)束符EOF,使界定更加明確,區(qū)分有用數(shù)據(jù)和垃圾數(shù)據(jù),提高傳輸?shù)挠行浴D6將室內(nèi)考勤信息分成了兩部分,即標(biāo)識符部分和數(shù)據(jù)部分。

      圖6 自定義協(xié)議數(shù)據(jù)內(nèi)容設(shè)計圖

      為了方便公司間設(shè)置不同的標(biāo)識符,設(shè)計了UNIQUE字段,實(shí)現(xiàn)標(biāo)識符的唯一性,以示不同企業(yè)間的區(qū)別。數(shù)據(jù)部分的設(shè)計則和具體的傳輸內(nèi)容有關(guān),包括公司ID、員工ID等信息以及其他考勤信息,對數(shù)據(jù)進(jìn)行自定義的認(rèn)證處理,以此防止非法打卡等情況出現(xiàn);另外,數(shù)據(jù)部分還設(shè)計了CRC校驗(yàn)字段,用于差錯檢測,加強(qiáng)傳輸過程中數(shù)據(jù)的糾錯檢測,提高數(shù)據(jù)傳輸?shù)恼_率。

      圖7為本文自定義協(xié)議的數(shù)據(jù)封裝圖。

      圖7 本文自定義協(xié)議數(shù)據(jù)封裝圖

      其數(shù)據(jù)轉(zhuǎn)義規(guī)則如下:

      為了避免數(shù)據(jù)中與起始符SOF相同的數(shù)據(jù)字符被當(dāng)成起始符,減少數(shù)據(jù)處理過程中的錯誤率,本協(xié)議通過將相同字符SOF轉(zhuǎn)義為連續(xù)的兩個字符ALT和S1,實(shí)現(xiàn)字符轉(zhuǎn)義。與之對應(yīng)的是,當(dāng)數(shù)據(jù)接收端接收到連續(xù)的兩個字符ALT和S1時,將其轉(zhuǎn)回與起始符SOF相同的數(shù)據(jù)字符。同理EOF和ALT。

      2.3.2.2RSSI閾值對比

      針對傳統(tǒng)室內(nèi)考勤存在的真實(shí)有效性差等問題,進(jìn)一步確保用戶進(jìn)行室內(nèi)考勤時的地點(diǎn)范圍,本系統(tǒng)設(shè)計了RSSI的閾值比對認(rèn)證,圈定用戶考勤打卡時與OpenWrt認(rèn)證路由器間的距離范圍。RSSI(Received Signal Strength Indication)為接收信號強(qiáng)度。RSSI定位是通過接收到的信號強(qiáng)弱來測定接收點(diǎn)與信號源的距離。本文設(shè)計的RSSI閾值比對認(rèn)證模塊選擇了基于RSSI距離損耗測距方法。

      無線信號的發(fā)射功率和接收功率的關(guān)系用式(1)表示,PR是無線信號的接收功率,PT是無線信號的發(fā)射功率,r是收發(fā)單元之間的距離,n為傳播因子,數(shù)值大小取決于無線信號傳播的環(huán)境。

      (1)

      在式兩邊取對數(shù)可得到:

      10nlgr=10lgPT/PR

      (2)

      節(jié)點(diǎn)的發(fā)射功率是已知的,將發(fā)送功率代入上式得:

      10lgPR=A-10×nlgr

      (3)

      式(3)的左半部分10lgPR是接收信號功率轉(zhuǎn)換為dBm的表達(dá)式,可以直接寫成下式:

      PR(dBm)=A-10×nlgr

      (4)

      這里的PR(dBm)就是指在距離為r的時候應(yīng)該獲取的RSSI值,A可以看作信號傳輸1 m遠(yuǎn)時接收信號的功率。

      根據(jù)式(4),計算出當(dāng)距離OpenWrt路由器d時的RSSI值,將其設(shè)為閾值,然后將獲取的手機(jī)RSSI值與閾值進(jìn)行比對,若大于該閾值,則說明用戶打卡時距離認(rèn)證路由器的距離小于設(shè)定距離d,由此判定打卡信息有效。另外,將參數(shù)A和n以及認(rèn)證距離d放進(jìn)配置文件,方便改動。

      本系統(tǒng)設(shè)計的RSSI閾值對比的實(shí)現(xiàn)流程如圖8所示。當(dāng)手機(jī)與認(rèn)證路由器進(jìn)行連接時,認(rèn)證路由器可以獲取到手機(jī)端的RSSI值。程序從配置文件中獲取企業(yè)事先設(shè)定好的考勤距離d,將d值帶入公式計算出RSSI閾值Py。將獲取的用戶RSSI值與程序計算出的閾值Py進(jìn)行比較,若RSSI值大,則判定本次考勤打卡有效。

      圖8 RSSI閾值對比流程圖

      2.3.3 數(shù)據(jù)發(fā)送

      本系統(tǒng)將接收到的數(shù)據(jù)進(jìn)行處理后,需要將數(shù)據(jù)發(fā)送到服務(wù)器端進(jìn)行匯總和存儲。OpenWrt認(rèn)證路由器與服務(wù)器端的數(shù)據(jù)傳送利用HTTP協(xié)議的Post方式實(shí)現(xiàn),認(rèn)證路由器對服務(wù)器發(fā)出室內(nèi)考勤打卡請求,服務(wù)器收到請求后做出響應(yīng)。在數(shù)據(jù)發(fā)送模塊中,本系統(tǒng)基于Libcurl庫實(shí)現(xiàn)認(rèn)證路由器與服務(wù)器端基于HTTP協(xié)議Post方式的數(shù)據(jù)發(fā)送。

      2.3.4 進(jìn)程管理和配置文件

      為了防止認(rèn)證路由器中的認(rèn)證程序在運(yùn)行過程中意外終止,本系統(tǒng)為OpenWrt認(rèn)證路由器設(shè)置進(jìn)程管理功能的守護(hù)進(jìn)程,以保證進(jìn)程的不間斷運(yùn)行,如數(shù)據(jù)處理(包括自定義協(xié)議的認(rèn)證和RSSI閾值對比模塊)、數(shù)據(jù)接收和數(shù)據(jù)傳送等。

      將配置文件同主程序放在同一文件夾下,當(dāng)系統(tǒng)初始化的時候自動讀取配置文件,加載出相應(yīng)參數(shù)。配置文件的內(nèi)容是以鍵值對的方式存儲的,當(dāng)讀取參數(shù)的鍵時,就可以得到該參數(shù)的具體值。RSSI部分的可配置參數(shù)有d、A、n等,其中d是手機(jī)端打卡時與OpenWrt認(rèn)證路由器之間的距離閾值,不同公司會對距離d有不同需求,參數(shù)A、n也一樣,與環(huán)境有關(guān),不同的公司環(huán)境不同,需對其進(jìn)行不同配置。將它們放進(jìn)配置文件中,當(dāng)有不同需求時,只需要在配置文件中修改然后初始化系統(tǒng)即可,無需修改源碼。

      3 Android客戶端與OpenWrt認(rèn)證路由器的結(jié)合

      本系統(tǒng)手機(jī)客戶端利用百度API定位員工的上班打卡位置,定位的實(shí)現(xiàn)過程如下:

      ① 確認(rèn)百度定位需要的權(quán)限并在AndroidMainifest.XML文件中設(shè)置:

      ② 設(shè)置百度密匙,代碼如下:

      android:name="com.baidu.lbsapi.API_KEY"

      android:value="@string/baidu_key"

      ③ 設(shè)置定位參數(shù);

      private void initLocation(){

      LocationClientOption option = new LocationClientOption();

      option.setLocationMode(tempMode); //設(shè)置定位模式

      option.setOpenGps(true); //打開GPS

      option.setCoorType(tempcoor); //返回的定位結(jié)果是百度

      //經(jīng)緯度,默認(rèn)值gcj02

      option.setScanSpan(span_time_); //設(shè)置發(fā)起定位請求的間

      //隔時間為5000ms

      option.setIsNeedAddress(is_need_address);

      //獲取反地理編碼

      mLocationClient.setLocOption(option);

      }

      ④ 在員工打卡時獲取員工定位信息,代碼實(shí)現(xiàn)如下:

      protected void getBaiduLocationResult() {

      locationInfo_ = LocationUtil.getLocationInfo(baiDuLocationListener,

      context, lm);//獲取員工位置信息

      if (locationInfo_ != null) {

      longitude_ = locationInfo_.getLongitude();

      latitude_ = locationInfo_.getLatitude();

      tv_addr.setText(addr);

      mBaiduMap = mMapView.getMap();//調(diào)用百度地圖

      mCurrentMarker = BitmapDescriptorFactory

      .fromResource(R.drawable.map_dingwei);

      //將手機(jī)的經(jīng)緯度生成坐標(biāo)

      LatLng cenpt = new LatLng(Double.valueOf(latitude_),

      Double.valueOf(longitude_));

      //構(gòu)造地圖狀態(tài)

      MapStatus mMapStatus = new MapStatus.Builder()

      .target(cenpt).zoom(16).build();

      //構(gòu)造描述地圖變化的對象

      MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory

      .newMapStatus(mMapStatus);

      mBaiduMap.setMapStatus(mMapStatusUpdate);

      //定位員工位置

      }

      圖9展示了本系統(tǒng)設(shè)計的室內(nèi)考勤時Android客戶端與認(rèn)證路由器的交互過程。

      圖9 室內(nèi)考勤Android客戶端與開源路由器交互

      ① Android客戶端與認(rèn)證路由器通過三次握手后建立連接;

      ② Android客戶端將考勤信息包括員工基本信息等按照本系統(tǒng)設(shè)計的自定義協(xié)議進(jìn)行封裝,使其可以通過認(rèn)證路由器的認(rèn)證處理;

      ③ 數(shù)據(jù)封裝完成后傳輸?shù)秸J(rèn)證路由器,認(rèn)證路由器接收到考勤數(shù)據(jù)進(jìn)行認(rèn)證處理,處理過程上文已詳細(xì)說明;

      ④ 認(rèn)證路由器認(rèn)證完成后將數(shù)據(jù)上傳到服務(wù)器端,并得到反饋信息傳給Android客戶端;

      ⑤ Android客戶端得到反饋信息,本次室內(nèi)考勤完成。

      結(jié) 語

      本文基于實(shí)際項(xiàng)目對企業(yè)管理的便捷、真實(shí)和高效的需求,設(shè)計實(shí)現(xiàn)基于OpenWrt開源路由器的企業(yè)考勤管理系統(tǒng)。首先,針對傳統(tǒng)考勤方案中不能兼顧室內(nèi)室外兩種情況的弊端,提出了手機(jī)客戶端和OpenWrt開源路由器(WiFi)相結(jié)合的考勤方案;然后,基于開源嵌入式系統(tǒng)OpenWrt設(shè)計本系統(tǒng)認(rèn)證路由器并實(shí)現(xiàn)了自定義協(xié)議和RSSI閾值比對等認(rèn)證處理模塊,保證了企業(yè)管理系統(tǒng)室內(nèi)考勤信息的真實(shí)性;最后,基于Android設(shè)計開發(fā)了本系統(tǒng)的手機(jī)客戶端,兼顧了企業(yè)管理的高效便捷性?;贠penWrt開源路由器的企業(yè)管理系統(tǒng)基本滿足用戶需求,但是系統(tǒng)有待進(jìn)一步完善:

      ① 增加手機(jī)客戶端人臉識別功能,在手機(jī)客戶端采集人臉信息,提取特征值后上傳到服務(wù)器端識別驗(yàn)證,從而進(jìn)一步保證考勤信息的真實(shí)性;

      猜你喜歡
      考勤開源路由器
      買千兆路由器看接口參數(shù)
      科教新報(2022年24期)2022-07-08 02:54:21
      五毛錢能買多少頭牛
      基于人臉識別技術(shù)的考勤應(yīng)用研究
      電子制作(2019年12期)2019-07-16 08:45:28
      智能人臉識別考勤系統(tǒng)
      電子制作(2019年9期)2019-05-30 09:42:00
      便攜式指紋考勤信息管理系統(tǒng)設(shè)計
      大家說:開源、人工智能及創(chuàng)新
      開源中國開源世界高峰論壇圓桌會議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0
      你所不知道的WIFI路由器使用方法?
      開源計算機(jī)輔助翻譯工具研究
      “最嚴(yán)考勤”難留學(xué)生心
      星座| 原阳县| 那曲县| 广南县| 宣武区| 赣州市| 诸暨市| 定边县| 秀山| 灵山县| 山阳县| 福海县| 绥芬河市| 无棣县| 天门市| 枝江市| 伊川县| 嘉定区| 墨江| 巴彦县| 兴和县| 库车县| 潼关县| 岳池县| 漳州市| 阜新| 剑阁县| 卫辉市| 水城县| 临安市| 博湖县| 友谊县| 台中县| 迁西县| 大埔县| 且末县| 准格尔旗| 比如县| 满洲里市| 定南县| 横山县|