001 /*----------------------------------------------------------------------------*/ 002 /* Copyright (c) FIRST 2008-2012. All Rights Reserved. */ 003 /* Open Source Software - may be modified and shared by FRC teams. The code */ 004 /* must be accompanied by the FIRST BSD license file in the root directory of */ 005 /* the project. */ 006 /*----------------------------------------------------------------------------*/ 007 008 package edu.wpi.first.wpilibj.communication; 009 010 import com.sun.cldc.jna.*; 011 012 /** 013 * Class for calibrating the analog inputs. 014 * @author jhersh 015 */ 016 public class AICalibration { 017 //UINT32 FRC_NetworkCommunication_nAICalibration_getLSBWeight(const UINT32 aiSystemIndex, const UINT32 channel, INT32 *status); 018 019 private static final Function getLSBWeightFn = NativeLibrary.getDefaultInstance().getFunction("FRC_NetworkCommunication_nAICalibration_getLSBWeight"); 020 021 /** 022 * Get the weight of the least significant bit. 023 * @param aiSystemIndex The system index. 024 * @param channel The analog channel. 025 * @return The LSB weight. 026 */ 027 public static long getLSBWeight(int aiSystemIndex, int channel) { 028 // TODO: implement error handling if you care. 029 long lsbWeight = getLSBWeightFn.call3(aiSystemIndex, channel, Pointer.NULL()) & 0xFFFFFFFFl; 030 return lsbWeight; 031 } 032 //INT32 FRC_NetworkCommunication_nAICalibration_getOffset(const UINT32 aiSystemIndex, const UINT32 channel, INT32 *status); 033 private static final Function getOffsetFn = NativeLibrary.getDefaultInstance().getFunction("FRC_NetworkCommunication_nAICalibration_getOffset"); 034 035 /** 036 * Get the offset. 037 * @param aiSystemIndex The system index. 038 * @param channel The analog channel. 039 * @return The offset. 040 */ 041 public static int getOffset(int aiSystemIndex, int channel) { 042 // TODO: implement error handling if you care. 043 int offset = getOffsetFn.call3(aiSystemIndex, channel, Pointer.NULL()); 044 return offset; 045 } 046 }