コード例 #1
0
def main():
    try:
        os.nice(-15)
    except OSError:
        print("Process priority could not be decreased!")

    EntryHR = OuterHandReader.OHandReader(12, 18, 1)
    print("Entry Hand Reader Initialized!")
    ExitHR = ExitHandReader.ExitHandReader(32, 31)
    print("Exit Hand Reader Initialized!")
    MD = MaskDetector.MaskDetector(headless=False)
    print("Mask Detector Initialized!")
    door = Door()
    print("Door Initialized!")
    B = Buzzer(33)

    while True:
        controller.STATE = controller.DORMANT
        while controller.STATE == controller.DORMANT:
            if (ExitHR.read()):
                controller.STATE = controller.UNLOCKED
                print("The door is unlocked!")
                B.positiveresponse()
                door.exit()
                sleep(1)
            sleep(0.1)

        controller.STATE = controller.VERIFICATION
        print("Verification state")
        MD.start_display()
        while controller.STATE == controller.VERIFICATION:
            result = EntryHR.read()
            if (HAND_APPROVED == result):
                print("Checking face mask.")
                result = MD.last_label()
                if result == "Mask":
                    print("Greetings. The door is unlocked.")
                    #controller.STATE = controller.UNLOCKED
                    B.positiveresponse()
                    door.entrance()
                elif result == "Improper Mask":
                    print(
                        "Please wear your mask properly. When you do, have your hand measured again. Thank you!"
                    )
                    B.ringwarning()
                else:
                    print(
                        "You do not have a mask on! Please leave the door front area!"
                    )
                    B.ringerror()
                    #controller.STATE = controller.LOCKED

        sleep(5)