泡泡 vor 4 Jahren
Ursprung
Commit
0678dd690a
2 geänderte Dateien mit 23 neuen und 209 gelöschten Zeilen
  1. 18 171
      PN532data.py
  2. 5 38
      app.py

+ 18 - 171
PN532data.py

@@ -1,11 +1,13 @@
 import time
 
+import requests
 import serial
 import binascii
 import re
 from decodeChipData import decodeData
 import serial.tools.list_ports
-
+from urllib import request
+import chardet
 
 #串口打开
 def openSer():
@@ -31,185 +33,30 @@ def openSer():
     return ser
 
 
-def huan(ser):
-    print("你是干什么的!!!!!!!!!!!!!")
-    da1 = bytes.fromhex("55 55 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 03 fd d4 14 01 17 00")
-    ser.write(da1)
-    ss = str(binascii.b2a_hex(ser.read(25)))[2:-1]
-    return ser
-
-
-# 获取卡号
-def getid(ser):
-    data = bytes.fromhex("00 00 FF 04 FC D4 4A 02 00 E0 00")
-    ser.write(data)
-    redata_yid = str(binascii.b2a_hex(ser.read(25)))[2:-1]
-    if len(redata_yid) == 50:
-        id = redata_yid[-12:-4]
-        print("卡号:" + id)
-        return id, ser
-    else:
-        print("数据返回出错:" + redata_yid)
-        return "0", "0"
-
-
-# 验证扇区密码
-def yanz(ser, id, k, list):
-    password = "FF FF FF FF FF FF"
-    password = password.replace(" ", "")
-    yss = "00 00 FF 0F F1 D4 40 01 61" + k + password + id;
-    yss = yss.replace(" ", "")
-    dcs = "00 00 FF 0F F1 D4 40 01 61" + k + ' ' + password + ' ' + id + ' ' + sst(yss[10:]) + " 00"
-    print('验证秘钥: ' + dcs)
-    dcs = dcs.replace(" ", "")
-    yanze = bytes.fromhex(dcs)
-    ser.write(yanze)
-    erok = str(binascii.b2a_hex(ser.read(32)))[2:-1]
-    ma = erok[-8:-4]
-    # ma = '4100'
-    if ma == "4100":
-        print("密码正确")
-        readdata(ser, k, list)
-        return ser
-    else:
-        print("密码错误\n")
-        print(dcs)
-
-
-# 计算16进制字符串和的后两位补码
-def sst(data):
-    sumHex = hex(sum([int(i, 16) for i in re.findall(r'.{2}', data) if i != '']))
-    sumHexStr = (sumHex + "").replace("0x", "")[1:]
-    if (sumHexStr == '00'):
-        return '00'
-    sumBin = bin(int(sumHexStr, 16))[2:]
-    temp = ''
-    for index in range(8 - len(sumBin)):
-        temp = temp + '0'
-    sumBin = temp + sumBin + ''
-    temp = ''
-    for index in range(len(sumBin)):
-        if (sumBin[index] == '0'):
-            temp = temp + '1'
-        else:
-            temp = temp + '0'
-    dcs = hex(int(temp, 2) + 1)[2:]
-    if (len(dcs) == 1):
-        dcs = '0' + dcs
-    return dcs
-
-
-# 读出块数据
-def readdata(ser, k, list):
-    reco = "00 00 ff 05 fb D4 40 01 30 " + k
-    reco = reco.replace(" ", "")
-    command = "00 00 ff 05 fb D4 40 01 30 " + k + ' ' + sst(reco[10:]) + " 00"
-    print("读取指令:" + command)
-    recode = bytes.fromhex(command)
-    ser.write(recode)
-    ss = str(binascii.b2a_hex(ser.read(64)))[2:-1]
-    if ss[-9:-4] != "54113":
-        block_d = ss[-36:-4]
-        list.append(block_d)
-        print("读出数据:" + block_d + "\n")
-    else:
-        print("读取失败\n")
-        input("回车继续")
-
-
 def reader():
 
     ser = openSer()
     print(ser.port)
     while 1 > 0:
-       print("读取10个字节")
-       print(ser.read(100))
-       time.sleep(1)
 
+       hz=ser.read(150)
+
+       strUser = hz.decode('GB2312')
+       print("等待上传中")
+       if(strUser != ''):
+          strReq = str(strUser.replace("\r\n", ""))
+          strReq=strReq.replace(" ","")
+          print("解析完成:"+strReq)
+          print("上传数据中......." )
+          url = "http://192.168.1.88:8082/win/healthy/uploadHealthData"
+          data = {"userText": strReq}
+          res = requests.post(url=url, data=data)
+          print(res.text)
+          time.sleep(10)
 
 
-list2 = ['03ff0cfcc10100000cf55402656e7218', 'ee5b49cbcd0e2a707a20c0756263c38f', '99b4df9af78e61cea1a2a3a4a5a6a7a8',
-         '3caf84f96583155b846233f6175bf5b1', '410000093a000000ffffffffffffffff', '13016bc0832ba0141da4619da418cc1e',
-         '3f70a4949c1f14eafee5f60f62e0fc76', '2f9ecd68477811fa6e25e339b068a9b0', '30c1b7260c227c80473a0af9a5e0e83d',
-         'c07e2e1ec9283c49a903304f9edf91dd', '3c656cdee55cf643326933cc21651d6e', '649109fb80c497d0fa88cc143bd98fb8',
-         '7958184a17413111041178a3cd4d6d8c', '6ef25867355f5533be758a4dc4b380bb', 'df4ed477e4dcfd356abf00cf6cbba0c3',
-         'fa6202383c039df9e0afb9e75e244c40', '56d321f7393a97fa6a760f2905e1884f', '6e78cdd146918450bbe3f5f8a9387ed3',
-         '1b3a79bb4643b07e2f7358c6e48eee2c', 'd75486fa19b02a1af6c98dff274b543d', 'cd53242f44d617abd2399b546069f4c5',
-         '9c8262a7333cda68ee9d5706f0bd6a23', '21d411e55b2eb5e669b2bf9f3cc3a99a', 'e9b04b0f51442f346202197be956272b',
-         '3b81e26bca0351ced79bd5aedefd8908', 'e9c8b51598d48742d1126c1d2eaa117d', '548a56a032edc4854988e7be74d8626f',
-         '520bd9ea95225c58f4cc8bbe2fa74938', '5a1f47085c70577e80dac608adb54000', '80ae246682ae4cc0dd27e7b7a1caee35',
-         '04e365cbd9cb3b1060dc6ca6585d5460', 'fcb98844aeda307a0a598b6f7d612dcc', '888968ed073aa8b1830cd88ff3a3c67b',
-         '18f0022fc0e82d9da3f45c8625dbf6de', '961ca6720be2b6b2acd076d4c7fddcd4', '75fb065ddbb0188a567dcc44c85222e7',
-         '4dff6b70d9921d7a5dc4eaca42b9a368', 'f390a7652148383329337156c0b89d74', 'f2ce67947a89502af5fe09c70f622190',
-         '90c563ace10ceaafd0c79acf56e5ff77', 'f51e8fd596428db67e6dbdb416031d83', '16ec2d867692f1857771a6c75bd6a182',
-         'f977d4ccf3cb02a4ac066e75f284911c', '1c46b925e5679093959e505d64e97e57', 'bdb469bc10b6942f6d67664352ae0cdb',
-         'e80103e103e103e103e103e103e103e1', '03e103e103e103e103e103e103e103e1', '03e103e103e103e103e103e103e103e1',
-         'a269ecab63fb0ddec0653db2c656e145', 'c30e6274f23f22c5a93ff0a2c78303ea', 'cb610f1ba125dda0f9072b02ae15fb2b',
-         '722fb62a7a50c8a607dd3447a84ea15d', 'a1b9503a46ae7584541a499ecf413918', 'b8dbc9383e653ffd15e2c2f4587b41d1',
-         '86ea796794041aa93855f00346fb84e2', 'bd80d36cd2616e6b736cb1e58a13fc70', 'c120cf34c3b2e298041474aff966e64d',
-         '1443f901e816f7c991f8f0057a1daeaf', '052e60f6ec19a7ca81d4b3bfc9703349', '5d47d338eb3fc65bcf76f9c8c0142b0d',
-         'a3ff4fd472a23fa60082f53f23ef5d29', '1f4e22b4bdaaef9e3dec64c8c1ca5606', 'dea0928586e4f655a3c0916881871e9f',
-         '97eaf18216d5b7be28e72bd61adc73ee', '094a4678e4f94e7d6433418089a2fa02', 'e5f939b5eba90a026a8a0b10538185c2',
-         'c520b315225c50a5d0e55a4fccf8140a', 'b336b17ac5a7ceb78f378d84adaaf4d6', 'ada7b701a0fb2df50adf3b24fbc6bc79',
-         '6eb462abf613fe719354f1e8f3a5dc53', '3609cada3a1dc379ff9e9fd36829b22c', '5440d5c7bf3cca28123a6afa435a8fcd',
-         'b0d3f1fc46f185f1aee1f7b732067ef4', 'd49c1706733c5a070a969047293f996b', '489a4cfd749e07a4784523677c72b026',
-         'f3011c8cf6dc3bd5fbe242bbfe44a035', '446ce83a84e2f77c2140e0ff74adf690', '90f9d916e34b9526f1a5ba40a008b793',
-         'eb3979d996143a2f2b3e8f5f8b3974fd', '6f434424a53b52b298fdb633e0449d4f', '00a8a6f2beea3599069c08e1002af843',
-         'e4ceaf9606c97753f59d4946f50f3dec', 'e2b89bcfbd24042ddea95c6ecaf3dbeb', '47388c8431b9fc15e7d30d0841973b0c',
-         'da492546c8a05a6607e0441f64c7bd14', 'f8cdf747e678f2992cd59f13f6f8f517', '9814f2180d0339d107bf95ac6eeaa9d5',
-         'd97617093b76ce0d8def080bed1b5c50', 'ce264e85cede39ba880ccfb2431144fb', '2c1570c64fe8faf96325da723018b1d6',
-         'fc9d40fbd9b605cbbdec5a3e6cb5e6a4', 'd93040615f2accf6620c1444d9be7617', 'd8c379dfcaa931b95a11be0a0d2617f5',
-         'b4f13e8b336d30633c24accb47d6037c', '7e6a7414dbda22466de1e41c07ab20ab', 'd7af5ea3e3e2ec50cc7b79cf0a0363bd',
-         'c2d0ae9f8631b01e287beade54c32331', '71fd599304b2f5a8e0651c0daeaeeddb', 'dd6d481c783cab43969eabfc232f691d',
-         '6fec28722f5fa3b78056c8feb93e6050', '7d1cd557f4bade23d42787a5870ea314', 'ff7b7534e538927e4473be70fa6f19bc',
-         'b5506bc66ac0081a0cd438e602ff59f1', '95dd9676049f8c75700eba423ff33754', '9237a4e0ed63554b959a7cb108b1e9d4',
-         'd3e42cf4cb7b50985cc5bcea5d107292', '9283a2cdce2ed69bd71b1b5ef8b63e39', '4bbf7fcb0514578186bf9ab1b7efb07d',
-         'ff53a9a12a0b5bff869a960d02bef6a3', '3f62ab66451bea4f57642d073d0bc6a9', '1c592272902ba73a67ee48b489e2ffc4',
-         'fa8df9c9710e05c069c61e154c2c955f', '29384294c55700a6da2d808dc1e921bd', '95e4fca9e5516c557f5ccd5ae403cc50',
-         'e7a1428cea5a787c25f1cb4e2de44526', '453aab8b4e7295de7270934b648d1a65', '34ca921dca35deb1a634e22e54c20638',
-         'bc7015e533848cfc90a7726e7acdcaf0', 'bcb7c5ff531e31757c5496f6f31f16e6', 'a09447021ed053192b8010eb6f81683a',
-         'fad00046813586988cab9004cffc6f19', '477a45207118b14e5f674a797b89cb5c', '2ab1f2b1c91915ecf01607f90a279560',
-         '49f302af4d21a4d3bc08f7fe30b257da', 'fecc88f8d956cd3f91b3354b13c0842c', '4ebec942a6eeedd140c189a14b95eaa0',
-         '38490a8da6d790eb2bae13e55a1e8b71', '2bcd23bc76b2222a31f19a69ae1ec297', '07f28a122b17e4276281db4d02633079',
-         'a2bb0b89da6a637ec9f280b599004b48', '783a656341a60bfa5cbd1916569ec717', 'fed298915b06f08cbed44e97e328e7bc',
-         '0148255f13959aa989dcd64521b92b6f', '88638aa1a5e13ad5bc2ca17a4f0e8bcb', 'f9d87fbb46f584c46b01060189f47b45',
-         'd52f5cac52cb4a45b4e270d969d3b5c8', '231c0b760a93de341af2d7501a08e9f8', '2ad6d6982e8b0aaa6c5f01ff3e4bad06',
-         '3329003589c5c8a48b1ca488361743ad', '80df97340671206464c8335f3a07f573', 'bcf32ba460bcee64209aa19eb951e652',
-         'd90238da63f30de96442de9993afadab', '5be948b143f98e5cabb330a587100232', 'd6c8f7e4a491e452d8ef9415e7ca8d5e',
-         '21e2df587430bbc8a97be8917364220a', '2f851c453738894f190e4d0eded0965a', 'eb80864bb4a7b005cfbf557a15271445',
-         'c54195a008639f79ea6e826611122884', '15f36645ee70e8961765d5fc2cead310', 'b59ea9973b9ee1c9a8cfda110ec51487',
-         'a9b3d1b047e2fd2d98b871e970aff563', 'ed86c24c756628147544ba382a32a401', '82fa2de96e800e52dccf68f6d80bd867',
-         '3c2338b9201934d1761c6deb2005257c', 'a105d6add8d3b166c61015f43afa6047', '6814fad0facc0b35eb773aa794b17075',
-         'de57c68607f885af82af51f3687fc109', '9cedc9641bb18c515d8d8a4ce521b195', 'c8589d5a16e0fb13503fbf4d9f7d763b',
-         'd2dd70e00318896b81ca7db8de200073', '1b0ff783e01cf19fba4316b61cae52a8', '3ecf7245a7e75007bb202d28ffd8c5e3',
-         '442ac7989338b28106253cae64868409', 'a0b367bf15521ca96f5ed3f356234c5a', 'd37624de127f2d747b01662809b23c9e',
-         '3bfcbd277c8b518bb2307b68eb5734e5', 'bcb1e75374abe55fefeee091fc9bee6c', 'a7c9379192ddb97c9a33c3e6860db9a9',
-         '0eba5916f6080a22b9ac3619337ac91e', '70c355b44baf0a7e2a5b3fb9199fdbc9', '9610d2d9d1931c1ed124968489e0873f',
-         '758cf337fe1f140cca3e0a010b1747b9', '44a7f668a16059fa3d7f4d37d4bcee82', 'c6c7767bdba52ef88f78f3bb9ae55e41',
-         '7b67dd458fb9f5c83a6c0ea362b35d73', 'b474d82f7e7fd20dfd849e5ed9fb0154', '6bb52ca81bb0017f94a8e96c04c0e0c6',
-         '0163a76f34204b054883556b3528b075', '8ca31cc4c0cdc050716e16931e16cd71', 'c66cb94e4abd39288fe422729abbc221',
-         'a07fbad8be92c6bffa73b66d495e6653', 'e11946865620514c1a38bbcd59800d74', 'c73d52ceb72161a3a7788d4445f8a091',
-         '81d23d7feb882080df20fea6e618e1f5', '471f095f026abf64908fce1ca7655480', '1da75c3c3979361206a853c7fabb8db2',
-         '3cec4f76af7f9eda6fbc1e3e9d8d13f3']
 
 
 def readChip():
-    readerData = reader()
-    list = readerData[0]
-    uid = readerData[1]
-    list = list2
-    temperature_data = ''
-    chipNumber = ''
-    chipData = ''
-    if (list != '0'):
-        chipData = ''.join(list)
-        chipData = chipData[22:]
-        chipNumber = chipData[6:100]
-        data = re.findall(r'.{2}', chipData)
-        jdata = ' 0x'.join(data)
-        jdata = '0x' + jdata + ' \\n'
-        temperature_data = decodeData(jdata)
-        temperature_data = ','.join('%s' % id for id in temperature_data)
-        print(temperature_data)
+    reader()
 
-    return temperature_data, chipNumber, chipData, uid

+ 5 - 38
app.py

@@ -1,41 +1,8 @@
-from flask import Flask, jsonify
-from PN532data import readChip
-import webbrowser
-from threading import Timer
-from flask import render_template
-from flask_cors import CORS
-import string
-app = Flask(__name__)
-
-CORS(app, resources=r'/*')
-
-
-@app.route('/readChip')
-def read_chip():
-    try:
-        result = readChip()
-        print(result)
-        return jsonify({'code': 200, 'msg': '读取成功',
-                        'data': {'list': result[0], 'chipNumber': result[1], 'vaccinationCipher': result[2],
-                                 'id': result[3]}})
-    except Exception as e:
-        print(e)
-        return jsonify({'code': 500, 'msg': '请见检查芯片是否放好或读卡器连接是否正常'})
-
-
-@app.route('/')
-def index():
-    return render_template('index.html')
-
-
-def open_browser():
-    webbrowser.open_new('http://127.0.0.1:9000')
 
+from PN532data import readChip
 
 if __name__ == '__main__':
-    Timer(1, open_browser).start()
-    app.run(port=9000, debug=True, host='0.0.0.0')
-    # str ="\xc1\xf5\xbf\xad\xcf\xc8\xc9\xfa\r\n\xc9\xed\xb8\xdf\xa3\xba"
-    # str = "this is string example....wow!!!";
-    #
-    # print(str.decode('utf-8'))
+    readChip()
+    # str="\r\n\xc9\xed  \xb8\xdf\xa3\xba000.0cm \xcc\xe5  \xd6\xd8\xa3\xba76.1kg  \r\n\xcc\xe5  \xce\xc2\xa3\xba36.3\xa1\xe6  \xd0\xc4  \xc2\xca\xa3\xba 75\xb4\xce/\xb7\xd6\r\n\xd1\xaa  \xd1\xf5\xa3\xba98%       BMI \xa3\xba00.0    \r\n\xd6\xac\xb7\xbe\xc1\xbf\xa3\xba *..kg  \xcc\xe5\xd6\xac\xc2\xca\xa3\xba (./%   \r\n\r\n\r\n\r\n"
+    # print(str)
+    # print(str.replace("\r\n",""))