<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def set_all_pattern_variables(self, patternnumber, \ sp0, ti0, sp1, ti1, sp2, ti2, sp3, ti3, sp4, ti4, sp5, ti5, sp6, ti6, sp7, ti7, \ actual_step, additional_cycles, link_pattern):
 """Set all variables for a given pattern at one time. Args: * patternnumber (integer):
 0-7 * sp[*n*] (float):
 setpoint value for step *n* * ti[*n*] (integer??):
 step time for step *n*, 0-900 * actual_step (int):
 ? * additional_cycles(int):
 ? * link_pattern(int):
 ? """

        _checkPatternNumber(patternnumber)
        
        self.set_pattern_step_setpoint(patternnumber, 0, sp0)
        self.set_pattern_step_setpoint(patternnumber, 1, sp1)
        self.set_pattern_step_setpoint(patternnumber, 2, sp2)
        self.set_pattern_step_setpoint(patternnumber, 3, sp3)
        self.set_pattern_step_setpoint(patternnumber, 4, sp4)
        self.set_pattern_step_setpoint(patternnumber, 5, sp5)
        self.set_pattern_step_setpoint(patternnumber, 6, sp6)
        self.set_pattern_step_setpoint(patternnumber, 7, sp7)
        self.set_pattern_step_time(    patternnumber, 0, ti0)
        self.set_pattern_step_time(    patternnumber, 1, ti1)
        self.set_pattern_step_time(    patternnumber, 2, ti2)
        self.set_pattern_step_time(    patternnumber, 3, ti3)
        self.set_pattern_step_time(    patternnumber, 4, ti4)
        self.set_pattern_step_time(    patternnumber, 5, ti5)
        self.set_pattern_step_time(    patternnumber, 6, ti6)
        self.set_pattern_step_time(    patternnumber, 7, ti7)
        self.set_pattern_additional_cycles(patternnumber, additional_cycles)
        self.set_pattern_link_topattern(   patternnumber, link_pattern)
        self.set_pattern_actual_step(      patternnumber, actual_step)