| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- from utils.tcp_data import *
- from models.data_sender import Sender
- import time, threading
- class car_plate:
- def __init__(self, sender: Sender):
- self.sender = sender
- self.server_car = Tcp_server('192.168.12.211', 5200, encoding='gbk')
- self.server_car.set_convertor(self.car_solve)
- self.server_plate = Tcp_server('192.168.12.211', 5201, encoding='')
- self.server_plate.set_convertor(self.plate_solve)
- self.c2 = Statepoint(0)
- self.c2.set_excite_action(lambda: self.server_plate.send_to_all_clients(b'\x02'))
- self.c3 = Statepoint(0)
- self.c2.set_excite_action(lambda: self.server_plate.send_to_all_clients(b'\x03'))
- self.plates = {2:'', 3:''}
- self.server_plate.start()
- self.server_car.start()
- self.thread = threading.Thread(target=self.send_plate)
- self.thread.start()
- def car_solve(self, data):
- data = data.split('C')
- data.reverse()
- c2flag = False
- c3flag = False
- for i in data:
- if i == '':
- continue
- tmp = i.split('|')
- if not c2flag and tmp[0] == '2':
- c2flag = True
- self.c2.inject(int(tmp[1]))
- elif not c3flag and tmp[0] == '3':
- c3flag = True
- self.c3.inject(int(tmp[1]))
- if c2flag and c3flag:
- break
- def plate_solve(self, data):
- carNo = data[0]
- length = data[2]
- plate = data[3:3+length].decode('gbk')
- self.plates[carNo] = plate
- def send_plate(self):
- while True:
- self.sender.plate_zhagang('2', self.plates[2])
- self.sender.plate_zhagang('2', self.plates[3])
- time.sleep(30)
|