泡泡 4 роки тому
батько
коміт
c2ed817ab1
8 змінених файлів з 91 додано та 503 видалено
  1. 0 0
      HealthUtil.py
  2. 0 62
      PN532data.py
  3. 0 8
      app.py
  4. 0 40
      app.spec
  5. 0 225
      decodeChipData.py
  6. 0 32
      myweb.py
  7. 0 136
      serialutil.py
  8. 91 0
      trainControl.py

+ 0 - 0
HealthUtil.py


+ 0 - 62
PN532data.py

@@ -1,62 +0,0 @@
-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():
-    # port_list = list(serial.tools.list_ports.comports())
-    # if len(port_list) == 0:
-    #     print('无可用串口')
-    #     raise RuntimeError('无可用串口')
-    # else:
-    #     for i in range(0, len(port_list)):
-    #         print(port_list[i])
-    # for port in port_list:
-    #     print(port[0])
-    #     name = port[0]
-
-    ser = serial.Serial("COM3", 9600, timeout=0.5)
-    # 字节大小
-    ser.bytesize = 8
-    # 无校验
-    ser.parity = serial.PARITY_NONE
-    # 停止位
-    ser.stopbits = 1
-    print("已连接端口:" + str(ser.name) + "\n")
-    return ser
-
-
-def reader():
-
-    ser = openSer()
-    print(ser.port)
-    while 1 > 0:
-       time.sleep(2)
-       hz=ser.read(150)
-
-       strUser = hz.decode('GB2312')
-       print("等待上传中"+time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
-       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)
-
-
-
-
-def readChip():
-    reader()
-

+ 0 - 8
app.py

@@ -1,8 +0,0 @@
-
-from PN532data import readChip
-
-if __name__ == '__main__':
-    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",""))

+ 0 - 40
app.spec

@@ -1,40 +0,0 @@
-# -*- mode: python ; coding: utf-8 -*-
-
-
-block_cipher = None
-
-
-a = Analysis(['app.py'],
-             pathex=['D:\\project\\zy\\pn532'],
-             binaries=[],
-             datas=[],
-             hiddenimports=[],
-             hookspath=[],
-             hooksconfig={},
-             runtime_hooks=[],
-             excludes=[],
-             win_no_prefer_redirects=False,
-             win_private_assemblies=False,
-             cipher=block_cipher,
-             noarchive=False)
-pyz = PYZ(a.pure, a.zipped_data,
-             cipher=block_cipher)
-
-exe = EXE(pyz,
-          a.scripts,
-          a.binaries,
-          a.zipfiles,
-          a.datas,  
-          [],
-          name='app',
-          debug=False,
-          bootloader_ignore_signals=False,
-          strip=False,
-          upx=True,
-          upx_exclude=[],
-          runtime_tmpdir=None,
-          console=True,
-          disable_windowed_traceback=False,
-          target_arch=None,
-          codesign_identity=None,
-          entitlements_file=None )

Різницю між файлами не показано, бо вона завелика
+ 0 - 225
decodeChipData.py


+ 0 - 32
myweb.py

@@ -1,32 +0,0 @@
-from cefpython3 import cefpython as cef
-
-from tkinter import *
-import threading
-import sys
-
-
-# cefpython3 目前只支持python3.7,高版本Python不兼容
-def embed_browser_thread(frame, _rect):
-    sys.excepthook = cef.ExceptHook
-    window_info = cef.WindowInfo(frame.winfo_id())
-    window_info.SetAsChild(frame.winfo_id(), _rect)
-    cef.Initialize()
-    cef.CreateBrowserSync(window_info, url='http://www.baidu.com')
-    cef.MessageLoop()
-
-
-if __name__ == '__main__':
-    root = Tk()
-    root.geometry("800x600")
-
-    frame1 = Frame(root, bg='blue')
-    frame1.pack(side=TOP, fill=X)
-
-    frame2 = Frame(root, bg='white')
-    frame2.pack(side=TOP, fill=X)
-
-    rect = [200, 200, 800, 200]
-    thread = threading.Thread(target=embed_browser_thread, args=(frame1, rect))
-    thread.start()
-
-    root.mainloop()

+ 0 - 136
serialutil.py

@@ -1,136 +0,0 @@
-#coding=gb18030
-
-import threading
-import time
-import serial
-
-class ComThread:
-    def __init__(self, Port='COM4'):
-        self.l_serial = None
-        self.alive = False
-        self.waitEnd = None
-        self.port = Port
-        self.ID = None
-        self.data = None
-
-    def waiting(self):
-        if not self.waitEnd is None:
-            self.waitEnd.wait()
-
-    def SetStopEvent(self):
-        if not self.waitEnd is None:
-            self.waitEnd.set()
-        self.alive = False
-        self.stop()
-
-    def start(self):
-        self.l_serial = serial.Serial()
-        self.l_serial.port = self.port
-        self.l_serial.baudrate = 115200
-        self.l_serial.timeout = 2
-        self.l_serial.open()
-        if self.l_serial.isOpen():
-            self.waitEnd = threading.Event()
-            self.alive = True
-            self.thread_read = None
-            self.thread_read = threading.Thread(target=self.FirstReader)
-            self.thread_read.setDaemon(1)
-            self.thread_read.start()
-            return True
-        else:
-            return False
-
-    def SendDate(self,i_msg,send):
-        lmsg = ''
-        isOK = False
-        if isinstance(i_msg):
-            lmsg = i_msg.encode('gb18030')
-        else:
-            lmsg = i_msg
-        try:
-            # 发送数据到相应的处理组件
-            self.l_serial.write(send)
-        except Exception as ex:
-            pass;
-        return isOK
-
-    def FirstReader(self):
-        while self.alive:
-            time.sleep(0.1)
-
-            data = ''
-            data = data.encode('utf-8')
-
-            n = self.l_serial.inWaiting()
-            if n:
-                 data = data + self.l_serial.read(n)
-                 print('get data from serial port:', data)
-                 print(type(data))
-
-            n = self.l_serial.inWaiting()
-            if len(data)>0 and n==0:
-                try:
-                    temp = data.decode('gb18030')
-                    print(type(temp))
-                    print(temp)
-                    car,temp = str(temp).split("\n",1)
-                    print(car,temp)
-
-                    string = str(temp).strip().split(":")[1]
-                    str_ID,str_data = str(string).split("*",1)
-
-                    print(str_ID)
-                    print(str_data)
-                    print(type(str_ID),type(str_data))
-
-                    if str_data[-1]== '*':
-                        break
-                    else:
-                        print(str_data[-1])
-                        print('str_data[-1]!=*')
-                except:
-                    print("读卡错误,请重试!\n")
-
-        self.ID = str_ID
-        self.data = str_data[0:-1]
-        self.waitEnd.set()
-        self.alive = False
-
-    def stop(self):
-        self.alive = False
-        self.thread_read.join()
-        if self.l_serial.isOpen():
-            self.l_serial.close()
-#调用串口,测试串口
-def main():
-    rt = ComThread()
-    rt.sendport = '**1*80*'
-    try:
-        if  rt.start():
-            print(rt.l_serial.name)
-            rt.waiting()
-            print("The data is:%s,The Id is:%s"%(rt.data,rt.ID))
-            rt.stop()
-        else:
-            pass
-    except Exception as se:
-        print(str(se))
-
-    if rt.alive:
-        rt.stop()
-
-    print('')
-    print ('End OK .')
-    temp_ID=rt.ID
-    temp_data=rt.data
-    del rt
-    return temp_ID,temp_data
-
-
-if __name__ == '__main__':
-
-    #设置一个主函数,用来运行窗口,便于若其他地方下需要调用串口是可以直接调用main函数
-    ID,data = main()
-
-    print("******")
-    print(ID,data)

+ 91 - 0
trainControl.py

@@ -0,0 +1,91 @@
+import time
+import serial
+import serial.tools.list_ports
+from flask import Flask, request
+import requests
+from threading import Thread
+app = Flask(__name__)
+
+
+
+# 火车控制变量
+ser = None
+
+#串口打开
+def openSer():
+
+    ser = serial.Serial("COM8", 9600, timeout=0.5)
+    # 字节大小
+    ser.bytesize = 8
+    # 无校验
+    ser.parity = serial.PARITY_NONE
+    # 停止位
+    ser.stopbits = 1
+    print("已连接端口:" + str(ser.name) + "\n")
+
+    return ser
+
+
+# 读取串口消息
+def recv(serial):
+    while True:
+        data = serial.read_all()
+        if data == '':
+            continue
+        else:
+            break
+        sleep(0.02)
+    return data
+
+
+step = 0
+# 左右转向的指令
+TO_L = b'\xc0\xc1\xed\xa5'
+TO_R = b'\xc0\xc2\xed\xa5'
+
+
+def start(ser):
+    print("火车上报监听开启")
+    while True:
+        data = recv(ser)
+        print("火车上报位置信息为 : ", data)
+        if data == b'\xc0\x1c\xed\xc0\xb1\xed' or data == b'\xc0\xb1\xed':
+            print("火车在左上报")
+            res = requests.get("http://127.0.0.1:8080/api/train/updateTrainLocal?local=l")
+            print(res.text)
+        if data == b'\xc0,\xed\xc0\xb2\xed' or data == b'\xc0\xb2\xed':
+            print("火车在右上报")
+            res = requests.get("http://127.0.0.1:8080/api/train/updateTrainLocal?local=r")
+            print(res.text)
+        if data == b'\xc0\xb1\xedZ\xa5':
+            res = requests.get("http://127.0.0.1:8080/api/train/updateTrainLocal?local=l")
+            print(res.text)
+            print("火车复位上报")
+        time.sleep(0.1)
+
+
+#执行运动
+@app.route('/train/<action>')
+def moving(action):
+    print(action)
+    global ser
+    if action == "2l":
+        # ser = openSer()
+        ser.write(TO_L)
+    if action == "2r":
+        # ser = openSer()
+        ser.write(TO_R)
+    return "success"
+
+
+@app.route('/start')
+def startListing():
+    global ser
+    ser = openSer()
+    t = Thread(target=start, args=(ser,))
+    t.start()
+    return "success"
+
+if __name__ == '__main__':
+    app.run(host='0.0.0.0', port=9000, debug=True)
+

Деякі файли не було показано, через те що забагато файлів було змінено