Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  * Copyright 2012 Hanson Robokind LLC.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  *      http://www.apache.org/licenses/LICENSE-2.0
  *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.robokind.impl.motion.dynamixel.feedback.utils;

Author(s):
Matthew Stevenson <www.robokind.org>
public class FeedbackUtils {
    public static List<DynamixelServo.IdgetHotServos(
            ConcurrentDynamixelCache cacheint maxTemp){
        List<DynamixelServo.Idids = null;
        for(DynamixelServoCache c : cache.getValueMap().values()){
            int temp = c.getFeedback().getCurrentTemperature();
            c.getFeedback().getCurrentVoltage();
            if(temp >= maxTemp){
                if(ids == null){
                    ids = new ArrayList<DynamixelServo.Id>();
                }
                ids.add(c.getServoId());
            }
        }
        return ids;
    }
    
    public static List<DynamixelServo.IdgetOverLimit(
            ConcurrentDynamixelCache cacheint indexint valLimitint dir){
        List<DynamixelServo.Idids = null;
        for(DynamixelServoCache c : cache.getValueMap().values()){
            if(checkValue(c.getFeedback(), indexvalLimitdir)){
                if(ids == null){
                    ids = new ArrayList<DynamixelServo.Id>();
                }
                ids.add(c.getServoId());
            }
        }
        return ids;
    }
    
    public static boolean isOverLimit(
            ConcurrentDynamixelCache cacheint indexint valLimitint dir){
        for(DynamixelServoCache c : cache.getValueMap().values()){
            if(checkValue(c.getFeedback(), indexvalLimitdir)){
                return true;
            }
        }
        return false;
    }
    
    public static boolean checkValue(
            FeedbackUpdateValues feedbackint indexint valLimitint dir){
        if(feedback == null){
            return false;
        }
        int[] vals = feedback.getValues();
        if(vals == null || vals.length <= index){
            return false;
        }
        if(dir > 0){
            return vals[index] >= valLimit;
        }else if(dir == 0){
            return vals[index] == valLimit;
        }else{
            return vals[index] <= valLimit;
        }
    }
New to GrepCode? Check out our FAQ X