亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        ,

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

        引 言

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

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

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

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

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

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

        圖1為本系統(tǒng)的網(wǎng)絡(luò)拓?fù)鋱D。根據(jù)系統(tǒng)的需求,企業(yè)日常工作分為室內(nèi)和室外兩種工作場(chǎng)景,所以本系統(tǒng)設(shè)計(jì)分為室內(nèi)定點(diǎn)考勤和室外移動(dòng)考勤兩種模式。在室內(nèi)定點(diǎn)考勤時(shí),由于GPS和基站室內(nèi)定位困難,不能滿足公司室內(nèi)定點(diǎn)打卡的需求,本系統(tǒng)設(shè)計(jì)了認(rèn)證路由器。OpenWrt認(rèn)證路由器安裝在辦公室內(nèi),手機(jī)客戶端通過(guò)連接OpenWrt路由器的WiFi信號(hào)實(shí)現(xiàn)信息通信;OpenWrt路由器對(duì)手機(jī)客戶端發(fā)送的考勤信息進(jìn)行解析認(rèn)證,并將認(rèn)證后的考勤信息發(fā)送到服務(wù)器端考勤打卡,以此確定用戶考勤操作在公司規(guī)定范圍內(nèi)實(shí)現(xiàn),保證室內(nèi)考勤的真實(shí)有效性。在室外移動(dòng)考勤模式中,員工使用Android客戶端利用3G/4G和WiFi連接網(wǎng)絡(luò)實(shí)現(xiàn)數(shù)據(jù)通信,通過(guò)GPS和基站來(lái)實(shí)現(xiàn)定位功能,基于百度API顯示員工當(dāng)前位置地址,通過(guò)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è)計(jì)圖如圖2所示,本系統(tǒng)的整體架構(gòu)分為服務(wù)器、OpenWrt認(rèn)證路由器和Android客戶端三部分。認(rèn)證路由器是基于開源嵌入式系統(tǒng)OpenWrt實(shí)現(xiàn)的,經(jīng)過(guò)裁剪使其更適用于本系統(tǒng)所選擇的JS7628嵌入式開發(fā)板。在此基礎(chǔ)上設(shè)計(jì)實(shí)現(xiàn)了自定義協(xié)議和RSSI閾值比對(duì)模塊,實(shí)現(xiàn)與Android客戶端的快速認(rèn)證,并確保室內(nèi)打卡在認(rèn)證路由器規(guī)定距離的范圍內(nèi),以避免非法打卡等現(xiàn)象的發(fā)生,滿足本系統(tǒng)室內(nèi)定點(diǎn)考勤的需求。Android客戶端基于Android平臺(tái)采用C/S模式開發(fā),通過(guò)GPS和基站實(shí)現(xiàn)室外考勤,并將室內(nèi)與室外考勤融合在一起,實(shí)現(xiàn)考勤、請(qǐng)假、內(nèi)部信息等管理功能,滿足系統(tǒng)整體需求。服務(wù)器端實(shí)現(xiàn)數(shù)據(jù)的后臺(tái)操作,包括數(shù)據(jù)的匯總、反饋和保存。

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

        1.2.1 Android手機(jī)客戶端

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

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

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

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

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

        1.2.3 服務(wù)器

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

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

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

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

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

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

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

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

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

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

        圖4為 JS7628開發(fā)板實(shí)物圖。為了滿足本系統(tǒng)的設(shè)計(jì)需求,在設(shè)計(jì)過(guò)程中將開發(fā)板的3個(gè)以太網(wǎng)接口分別設(shè)置成一個(gè)WAN口和兩個(gè)LAN口。WAN口與外網(wǎng)相連并且實(shí)現(xiàn)本系統(tǒng)考勤等數(shù)據(jù)的發(fā)送;兩個(gè)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個(gè)LED指示燈,分別指示系統(tǒng)是否正常運(yùn)行、WiFi是否正常通信以及3個(gè)以太網(wǎng)口是否處于正常工作狀態(tài)。另外,開發(fā)板通過(guò)復(fù)位按鈕來(lái)實(shí)現(xiàn)故障恢復(fù)。

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

        2.2.2 OpenWrt開發(fā)流程

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

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

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

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

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

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

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

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

        2.3.2.1自定義協(xié)議

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

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

        為了方便公司間設(shè)置不同的標(biāo)識(shí)符,設(shè)計(jì)了UNIQUE字段,實(shí)現(xiàn)標(biāo)識(shí)符的唯一性,以示不同企業(yè)間的區(qū)別。數(shù)據(jù)部分的設(shè)計(jì)則和具體的傳輸內(nèi)容有關(guān),包括公司ID、員工ID等信息以及其他考勤信息,對(duì)數(shù)據(jù)進(jìn)行自定義的認(rèn)證處理,以此防止非法打卡等情況出現(xiàn);另外,數(shù)據(jù)部分還設(shè)計(jì)了CRC校驗(yàn)字段,用于差錯(cuò)檢測(cè),加強(qiáng)傳輸過(guò)程中數(shù)據(jù)的糾錯(cuò)檢測(cè),提高數(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ù)處理過(guò)程中的錯(cuò)誤率,本協(xié)議通過(guò)將相同字符SOF轉(zhuǎn)義為連續(xù)的兩個(gè)字符ALT和S1,實(shí)現(xiàn)字符轉(zhuǎn)義。與之對(duì)應(yīng)的是,當(dāng)數(shù)據(jù)接收端接收到連續(xù)的兩個(gè)字符ALT和S1時(shí),將其轉(zhuǎn)回與起始符SOF相同的數(shù)據(jù)字符。同理EOF和ALT。

        2.3.2.2RSSI閾值對(duì)比

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

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

        (1)

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

        10nlgr=10lgPT/PR

        (2)

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

        10lgPR=A-10×nlgr

        (3)

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

        PR(dBm)=A-10×nlgr

        (4)

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

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

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

        圖8 RSSI閾值對(duì)比流程圖

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

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

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

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

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

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

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

        ① 確認(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ā)起定位請(qǐng)求的間

        //隔時(shí)間為5000ms

        option.setIsNeedAddress(is_need_address);

        //獲取反地理編碼

        mLocationClient.setLocOption(option);

        }

        ④ 在員工打卡時(shí)獲取員工定位信息,代碼實(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)造描述地圖變化的對(duì)象

        MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory

        .newMapStatus(mMapStatus);

        mBaiduMap.setMapStatus(mMapStatusUpdate);

        //定位員工位置

        }

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

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

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

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

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

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

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

        結(jié) 語(yǔ)

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

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

        猜你喜歡
        考勤開源路由器
        買千兆路由器看接口參數(shù)
        五毛錢能買多少頭牛
        基于人臉識(shí)別技術(shù)的考勤應(yīng)用研究
        電子制作(2019年12期)2019-07-16 08:45:28
        智能人臉識(shí)別考勤系統(tǒng)
        電子制作(2019年9期)2019-05-30 09:42:00
        便攜式指紋考勤信息管理系統(tǒng)設(shè)計(jì)
        大家說(shuō):開源、人工智能及創(chuàng)新
        開源中國(guó)開源世界高峰論壇圓桌會(huì)議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0
        你所不知道的WIFI路由器使用方法?
        開源計(jì)算機(jī)輔助翻譯工具研究
        “最嚴(yán)考勤”難留學(xué)生心
        成人在线激情网| 羞羞色院99精品全部免| 国产精品内射久久一级二| 免费无码一区二区三区蜜桃| 亚洲AV无码一区二区三区人| 国产女主播强伦视频网站| 91久久国产香蕉熟女线看 | 少妇人妻精品一区二区三区视| 我和隔壁的少妇人妻hd| 四虎国产精品免费久久| a在线免费| 国产精品久久婷婷六月 | 高潮av一区二区三区| 午夜精品久久久久久久| 国产成人精品av| 久久久亚洲精品午夜福利| 侵犯了美丽丰满人妻中文字幕 | 俺去俺来也在线www色官网| 中文字幕人妻中文| 亚洲av高清一区三区三区 | 亚洲成av人片在线观看www| 日韩AV无码免费二三区| 亚洲处破女av一区二区| 蜜桃视频插满18在线观看| a人片在线观看苍苍影院| 久久久久久久尹人综合网亚洲 | 精品人伦一区二区三区蜜桃麻豆| 中文字幕手机在线精品| 胸大美女又黄的网站| 色欲麻豆国产福利精品| 国产日韩亚洲中文字幕| 国产视频一区二区在线免费观看| 黑人巨大精品欧美一区二区| 亚洲色成人网一二三区| 91人妻一区二区三区蜜臀| 97精品国产一区二区三区| 亚洲人成无码网站久久99热国产| 亚洲成av人片在线天堂无| 日韩另类在线| 亚洲国产精品线观看不卡| 久久综合亚洲鲁鲁五月天|