/*----------------------------------------------------------------------------*/ /* Copyright (c) FIRST 2014. All Rights Reserved. */ /* Open Source Software - may be modified and shared by FRC teams. The code */ /* must be accompanied by the FIRST BSD license file in $(WIND_BASE)/WPILib. */ /*----------------------------------------------------------------------------*/ #pragma once /* Constants */ #define LOG_DEBUG __FILE__,__FUNCTION__,__LINE__,DEBUG_TYPE #define LOG_INFO __FILE__,__FUNCTION__,__LINE__,INFO_TYPE #define LOG_ERROR __FILE__,__FUNCTION__,__LINE__,ERROR_TYPE #define LOG_CRITICAL __FILE__,__FUNCTION__,__LINE__,CRITICAL_TYPE #define LOG_FATAL __FILE__,__FUNCTION__,__LINE__,FATAL_TYPE #define LOG_DEBUG __FILE__,__FUNCTION__,__LINE__,DEBUG_TYPE /* Enumerated Types */ /** debug levels */ enum dprint_type {DEBUG_TYPE, INFO_TYPE, ERROR_TYPE, CRITICAL_TYPE, FATAL_TYPE}; /** debug output setting */ typedef enum DebugOutputType_enum { DEBUG_OFF, DEBUG_MOSTLY_OFF, DEBUG_SCREEN_ONLY, DEBUG_FILE_ONLY, DEBUG_SCREEN_AND_FILE }DebugOutputType; /* Enumerated Types */ /* Utility functions */ /* debug */ void SetDebugFlag ( DebugOutputType flag ); void dprintf ( const char * tempString, ... ); /* Variable argument list */ /* set FRC ranges for drive */ double RangeToNormalized(double pixel, int range); /* change normalized value to any range - used for servo */ float NormalizeToRange(float normalizedValue, float minRange, float maxRange); float NormalizeToRange(float normalizedValue); /* system utilities */ void ShowActivity (char *fmt, ...); double ElapsedTime (double startTime); /* servo panning utilities */ class Servo; double SinPosition (double *period, double sinStart); void panInit(); void panInit(double period); void panForTarget(Servo *panServo); void panForTarget(Servo *panServo, double sinStart); /* config file read utilities */ int processFile(char *inputFile, char *outputString, int lineNumber); int emptyString(char *string); void stripString(char *string);