def test_load_chunk(self): manager = record_manager() file_list = store_manager.get_files() record = random.choice(file_list) res = manager.get_send_chunk(record, 0) self.assertGreater(len(res), 0)
def test_init_sensors(self): manager = record_manager() multi = I2C_controller() sensor = mpu6050(0x68) manager.setup_sensors() for i in range(1, 6): multi.I2C_setup(PTR_ARR[i]) self.assertEqual(sensor.read_accel_range(raw=True), RANGE)
def test_load_cache(self): manager = record_manager() file_list = store_manager.get_files() record = random.choice(file_list) res = manager.get_send_chunk(record, 0) start = manager.get_cache_size() self.assertGreater(len(res), 0) res = manager.get_send_chunk(record, 1) self.assertGreater(len(res), 0) self.assertEqual(start, manager.get_cache_size())
def test_start_new_recording(self): manager = record_manager() start_count = manager.get_cache_size() stop = threading.Event() logging_thread = threading.Thread(target=manager.start_new_recording, args=(stop, )) logging_thread.start() time.sleep(1) stop.set() logging_thread.join() self.assertEqual(manager.get_cache_size(), start_count + 1)
def main(): print("Configuring Sensors") manager = record_manager() manager.setup_sensors() print("Waiting for bluetooth") # We need to wait until Bluetooth init is done time.sleep(5) # Make device visible os.system("hciconfig hci0 piscan") # Create a new server socket using RFCOMM protocol server_sock = BluetoothSocket(RFCOMM) # Bind to any port server_sock.bind(("", PORT_ANY)) # Start listening server_sock.listen(1) # Get the port the server socket is listening port = server_sock.getsockname()[1] # The service UUID to advertise uuid = "7be1fcb3-5776-42fb-91fd-2ee7b5bbb86d" # Start advertising the service advertise_service(server_sock, "SuspOptimiser", service_id=uuid, service_classes=[uuid, SERIAL_PORT_CLASS], profiles=[SERIAL_PORT_PROFILE]) # Main Bluetooth server loop while True: print(f"Waiting for connection on RFCOMM channel {port}") try: client_sock = None # This will block until we get a new connection client_sock, client_info = server_sock.accept() print(f"Accepted connection from {client_info}") stop = threading.Event() logging_thread = None while True: # Read the data sent by the client data = client_sock.recv(1024) if len(data) == 0: continue print(f"Received {data}") is_continue = get_transaction_continue(manager, data) is_init = get_transaction_init(manager, data) # Handle the request if data == b"transaction:start": if logging_thread is None: stop = threading.Event() logging_thread = threading.Thread( target=manager.start_new_recording, args=(stop, )) logging_thread.start() response = b"true" elif data == b"transaction:stop": if logging_thread is not None: stop.set() logging_thread.join() logging_thread = None response = manager.get_last_data() else: response = b"false" elif data == b"transaction:list": response = manager.get_all_data() elif is_continue: response = is_continue elif is_init: response = is_init else: response = b"Not supported" client_sock.send(response) except IOError: pass except KeyboardInterrupt: if client_sock is not None: client_sock.close() server_sock.close() print("Server going down") break