WPILibC++  unspecified
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Pages
Analog.hpp
1 #pragma once
2 
3 #include <stdint.h>
4 
5 enum AnalogTriggerType
6 {
7  kInWindow = 0,
8  kState = 1,
9  kRisingPulse = 2,
10  kFallingPulse = 3
11 };
12 
13 extern "C"
14 {
15  // Analog output functions
16  void* initializeAnalogOutputPort(void* port_pointer, int32_t *status);
17  void freeAnalogOutputPort(void* analog_port_pointer);
18  void setAnalogOutput(void* analog_port_pointer, double voltage, int32_t *status);
19  double getAnalogOutput(void* analog_port_pointer, int32_t *status);
20  bool checkAnalogOutputChannel(uint32_t pin);
21 
22  // Analog input functions
23  void* initializeAnalogInputPort(void* port_pointer, int32_t *status);
24  void freeAnalogInputPort(void* analog_port_pointer);
25  bool checkAnalogModule(uint8_t module);
26  bool checkAnalogInputChannel(uint32_t pin);
27 
28  void setAnalogSampleRate(double samplesPerSecond, int32_t *status);
29  float getAnalogSampleRate(int32_t *status);
30  void setAnalogAverageBits(void* analog_port_pointer, uint32_t bits, int32_t *status);
31  uint32_t getAnalogAverageBits(void* analog_port_pointer, int32_t *status);
32  void setAnalogOversampleBits(void* analog_port_pointer, uint32_t bits, int32_t *status);
33  uint32_t getAnalogOversampleBits(void* analog_port_pointer, int32_t *status);
34  int16_t getAnalogValue(void* analog_port_pointer, int32_t *status);
35  int32_t getAnalogAverageValue(void* analog_port_pointer, int32_t *status);
36  int32_t getAnalogVoltsToValue(void* analog_port_pointer, double voltage, int32_t *status);
37  float getAnalogVoltage(void* analog_port_pointer, int32_t *status);
38  float getAnalogAverageVoltage(void* analog_port_pointer, int32_t *status);
39  uint32_t getAnalogLSBWeight(void* analog_port_pointer, int32_t *status);
40  int32_t getAnalogOffset(void* analog_port_pointer, int32_t *status);
41 
42  bool isAccumulatorChannel(void* analog_port_pointer, int32_t *status);
43  void initAccumulator(void* analog_port_pointer, int32_t *status);
44  void resetAccumulator(void* analog_port_pointer, int32_t *status);
45  void setAccumulatorCenter(void* analog_port_pointer, int32_t center, int32_t *status);
46  void setAccumulatorDeadband(void* analog_port_pointer, int32_t deadband, int32_t *status);
47  int64_t getAccumulatorValue(void* analog_port_pointer, int32_t *status);
48  uint32_t getAccumulatorCount(void* analog_port_pointer, int32_t *status);
49  void getAccumulatorOutput(void* analog_port_pointer, int64_t *value, uint32_t *count,
50  int32_t *status);
51 
52  void* initializeAnalogTrigger(void* port_pointer, uint32_t *index, int32_t *status);
53  void cleanAnalogTrigger(void* analog_trigger_pointer, int32_t *status);
54  void setAnalogTriggerLimitsRaw(void* analog_trigger_pointer, int32_t lower, int32_t upper,
55  int32_t *status);
56  void setAnalogTriggerLimitsVoltage(void* analog_trigger_pointer, double lower, double upper,
57  int32_t *status);
58  void setAnalogTriggerAveraged(void* analog_trigger_pointer, bool useAveragedValue,
59  int32_t *status);
60  void setAnalogTriggerFiltered(void* analog_trigger_pointer, bool useFilteredValue,
61  int32_t *status);
62  bool getAnalogTriggerInWindow(void* analog_trigger_pointer, int32_t *status);
63  bool getAnalogTriggerTriggerState(void* analog_trigger_pointer, int32_t *status);
64  bool getAnalogTriggerOutput(void* analog_trigger_pointer, AnalogTriggerType type,
65  int32_t *status);
66 
68  // Float
69  int getAnalogSampleRateIntHack(int32_t *status);
70  int getAnalogVoltageIntHack(void* analog_port_pointer, int32_t *status);
71  int getAnalogAverageVoltageIntHack(void* analog_port_pointer, int32_t *status);
72 
73  // Doubles
74  void setAnalogSampleRateIntHack(int samplesPerSecond, int32_t *status);
75  int32_t getAnalogVoltsToValueIntHack(void* analog_port_pointer, int voltage, int32_t *status);
76  void setAnalogTriggerLimitsVoltageIntHack(void* analog_trigger_pointer, int lower, int upper,
77  int32_t *status);
78 }