|
|
@@ -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
|