def __init__(self, hostname): threading.Thread.__init__(self) self.queue = Queue.Queue() self.images_undistorted = Images(CAPTURES_PATH) self.products = Products() self.duplicate_filter = Duplicate_Filter(self.products) self.web_interface = WebInterface() self.inventory = Inventory() self.network = Network(hostname, self.network_message_handler, self.network_status_handler) self.gdrive_captures_directory = "0BzpNPyJoi6uoSGlhTnN5RWhXRFU" self.light_level = 10 self.camera_capture_delay = 10 self.object_detection_wait_period = 300 self.whole_process_wait_period = 330 self.soonest_run_time = time.time() self.camera_units = Camera_Units(self.network) self.response_accumulator = Response_Accumulator() self.detected_objects = Detected_Objects(CAPTURES_PATH, PARSED_CAPTURES_PATH, self.products) self.door_open = False self.door_log = [time.time()] # hold timestamps of door closures since last scan self.scan_log = [time.time() - 1800] # hold timestamps of scans since unit was rebooted self.label_lines = [line.rstrip() for line in tf.gfile.GFile("/home/nvidia/supercooler/Roles/jetson/tf_files/retrained_labels.txt")] with tf.gfile.FastGFile("/home/nvidia/supercooler/Roles/jetson/tf_files/retrained_graph.pb", 'rb') as f: graph_def = tf.GraphDef() graph_def.ParseFromString(f.read()) with tf.Graph().as_default() as imported_graph: tf.import_graph_def(graph_def, name='') self.imported_graph = imported_graph self.hostnames = [ "supercoolerA0","supercoolerA1","supercoolerA2","supercoolerA3","supercoolerA4","supercoolerA5","supercoolerA6","supercoolerA7","supercoolerA8","supercoolerA9","supercoolerA10","supercoolerA11", "supercoolerB0","supercoolerB1","supercoolerB2","supercoolerB3","supercoolerB4","supercoolerB5","supercoolerB6","supercoolerB7","supercoolerB8","supercoolerB9","supercoolerB10","supercoolerB11", "supercoolerC0","supercoolerC1","supercoolerC2","supercoolerC3","supercoolerC4","supercoolerC5","supercoolerC6","supercoolerC7","supercoolerC8","supercoolerC9","supercoolerC10","supercoolerC11", "supercoolerD0","supercoolerD1","supercoolerD2","supercoolerD3","supercoolerD4","supercoolerD5","supercoolerD6","supercoolerD7","supercoolerD8","supercoolerD9","supercoolerD10","supercoolerD11", "supercooler-hardware" ] self.client_monitor_server = Thirtybirds_Client_Monitor_Server(self.network, self.hostnames) self.client_monitor_server.daemon = True self.client_monitor_server.start() self.network.thirtybirds.subscribe_to_topic("door_closed") self.network.thirtybirds.subscribe_to_topic("door_opened") self.network.thirtybirds.subscribe_to_topic("client_monitor_response") self.network.thirtybirds.subscribe_to_topic("receive_image_data")
def init_interface(self): if config.get_settings()['web_interface']['enabled']: import webbrowser from web_interface import WebInterface self.web_interface = WebInterface(self) self.web_interface.start() self.logger.debug("Waiting for webserver to start...") while not self.web_interface.server: time.sleep(0.01) if self.stop_flag: return self.logger.debug( "...server is up and running. Connecting browser...") time.sleep(3) if config.get_settings( )['web_interface']['browser_opening_on_start']: webbrowser.open("http://127.0.0.1:8008", 2, True) self.logger.debug("...done")
def __init__(self, hostname): threading.Thread.__init__(self) self.queue = Queue.Queue() self.images_undistorted = Images(CAPTURES_PATH) self.beers = Beers() self.duplicate_filter = Duplicate_Filter() self.web_interface = WebInterface() self.inventory = Inventory() self.network = Network(hostname, self.network_message_handler, self.network_status_handler) self.gdrive_captures_directory = "0BzpNPyJoi6uoSGlhTnN5RWhXRFU" self.light_level = 10 self.camera_capture_delay = 10 self.object_detection_wait_period = 240 self.whole_process_wait_period = 300 self.soonest_run_time = time.time() self.camera_units = Camera_Units(self.network) self.response_accumulator = Response_Accumulator() self.hostnames = [ "supercoolerA0", "supercoolerA1", "supercoolerA2", "supercoolerA3", "supercoolerA4", "supercoolerA5", "supercoolerA6", "supercoolerA7", "supercoolerA8", "supercoolerA9", "supercoolerA10", "supercoolerA11", "supercoolerB0", "supercoolerB1", "supercoolerB2", "supercoolerB3", "supercoolerB4", "supercoolerB5", "supercoolerB6", "supercoolerB7", "supercoolerB8", "supercoolerB9", "supercoolerB10", "supercoolerB11", "supercoolerC0", "supercoolerC1", "supercoolerC2", "supercoolerC3", "supercoolerC4", "supercoolerC5", "supercoolerC6", "supercoolerC7", "supercoolerC8", "supercoolerC9", "supercoolerC10", "supercoolerC11", "supercoolerD0", "supercoolerD1", "supercoolerD2", "supercoolerD3", "supercoolerD4", "supercoolerD5", "supercoolerD6", "supercoolerD7", "supercoolerD8", "supercoolerD9", "supercoolerD10", "supercoolerD11", "supercooler-hardware" ] self.client_monitor_server = Thirtybirds_Client_Monitor_Server( self.network, self.hostnames) self.client_monitor_server.daemon = True self.client_monitor_server.start() self.network.thirtybirds.subscribe_to_topic("door_closed") self.network.thirtybirds.subscribe_to_topic("door_opened") self.network.thirtybirds.subscribe_to_topic("client_monitor_response") self.network.thirtybirds.subscribe_to_topic("receive_image_data")
def main(): parser = ArgumentParser() parser.add_argument('-d', '--date', help='date for aggregate, YYYYMMDD format is required') args = parser.parse_args() try: dt = datetime.datetime.strptime(args.date, '%Y%m%d') date = dt.date() today = datetime.date.today() if date > today: # コマンドライン引数の日付が今日より後日の場合は例外を発生 raise ValueError('%s is over today' % date) except Exception as e: # 例外を捕捉したら日付を今日として実行する print(e) dt = datetime.datetime.now() print('Exception was caught. Aggregate as today (%s)' % dt.date()) print('Make graph of tweets on "%s"' % dt.date()) login_url = config.get('web', 'login_url') # ユーザ/パスワードは環境変数から設定する前提 login_user = os.environ.get('LOGIN_USER') login_password = os.environ.get('LOGIN_PASSWORD') # ピシマにログインしてセッションを維持する web = WebInterface(login_url, login_user, login_password) # つぶやきの数を時間ごとに集計 pure_tweet_value = make_values_of_tweet(web, dt, '1', 'pure') adult_tweet_value = make_values_of_tweet(web, dt, '2', 'adult') # グラフを出力 make_graph(pure_tweet_value, adult_tweet_value, dt.date())
from pong import Pong from web_interface import WebInterface from flip_disk_display import FlipDiskDisplay if __name__ == '__main__': controller = WebInterface() display = FlipDiskDisplay((14, 7)) game = Pong(controller, display) game.start() controller.server_run_forever()
def __init__(self, network): self.network = network self.capture_path = "/home/pi/supercooler/Captures/" self.parsed_capture_path = "/home/pi/supercooler/ParsedCaptures/" self.web_interface = WebInterface() self.lights = Lights() self.door = Door(self.door_close_event_handler, self.door_open_event_handler) self.door.daemon = True self.door.start() self.camera_units = Camera_Units(self.network) self.camera_capture_delay = 15 self.classifier = Classifier() self.last_closure = time.time() hostnames = [ "supercoolerA0", "supercoolerA1", "supercoolerA2", "supercoolerA3", "supercoolerA4", "supercoolerA5", "supercoolerA6", "supercoolerA7", "supercoolerA8", "supercoolerA9", "supercoolerA10", "supercoolerA11", "supercoolerB0", "supercoolerB1", "supercoolerB2", "supercoolerB3", "supercoolerB4", "supercoolerB5", "supercoolerB6", "supercoolerB7", "supercoolerB8", "supercoolerB9", "supercoolerB10", "supercoolerB11", "supercoolerC0", "supercoolerC1", "supercoolerC2", "supercoolerC3", "supercoolerC4", "supercoolerC5", "supercoolerC6", "supercoolerC7", "supercoolerC8", "supercoolerC9", "supercoolerC10", "supercoolerC11", "supercoolerD0", "supercoolerD1", "supercoolerD2", "supercoolerD3", "supercoolerD4", "supercoolerD5", "supercoolerD6", "supercoolerD7", "supercoolerD8", "supercoolerD9", "supercoolerD10", "supercoolerD11" ] self.client_monitor_server = Thirtybirds_Client_Monitor_Server( network, hostnames) self.client_monitor_server.daemon = True self.client_monitor_server.start() # initialize inventory -- this will be recalculated on door close events self.inventory = [] # map watson labels to corresponding ints for web interface self.label_lookup = { "bottlebecks": 1, "bottlebudamerica": 2, "bottlebudlight": 3, "bottleplatinum": 4, "bottlecorona": 5, "bottlehoegaarden": 6, "bottleultra": 7, "bottleshocktopraspberry": 8, "bottleshocktoppretzel": 9, "bottlestella": 10, "canbudamerica": 11, "canbudlight": 12, "canbusch": 13, "canbusch": 14, "cannaturallight": 15, "canbudamerica": 16, "canbudice": 17, "canbudlight": 18 } self.classification_accumulator = Classification_Accumulator( self.all_records_received) self.classification_accumulator.daemon = True self.classification_accumulator.start() self.camera_specific_offsets = { 'A': { 0: (0, 0), 1: (0, 0), 2: (0, 0), 3: (0, 0), 4: (0, 0), 5: (0, 0), 6: (0, 0), 7: (0, 0), 8: (0, 0), 9: (0, 0), 10: (0, 0), 11: (0, 0) }, 'B': { 0: (0, 0), 1: (0, 0), 2: (0, 0), 3: (0, 0), 4: (0, 0), 5: (0, 0), 6: (0, 0), 7: (0, 0), 8: (0, 0), 9: (0, 0), 10: (0, 0), 11: (0, 0) }, 'C': { 0: (0, 0), 1: (0, 0), 2: (0, 0), 3: (0, 0), 4: (0, 0), 5: (0, 0), 6: (0, 0), 7: (0, 0), 8: (0, 0), 9: (0, 0), 10: (0, 0), 11: (0, 0) }, 'D': { 0: (0, 0), 1: (0, 0), 2: (0, 0), 3: (0, 0), 4: (0, 0), 5: (0, 0), 6: (0, 0), 7: (0, 0), 8: (0, 0), 9: (0, 0), 10: (0, 0), 11: (0, 0) } } self.camera_resolution = [1280, 720] self.product_specific_confidence_thresholds = { "bottlebecks": 0.99, "bottlebudamerica": 0.99, "bottlebudlight": 0.99, "bottleplatinum": 0.99, "bottlecorona": 0.95, "bottlehoegaarden": 0.99, "bottleultra": 0.98, "bottleshocktopraspberry": 0.99, "bottleshocktoppretzel": 0.98, "bottlestella": 0.99, "canbudamerica": 0.95, "canbudlight": 0.99, "canbusch": 0.94, "cannaturallight": 0.95, "canbudamerica": 0.99, "canbudice": 0.99, "canbudlight": 0.99 }