All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.silverspoon.bulldog.beagleboneblack.gpio.BBBPwmManager Maven / Gradle / Ivy

package io.silverspoon.bulldog.beagleboneblack.gpio;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class BBBPwmManager {

   private Set activePwms = new HashSet();

   public boolean canActivatePwmOnPin(BBBPwm pwm) {
      if (pwm == null) {
         throw new IllegalArgumentException("pwm must not be null!");
      }
      BBBPwm activePwm = getActivePin(pwm);
      return activePwm == null && !(pwm == activePwm);
   }

   public BBBPwm getActivePin(BBBPwm pwm) {
      List activeSiblings = findPwmByGroup(pwm.getPwmGroup());
      for (BBBPwm siblingPwm : activeSiblings) {
         if (siblingPwm.getQualifier().equals(pwm.getQualifier())) {
            return siblingPwm;
         }
      }

      return null;
   }

   public BBBPwm getActiveSibling(BBBPwm pwm) {
      List activeSiblings = findPwmByGroup(pwm.getPwmGroup());
      for (BBBPwm siblingPwm : activeSiblings) {
         if (!siblingPwm.getQualifier().equals(pwm.getQualifier())) {
            return siblingPwm;
         }
      }

      return null;
   }

   public void addActivePwm(BBBPwm pwm) {
      activePwms.add(pwm);
   }

   public void removeActivePwm(BBBPwm pwm) {
      activePwms.remove(pwm);
   }

   private List findPwmByGroup(String group) {
      List pwms = new ArrayList();
      for (BBBPwm pwm : activePwms) {
         if (pwm.getPwmGroup().equals(group)) {
            pwms.add(pwm);
         }
      }

      return pwms;
   }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy