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