commit_2
This commit is contained in:
parent
2948d848bd
commit
2146e886a0
34 changed files with 3665 additions and 3285 deletions
Binary file not shown.
|
@ -1,20 +1,37 @@
|
|||
import serial
|
||||
import time
|
||||
from threading import Thread
|
||||
|
||||
class access_control:
|
||||
_in_payloads = []
|
||||
_read_buffer = []
|
||||
_door_state: bool = 0
|
||||
serial_adapter: serial.Serial
|
||||
def __init__(self, serial_port: str):
|
||||
self.serial_adapter = serial.Serial(serial_port,baudrate=115200)
|
||||
#Thread(target=self.read_serial).start()
|
||||
Thread(target=self.read_serial).start()
|
||||
Thread(target=self._process_payload).start()
|
||||
def read_serial(self):
|
||||
while True:
|
||||
if True:
|
||||
print("Reading Serial")
|
||||
data = self.serial_adapter.read_until(0xFF)
|
||||
print(data)
|
||||
#data = data.decode("ascii").removesuffix("\r\n")
|
||||
self._read_buffer.append(data)
|
||||
if self.serial_adapter.in_waiting:
|
||||
in_byte = self.serial_adapter.read(1)
|
||||
if(in_byte==b'\xFF'):
|
||||
self._in_payloads.append(self._read_buffer)
|
||||
self._read_buffer = []
|
||||
else:
|
||||
self._read_buffer.append(in_byte)
|
||||
def _process_payload(self):
|
||||
while True:
|
||||
self._process_payload_once()
|
||||
|
||||
def _process_payload_once(self):
|
||||
if(len(self._in_payloads)>0):
|
||||
payload = self._in_payloads.pop(0)
|
||||
if(payload[0]==b'\x01'):
|
||||
if(payload[1]==b'\x00'):
|
||||
self._door_state = True
|
||||
elif(payload[1]==b'\01'):
|
||||
self._door_state = False
|
||||
def light_on(self):
|
||||
packet = bytearray()
|
||||
packet.append(0x00)
|
||||
|
@ -27,8 +44,12 @@ class access_control:
|
|||
packet.append(0x00)
|
||||
packet.append(0xFF)
|
||||
self.serial_adapter.write(packet)
|
||||
def request_door_state(self):
|
||||
def _request_door_state(self):
|
||||
packet = bytearray()
|
||||
packet.append(0x01)
|
||||
packet.append(0xFF)
|
||||
self.serial_adapter.write(packet)
|
||||
self.serial_adapter.write(packet)
|
||||
def get_door_state(self) -> bool:
|
||||
self._request_door_state()
|
||||
time.sleep(0.25)
|
||||
return self._door_state
|
|
@ -1,10 +1,10 @@
|
|||
from access_control import access_control
|
||||
import time
|
||||
|
||||
stm32 = access_control("COM7")
|
||||
stm32 = access_control("COM12")
|
||||
time.sleep(1)
|
||||
while True:
|
||||
stm32.request_door_state()
|
||||
kkc =stm32.serial_adapter.read(2)
|
||||
print(kkc)
|
||||
time.sleep(0.5)
|
||||
if(stm32.get_door_state() == True):
|
||||
print("Door is Closed")
|
||||
else:
|
||||
print("Door is Openned")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue