def oscillating_setpoint(_square_wave=False, shift=<NUM_LIT:0>):
import math<EOL>c = <NUM_LIT:0><EOL>while <NUM_LIT:1>:<EOL><INDENT>if _square_wave:<EOL><INDENT>yield ((c % <NUM_LIT>) < <NUM_LIT>) * <NUM_LIT:30> + <NUM_LIT:20><EOL>c += <NUM_LIT:1><EOL><DEDENT>else:<EOL><INDENT>yield <NUM_LIT:10> * math.sin(<NUM_LIT:2> * <NUM_LIT> * c + shift)+ <NUM_LIT:20> + <NUM_LIT:5> * math.sin(<NUM_LIT:2> * <NUM_LIT> * c * <NUM_LIT:3> + shift)<EOL>c += <NUM_LIT><EOL><DEDENT><DEDENT>
A basic example of a target that you may want to approximate.

    If you have a thermostat, this is a temperature setting.
    This target can't change too often