from time import sleep
from pyjuni.robodog import *
from pyjuni.deflib import *

def surfing_leg(dogs, high, low, index, dur):
    speed = 100
    for n in range(len(dogs)):
        if n == index :
            dogs[n].leg(ALL_LEG, height=low, step=0, height_speed=speed, step_speed=speed)
            dogs[n].bodyLED(0x0F, 255, 255, 255)
        elif n-1 == index :    
            dogs[n].leg(LEFT_LEG, height=high, step=0, height_speed=speed, step_speed=speed)
            dogs[n].leg(RIGHT_LEG, height=low, step=0, height_speed=speed, step_speed=speed)
            dogs[n].bodyLED(0x0F, 100, 100, 100)
        elif n+1 == index :
            dogs[n].leg(LEFT_LEG, height=low, step=0, height_speed=speed, step_speed=speed)
            dogs[n].leg(RIGHT_LEG, height=high, step=0, height_speed=speed, step_speed=speed)
            dogs[n].bodyLED(0x0F, 100, 100, 100)
        else :
            dogs[n].leg(ALL_LEG, height=high, step=0, height_speed=speed, step_speed=speed)
            dogs[0].bodyLED(0x0F, 0, 0, 0)
    sleep(dur)

def 파도타기(dogs, loop=1, high=70, low=40, duration=2):

    speed = duration/((len(dogs)+3)*2*loop)

    for k in range(loop):
        for n in range(-2, len(dogs)+1) :
            surfing_leg(dogs, high, low, n, speed)
       
        for n in range(len(dogs)+1, -2, -1) :
            surfing_leg(dogs, high, low, n, speed)

    multi_leg(dogs, ALL_LEG, height=high, step=0)
            

port_list = ["COM3", "COM4", "COM5", "COM6"]
if __name__ == "__main__":
    robodogs = RoboDogMultiOpen(port_list, None)
    파도타기(robodogs, loop=2, high=60, low=30, duration=4)
    sleep(0.5)
    RoboDogMultiClose(robodogs)
