"""MicroPython: stationary 100-sample raw sensor/encoder logger.
No motor commands. API-checked, not physically piloted.
"""
from pololu_3pi_2040_robot import robot
import time
motors, encoders = robot.Motors(), robot.Encoders()
lines, bumps = robot.LineSensors(), robot.BumpSensors()
button_c = robot.ButtonC()
motors.off()
try:
    bumps.calibrate()  # release bumpers first
    print("elapsed_ms,left_count,right_count,line0,line1,line2,line3,line4,bump_left,bump_right")
    start = time.ticks_ms()
    for sample in range(100):
        if button_c.is_pressed():
            break
        values = lines.read()
        bumps.read()
        counts = encoders.get_counts()
        row = [time.ticks_diff(time.ticks_ms(), start), counts[0], counts[1]]
        row.extend(values)
        row.extend([int(bumps.left_is_pressed()), int(bumps.right_is_pressed())])
        print(",".join(str(v) for v in row))
        time.sleep_ms(50)
finally:
    motors.off()
