def main(): """Run on program start. Checks for other masters and initiates itself as either master or slave. """ m_sock = network.socket_setup(39500) try: master_addr = m_sock.recvfrom(4096)[1] except socket.timeout: state = 'master' m_sock.close() if state == 'master': mstr = master.Master() mstr.run() print_thread = Thread(target=mstr.print_system) print_thread.setDaemon(True) print_thread.start() elev = elevator.Elev() elev.state = 'master' elev.master_addr = mstr.ip elev.run(constants.ELEV_MODE) states.master() else: elev = elevator.Elev() elev.master_addr = master_addr[0] elev.run(constants.ELEV_MODE) states.slave(elev) backup = master.Master() elev.backup = backup states.backup(elev, backup) states.master()
def backup(elev, backup): listen_master = network.socket_setup(39500) while elev.state == 'backup': backup.print_system() try: msg = listen_master.recv(4096) except (socket.timeout): state = 'master' listen_master.close() backup.backup_ip = '' backup.run() #Change state to master #Clear all backup attributes except (KeyboardInterrupt): backup = False listen_master.close()
def backup(elev, backup): listen_master = network.socket_setup(39500) while elev.state == 'backup': backup.print_system() try: msg = listen_master.recv(4096) except(socket.timeout): state = 'master' listen_master.close() backup.backup_ip = '' backup.run() #Change state to master #Clear all backup attributes except(KeyboardInterrupt): backup = False listen_master.close()