Example #1
0
    def test_start_pwm(self):
        PWM.start("PWM0", 0)

        pwm_test = '/sys/class/pwm/pwmchip0/pwm0/'

        assert os.path.exists(pwm_test) == True
        duty = open(pwm_test + 'duty_cycle').readline().strip()
        period = open(pwm_test + 'period').readline().strip()
        assert int(duty) == 0
        assert int(period) == 500000
Example #2
0
    def test_start_pwm(self):
        PWM.start("PWM0", 0)

        pwm_test = '/sys/class/pwm/pwmchip0/pwm0/'

        assert os.path.exists(pwm_test) == True
        duty = open(pwm_test + 'duty_cycle').readline().strip()
        period = open(pwm_test + 'period').readline().strip()
        assert int(duty) == 0
        assert int(period) == 500000
Example #3
0
    def test_start_pwm(self):
        PWM.start("PWM0", 0)

        pwm_test = '/sys/class/pwm/pwmchip0/pwm0'

        assert os.path.exists(pwm_test)
        duty = open(pwm_test + '/duty_cycle').read()
        period = open(pwm_test + '/period').read()
        assert int(duty) == 0
        assert int(period) == 500000
        PWM.cleanup()
Example #4
0
    def test_start_pwm_with_polarity_zero(self):
        PWM.cleanup()
        PWM.start("PWM0", 0, 2000, 0)

        pwm_test = '/sys/class/pwm/pwmchip0/pwm0/'

        duty = open(pwm_test + 'duty_cycle').readline().strip()
        period = open(pwm_test + 'period').readline().strip()
        polarity = open(pwm_test + 'polarity').readline().strip()
        assert int(duty) == 0
        assert int(period) == 500000
        assert str(polarity) == "normal"
Example #5
0
    def test_start_pwm_with_polarity_zero(self):
        PWM.cleanup()
        PWM.start("PWM0", 0, 2000, 0)

        pwm_test = '/sys/class/pwm/pwmchip0/pwm0/'

        duty = open(pwm_test + 'duty_cycle').readline().strip()
        period = open(pwm_test + 'period').readline().strip()
        polarity = open(pwm_test + 'polarity').readline().strip()
        assert int(duty) == 0
        assert int(period) == 500000
        assert str(polarity) == "normal"
Example #6
0
    def test_start_pwm_with_polarity_one(self):
        PWM.start("PWM0", 0, 2000, 1)

        pwm_test = '/sys/class/pwm/pwmchip0/pwm0'

        assert os.path.exists(pwm_test)
        duty = open(pwm_test + '/duty_cycle').readline().strip()
        period = open(pwm_test + '/period').readline().strip()
        polarity = open(pwm_test + '/polarity').readline().strip()
        assert int(duty) == 0
        assert int(period) == 500000
        assert str(polarity) == "inverted"
        PWM.cleanup()
Example #7
0
    def test_start_pwm_with_polarity_default(self):
        PWM.start("PWM0", 0, 2000, 0)

        pwm_test = '/sys/class/pwm/pwmchip0/pwm0'

        assert os.path.exists(pwm_test)
        duty = open(pwm_test + '/duty_cycle').readline().strip()
        period = open(pwm_test + '/period').readline().strip()
        polarity = open(pwm_test + '/polarity').readline().strip()
        assert int(duty) == 0
        assert int(period) == 500000
        assert str(polarity) == "normal"
        PWM.cleanup()
Example #8
0
    def test_start_pwm_with_polarity_zero(self):
        PWM.start("PWM0", 0, 2000, 0)

        pwm_test = '/sys/class/pwm/pwmchip0/pwm0'

        assert os.path.exists(pwm_test)
        duty = open(pwm_test + '/duty_cycle').read()
        period = open(pwm_test + '/period').read()
        polarity = open(pwm_test + '/polarity').read()
        assert int(duty) == 0
        assert int(period) == 500000
        assert string(polarity) == "normal"
        PWM.cleanup()
Example #9
0
    def api_pwm(self, chan, command, option, req_method, req_args):
        resp = copy.deepcopy(self.CHIP_INFO)
        resp["connected"] = True

        # Default the channel to PWM0
        # CHIP Pro will support PWM1
        cname = "PWM0"

        chan = int(chan)
        if chan not in [0]:  #,1]:
            resp["message"] = "Invalid PWM Channel Specified"
            return jsonify(resp)
        else:
            if chan == 0:
                cname = "PWM0"
            elif chan == 1:
                cname = "PWM1"

        # Figure out our command
        if command == "start" and req_method == 'GET':
            # Load the overlay
            OM.load(cname)
            # Get the arguments
            duty_cycle = req_args.get('duty_cycle', 25.0)
            frequency = req_args.get('frequency', 200.0)
            polarity = req_args.get('polarity', 0)
            # Start the PWM
            PWM.start(cname, duty_cycle, frequency, polarity)
            resp[
                "message"] = "Setting {0} to duty cycle: {1}, frequency: {2}, and polarity {3}".format(
                    cname, duty_cycle, frequency, polarity)
        elif command == "stop" and req_method == 'GET':
            PWM.stop(chame)
            resp["message"] = "Stopping {0}".format(cname)
        elif command == "cleanup" and req_method == 'GET':
            # TODO: Handle per channel cleanup
            PWM.cleanup()
            OM.unload(cname)
            resp["message"] = "Cleaning up and unloading {0}".format(cname)
        elif command == "duty_cycle" and req_method in ['GET', 'PUT', 'POST']:
            PWM.set_duty_cycle(cname, float(option))
            resp["message"] = "Changing duty cycle on {0} to {1}".format(
                cname, option)
        elif command == "frequency" and req_method in ['GET', 'PUT', 'POST']:
            PWM.set_frequency(cname, float(option))
            resp["message"] = "Changing duty cycle on {0} to {1}".format(
                cname, option)
        return jsonify(resp)
Example #10
0
    def test_pwm_duty_modified(self):
        PWM.start("PWM0", 0)

        pwm_test = '/sys/class/pwm/pwmchip0/pwm0'

        assert os.path.exists(pwm_test)
        duty = open(pwm_test + '/duty_cycle').readline().strip()
        period = open(pwm_test + '/period').readline().strip()
        assert int(duty) == 0
        assert int(period) == 500000

        PWM.set_duty_cycle("PWM0", 100)
        duty = open(pwm_test + '/duty_cycle').readline().strip()
        period = open(pwm_test + '/period').readline().strip()
        assert int(duty) == 500000
        assert int(period) == 500000
        PWM.cleanup()
Example #11
0
    def test_pwm_duty_modified(self):
        PWM.start("PWM0", 0)

        pwm_test = '/sys/class/pwm/pwmchip0/pwm0'

        assert os.path.exists(pwm_test)
        duty = open(pwm_test + '/duty_cycle').readline().strip()
        period = open(pwm_test + '/period').readline().strip()
        assert int(duty) == 0
        assert int(period) == 500000

        PWM.set_duty_cycle("PWM0", 100)
        duty = open(pwm_test + '/duty_cycle').readline().strip()
        period = open(pwm_test + '/period').readline().strip()
        assert int(duty) == 500000
        assert int(period) == 500000
        PWM.cleanup()
Example #12
0
 def test_pwm_start_invalid_frequency_string(self):
     with pytest.raises(TypeError):
         PWM.start("PWM0", 0, "1")
Example #13
0
 def test_pwm_start_invalid_duty_cycle_high(self):
     with pytest.raises(ValueError):
         PWM.start("PWM0", 101)
Example #14
0
 def test_pwm_start_invalid_polarity_type(self):
     with pytest.raises(TypeError):
         PWM.start("PWM0", 0, 100, "1")
Example #15
0
 def test_pwm_start_negative_polarity(self):
     with pytest.raises(ValueError):
         PWM.start("PWM0", 0, 100, -1)
Example #16
0
 def test_pwm_start_invalid_frequency_negative(self):
     with pytest.raises(ValueError):
         PWM.start("PWM0", 0, -1)
Example #17
0
 def test_pwm_duty_cycle_invalid_value_string(self):
     PWM.start("PWM0", 0)
     with pytest.raises(TypeError):
         PWM.set_duty_cycle("PWM0", "a")
     PWM.cleanup()
Example #18
0
 def test_pwm_start_invalid_polarity_type(self):
     with pytest.raises(TypeError):
         PWM.start("PWM0", 0, 100, "1")
Example #19
0
 def test_pwm_frequency_invalid_value_string(self):
     PWM.start("PWM0", 0)
     with pytest.raises(TypeError):
         PWM.set_frequency("PWM0", "11")
         PWM.cleanup()
Example #20
0
 def test_pwm_frequency_invalid_value_negative(self):
     PWM.start("PWM0", 0)
     with pytest.raises(ValueError):
         PWM.set_frequency("PWM0", -1)
         PWM.cleanup()
Example #21
0
 def test_pwm_duty_cycle_invalid_value_string(self):
     PWM.start("PWM0", 0)
     with pytest.raises(TypeError):
         PWM.set_duty_cycle("PWM0", "a")
         PWM.cleanup()
Example #22
0
 def test_pwm_duty_cycle_invalid_value_negative(self):
     PWM.start("PWM0", 0)
     with pytest.raises(ValueError):
         PWM.set_duty_cycle("PWM0", -1)
         PWM.cleanup()
Example #23
0
 def test_pwm_start_negative_polarity(self):
     with pytest.raises(ValueError):
         PWM.start("PWM0", 0, 100, -1)
Example #24
0
import CHIP_IO.OverlayManager as OM
import CHIP_IO.PWM as PWM
import time

# Initialize hardware pwm thorugh the OM
OM.enable_debug()
OM.load("PWM0")

# Test it loaded properly
if (OM.get_pwm_loaded()):
    print("PWM OM Successfully loaded...")

# Setup the pins
GPIO.setup("XIO-P0", GPIO.OUT)
GPIO.setup("XIO-P1", GPIO.OUT)
PWM.start("PWM0", 100, 100, 0)

# Run the test
try:
    GPIO.output("XIO-P0", GPIO.HIGH)
    GPIO.output("XIO-P1", GPIO.LOW)

    print("Testing duty cycle...")

    # Test duty cycle
    #    for x in range(0,100):
    #        SPWM.set_duty_cycle("PWM0", x)
    #        print(x)
    #        time.sleep(.1)

    # Test frequency
Example #25
0
 def test_pwm_frequency_invalid_value_string(self):
     PWM.start("PWM0", 0)
     with pytest.raises(TypeError):
         PWM.set_frequency("PWM0", "11")
     PWM.cleanup()
Example #26
0
 def test_pwm_start_invalid_frequency_string(self):
     with pytest.raises(TypeError):
         PWM.start("PWM0", 0, "1")
Example #27
0
 def test_pwm_start_invalid_duty_cycle_negative(self):
     with pytest.raises(ValueError):
         PWM.start("PWM0", -1)
Example #28
0
 def test_pwm_start_invalid_positive_polarity(self):
     with pytest.raises(ValueError):
         PWM.start("PWM0", 0, 100, 2)
Example #29
0
 def test_pwm_start_invalid_positive_polarity(self):
     with pytest.raises(ValueError):
         PWM.start("PWM0", 0, 100, 2)
Example #30
0
 def test_pwm_duty_cycle_invalid_value_negative(self):
     PWM.start("PWM0", 0)
     with pytest.raises(ValueError):
         PWM.set_duty_cycle("PWM0", -1)
     PWM.cleanup()
Example #31
0
 def test_pwm_start_invalid_pwm_key(self):
     with pytest.raises(ValueError):
         PWM.start("P8_25", -1)
Example #32
0
 def test_pwm_frequency_invalid_value_negative(self):
     PWM.start("PWM0", 0)
     with pytest.raises(ValueError):
         PWM.set_frequency("PWM0", -1)
     PWM.cleanup()
Example #33
0
 def test_pwm_start_invalid_duty_cycle_negative(self):
     with pytest.raises(ValueError):
         PWM.start("PWM0", -1)
Example #34
0
 def test_pwm_start_valid_duty_cycle_max(self):
     #testing an exception isn't thrown
     PWM.start("PWM0", 100)
     PWM.cleanup()
Example #35
0
 def test_pwm_start_invalid_duty_cycle_high(self):
     with pytest.raises(ValueError):
         PWM.start("PWM0", 101)
Example #36
0
 def test_pwm_start_invalid_pwm_key(self):
     with pytest.raises(ValueError):
         PWM.start("P8_25", -1)
Example #37
0
 def test_pwm_start_invalid_duty_cycle_string(self):
     with pytest.raises(TypeError):
         PWM.start("PWM0", "1")
Example #38
0
 def test_pwm_start_valid_duty_cycle_max(self):
     #testing an exception isn't thrown
     PWM.start("PWM0", 100)
     PWM.cleanup()
Example #39
0
 def test_pwm_start_invalid_frequency_negative(self):
     with pytest.raises(ValueError):
         PWM.start("PWM0", 0, -1)
Example #40
0
 def test_pwm_start_invalid_duty_cycle_string(self):
     with pytest.raises(TypeError):
         PWM.start("PWM0", "1")
Example #41
0
    # LOAD THE PWM OVERLAY
    print("LOADING PWM OVERLAY")
    OM.load("PWM0")

    time.sleep(1)

    # CLEANUP THE GPIO
    #GPIO.cleanup()
    #PWM.cleanup()

    # SETUP PWM
    try:
        print("PWM START")
        PWM.toggle_debug()
        PWM.start(PWMGPIO, 15, 50, 1)
        PrintPwmData()

        # UNCOMMENT FOR CRASH
        #print("PWM SET FREQUENCY")
        #PWM.set_frequency(PWMGPIO, 200)
        #PrintPwmData()

        # UNCOMMENT FOR CRASH
        #print("PWM SET DUTY CYCLE")
        #PWM.set_duty_cycle(PWMGPIO, 25)
        #PrintPwmData()

        # SETUP PWM RECEIVER
        #rcvr = PWMReceiver(GPIO, RECEIVERGPIO, COUNT, SLEEPTIME)
        #rcvr.start()