# MakeCode micro:bit Python
# Extensions: Yahboom mbit + DFRobot HuskyLens (no Robot extension)

huskylens.init_i2c()
huskylens.init_mode(protocolAlgorithm.ALGORITHM_OBJECT_TRACKING)

TARGET_ID = 1
CENTER_LEFT = 120
CENTER_RIGHT = 200
TOO_CLOSE = 160
center_x = 0
target_width = 0


def on_forever():
    global center_x, target_width
    huskylens.request()

    if huskylens.readBox_s(Content3.ID) == TARGET_ID:
        center_x = huskylens.readBox_s(Content3.X_CENTER)
        target_width = huskylens.readBox_s(Content3.WIDTH)

        if center_x < CENTER_LEFT:
            mbit_小车类.car_ctrl(mbit_小车类.CarState.CAR_LEFT)
            basic.show_arrow(ArrowNames.WEST)
        elif center_x > CENTER_RIGHT:
            mbit_小车类.car_ctrl(mbit_小车类.CarState.CAR_RIGHT)
            basic.show_arrow(ArrowNames.EAST)
        elif target_width > TOO_CLOSE:
            mbit_小车类.car_ctrl(mbit_小车类.CarState.CAR_STOP)
            basic.show_icon(IconNames.CONFUSED)
        else:
            mbit_小车类.car_ctrl(mbit_小车类.CarState.CAR_RUN)
            basic.show_icon(IconNames.HAPPY)
    else:
        mbit_小车类.car_ctrl(mbit_小车类.CarState.CAR_STOP)
        basic.show_icon(IconNames.NO)


basic.forever(on_forever)
