Beispiel #1
0
def main():
    state = {
        "should_exit": False,
        "is_manual_mode": True,
        "is_cruise_mode": False,
    }

    dm, js, cam = hardware_setup()

    ws_server = start_ws()

    dl = DataLogger(LOG_PATH + "/data.csv")

    logging.info("All services up and running")

    last_ws_ts = time.time()
    last_sync_ts = time.time()

    while not state["should_exit"]:
        event = js.get_event()

        # dispatch control command
        if state["is_manual_mode"]:
            if state["is_cruise_mode"]:
                if "direction" in event:
                    event["direction"] = state["direction"]
                if "throttle" in event:
                    event["throttle"] = state["throttle"]
            dm.batch_update(event)
        else:
            ai_command = fetch_ai_command()
            state.update(ai_command)
            event.update(ai_command)
            dm.batch_update(ai_command)

        state.update(event)
        if state["should_exit"]:
            continue

        ts = time.time()

        # broadcast state/event to client
        if ts - last_sync_ts > 0.5:
            # sync state every 0.5s
            state.update(dm.get_state())
            ws_server.broadcast(state)
            last_sync_ts = time.time()

        if ts - last_ws_ts > 0.1:
            # push delta only every 0.1s if there is any
            event.update(dm.get_event())
            if len(event) > 0:
                ws_server.broadcast(event)
                last_ws_ts = time.time()

        #logging
        image_file_name = ('%.6f' % ts) + ".jpg"
        state.update({"timestamp": ts, "image_file_name": image_file_name})
        cam.capture_and_mark(image_file_name)
        dl.write(state)
import os
import time
from DataLogger import DataLogger


def get_image_file_name():
    ts = time.time()
    return ts, ('%.6f' % ts) + ".jpg"


state = {
    "direction": 130.32,
    "throttle": 0.8,
    "lat": 123.21123234,
    "is_manual_mode": False
}
state["timestamp"], state["image_file_name"] = get_image_file_name()
dl = DataLogger(os.getcwd() + "/demo.csv")
dl.write(state)
state["timestamp"], state["image_file_name"] = get_image_file_name()
dl.write(state)
state["timestamp"], state["image_file_name"] = get_image_file_name()
dl.write(state)