国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python實現(xiàn)輕量級WEB服務器接收HTTP提交的RFID刷卡信息并回應驅(qū)動讀卡器顯示播報語音

這篇具有很好參考價值的文章主要介紹了Python實現(xiàn)輕量級WEB服務器接收HTTP提交的RFID刷卡信息并回應驅(qū)動讀卡器顯示播報語音。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

?本示例使用的設備:RFID網(wǎng)絡WIFI無線TCP/UDP/HTTP可編程二次開發(fā)讀卡器POE供電語音-淘寶網(wǎng) (taobao.com)文章來源地址http://www.zghlxwxcb.cn/news/detail-655036.html

# -*- coding: utf-8 -*-
import time
import datetime
import socket
import threading

#將中文信息轉(zhuǎn)換編碼,顯示文字、TTS語音都需要轉(zhuǎn)換--------------------------------------------------
def GetChineseCode(inputstr):
    sdata = bytes(inputstr, encoding='gbk')  # 將中文信息轉(zhuǎn)為bytes
    hexcode=""
    for num in range(0, len(sdata)):
        if num % 2==0:
            hexcode=hexcode+"\\x"
        hexcode=hexcode+ '%02X' % (sdata[num])
    return hexcode

#獲取電腦系統(tǒng)日期時間---------------------------------------------------------------------------
def get_time():
    st = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
    st=st[2:19]
    return st

# 接收讀卡器發(fā)過來的http請求、解析提交上來的信息、回應并驅(qū)動讀卡器顯示文字播報語音--------------------------
def service_client(new_socket):
    request = new_socket.recv(1024).decode('utf-8')
    request_header_lines = request.splitlines()
    requestlines=len(request_header_lines)

    current_time = datetime.datetime.now()
    current_time_str = current_time.strftime("%Y-%m-%d %H:%M:%S.%f")[:-3]
    print(current_time_str)

    i = 0
    while i < requestlines:     #打印出提交信息
        print(request_header_lines[i])
        i += 1
    print("\n")

    if request[0:3]=="GET":
        CommitParameter=request_header_lines[0][request_header_lines[0].find("?")+1:request_header_lines[0].find("HTTP/1.1")-1]
    elif request[0:4]=="POST":
        CommitParameter = request_header_lines[requestlines-1]
        if request_header_lines[5]=="Content-Type: application/json":
            CommitParameter = CommitParameter.replace("{", "")        #JSON信息可以引用JSON類來解析,此處統(tǒng)一轉(zhuǎn)化成字符串處理
            CommitParameter = CommitParameter.replace("\"", "")
            CommitParameter = CommitParameter.replace(":", "=")
            CommitParameter = CommitParameter.replace(",", "&")
            CommitParameter = CommitParameter.replace("}", "")

    FieldsList = CommitParameter.split('&')
    for num in range(0, len(FieldsList)):
        ParaList=FieldsList[num].split('=')
        if ParaList[0]=="info":
            info=ParaList[1]        #接收到的數(shù)據(jù)包號,需回應該包號
        elif ParaList[0]=="jihao":
            jihao = ParaList[1]     #設備機號(可自編)
        elif ParaList[0]=="cardtype":
            cardtype = ParaList[1]
            typenum=int(cardtype,16) % 16               #typenum=1 ID卡,2 HID卡,3 T5557卡,4 EM4305卡,5 IC卡,6 二代身份證,7 是15693卡,IClass"
            pushortake=int(int(cardtype,16) / 128)      #pushortake=0 表示讀卡,>0表示卡離開感應區(qū)
        elif ParaList[0]=="card":
            card = ParaList[1]      #接收到的原始16進制卡號,可根據(jù)需要自行轉(zhuǎn)換成其他卡號
        elif ParaList[0]=="data":
            data = ParaList[1]      #讀取的卡扇區(qū)內(nèi)容
        elif ParaList[0]=="dn":
            dn = ParaList[1]        #設備硬件序列號,出廠時已固化,全球唯一
        elif ParaList[0]=="status":
            status = ParaList[1]    #讀卡狀態(tài),如密碼認證失敗為12

    if pushortake == 0:
        ChineseVoice = GetChineseCode("讀取卡號[n1]") + card
    else:
        ChineseVoice = GetChineseCode("卡號[n1]") + card + GetChineseCode("離開感應區(qū)")

    # Response=1,是固定的回應頭信息+接收到的包序號+顯示文字 中文要轉(zhuǎn)換編碼 {}中的文字可以高亮顯示+顯示延時秒+蜂鳴器響聲代碼+[v8]表示本次語音大小 取值 v1 到 v16 TTS中文語音編碼
    ResponseStr="Response=1,"+info+",{"+GetChineseCode("卡號")+":}"+(card+"        ")[0:12]+get_time()+",20,1,[v8]"+ChineseVoice
    new_socket.send(ResponseStr.encode("gbk"))
    new_socket.close()
    print(ResponseStr+"\r\n")

def main():
    # 用來完成整體的控制
    tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)       # 1.創(chuàng)建套接字
    tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)     # 設置當服務器先close 即服務器端4次揮手之后資源能夠立即釋放,這樣就保證了,下次運行程序時 可以立即綁定設定的端口
    tcp_server_socket.bind(("", 88))                                            # 2.綁定監(jiān)聽端口
    tcp_server_socket.listen(128)                                               # 3.變?yōu)楸O(jiān)聽套接字

    while True:
        new_socket, client_addr = tcp_server_socket.accept()                    # 4.等待新客戶端的鏈接
        t = threading.Thread(target=service_client, args=(new_socket,))         # 5.為這個客戶端服務
        t.start()

    tcp_server_socket.close()       # 關閉監(jiān)聽套接字

if __name__ == '__main__':
    main()

到了這里,關于Python實現(xiàn)輕量級WEB服務器接收HTTP提交的RFID刷卡信息并回應驅(qū)動讀卡器顯示播報語音的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 輕量級服務器nginix:如何實現(xiàn)Spring項目的負載均衡

    輕量級服務器nginix:如何實現(xiàn)Spring項目的負載均衡

    點兩下這個package,就會在target目錄下生成一個war包 把這個warb包拿出來,放在桌面上備用 數(shù)據(jù)多的話,選擇sql文件,直接運行 數(shù)據(jù)導入成功了 8080和8081都可以 虛擬機的位置: nginx的位置 /usr/local/nginx/conf 兩臺虛擬機所在的位置: tomcat Tomcat2 運行狀態(tài)良好 首先在 修改nginx里的

    2024年02月01日
    瀏覽(23)
  • 開源輕量級分布式文件系統(tǒng)FastDFS本地部署并實現(xiàn)遠程訪問服務器

    開源輕量級分布式文件系統(tǒng)FastDFS本地部署并實現(xiàn)遠程訪問服務器

    FastDFS是一個開源的輕量級分布式文件系統(tǒng),它對文件進行管理,功能包括:文件存儲、文件同步、文件訪問(文件上傳、文件下載)等,解決了大容量存儲和負載均衡的問題。特別適合以文件為載體的在線服務,如相冊網(wǎng)站、視頻網(wǎng)站等等。 FastDFS為互聯(lián)網(wǎng)量身定制,充分考

    2024年02月04日
    瀏覽(116)
  • 基于lighthouse+長安鏈的輕量級云服務器產(chǎn)品,實現(xiàn)部署合約、區(qū)塊鏈服務一系列操作文檔

    基于lighthouse+長安鏈的輕量級云服務器產(chǎn)品,實現(xiàn)部署合約、區(qū)塊鏈服務一系列操作文檔

    長安鏈已上架一款lighthouse+長安鏈的輕量級云服務器產(chǎn)品 體驗入口:輕量應用服務器Lighthouse_香港輕量服務器_海外輕量服務器-騰訊云 區(qū)塊鏈概覽 獲取區(qū)塊鏈ID(DApp需要配置) 合約管理 智能合約git地址:https://git.chainmaker.org.cn/fish/fish1208-chainmaker-lighthouse/-/tree/master/contract EV

    2023年04月08日
    瀏覽(26)
  • git輕量級服務器gogs、gitea,非輕量級gitbucket

    git輕量級服務器gogs、gitea,非輕量級gitbucket

    本文來源:git輕量級服務器gogs、gitea,非輕量級gitbucket, 或 gitcode/gogs,gitea.md 結(jié)論: gogs、gitea很相似 確實輕, gitbucket基于java 不輕, 這三者都不支持組織樹(嵌套組織 nested group) 只能一層組織。 個人用,基于gogs、gitea,兩層結(jié)構樹 簡易辦法: 把用戶當成第一層節(jié)點、該用戶的

    2024年02月07日
    瀏覽(140)
  • Tomcat輕量級服務器

    Tomcat輕量級服務器

    目錄 1.常見系統(tǒng)架構? C-S架構 B-S架構 2.B-S架構系統(tǒng)的通信步驟 3.常見WEB服服務器軟件 4.Tomcat服務器的配置 下載安裝 環(huán)境變量配置 測試環(huán)境變量是否配置成功 測試Tomcat服務器是否配置成功? Tomcat窗口一閃而過的解決步驟 Tomcat解決亂碼 介紹: C-S架構即Client/Server(客戶端/服務

    2023年04月14日
    瀏覽(102)
  • 輕量級音樂服務器LMS

    輕量級音樂服務器LMS

    本文軟件是網(wǎng)友 tommyvinny 推薦的,他在 UNRAID 上安裝遇到了權限問題,存在無法建立目錄的情況,但似乎在群暉上沒遇到。如果你也遇到相似的問題,可以試試命令行模式。 官方體驗站點:https://lms-demo.poupon.dev/ 什么是 LMS ? LMS ( Lightweight Music Server )是一款自托管的輕量級

    2024年02月08日
    瀏覽(26)
  • 阿里云輕量級服務器安裝docker

    阿里云輕量級服務器安裝docker

    前置知識:需要有一臺阿里云服務器(或者自己電腦裝虛擬機使用centos) docker理念:\\\"一次封裝,到處運行\(zhòng)\\",只需要一次配置好環(huán)境,換到別的機子上就可以一鍵部署好,大大簡化了操作。 docker:解決了運行環(huán)境和配置問題的軟件容器。方便做持續(xù)集成并有助于整體發(fā)布的容器

    2023年04月22日
    瀏覽(94)
  • 三步配置輕量級服務器nginx

    三步配置輕量級服務器nginx

    一款輕量級的 Web服務器,反向代理服務器,以及電子郵件代理服務器 主要有三個優(yōu)點: 占用內(nèi)存少,并發(fā)能力強 Nginx為性能優(yōu)化開發(fā),能支持五千個左右的并發(fā)響應 (Tomcat只有三百到五百) Nginx支持熱部署,可以在不間斷服務情況下對軟件進行升級(不要用關閉服務器)

    2023年04月24日
    瀏覽(25)
  • 騰訊云輕量級服務器哪個鏡像比較好?

    騰訊云輕量級服務器哪個鏡像比較好?

    騰訊云輕量應用服務器鏡像是什么?鏡像就是操作系統(tǒng),輕量服務器鏡像系統(tǒng)怎么選擇?如果是用來搭建網(wǎng)站騰訊云百科txybk.com建議選擇選擇寶塔Linux面板騰訊云專享版,鏡像系統(tǒng)根據(jù)實際使用來選擇,騰訊云百科來詳細說下騰訊云輕量應用服務器鏡像的選擇方法: 輕量應用

    2024年02月06日
    瀏覽(25)
  • 騰訊云輕量級服務器部署(新手圖文教程)

    騰訊云輕量級服務器部署(新手圖文教程)

    相信不少同學都想將自己的項目部署到云服務器,讓別人通過自己的域名就可以訪問到自己的項目,而騰訊云輕量級服務器作為一個小型的應用,支持域名解析和可視化運維等。比較適合新手入門,本文服務器操作系統(tǒng)為Centos7。 1.購買方式 本文主要面向新手,畢竟一般只有

    2024年02月10日
    瀏覽(33)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包