mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-23 01:21:42 +00:00
Splits HAL Digital and Analog Headers into multiple headers (#52)
The Digital and Analog headers (and the implementations, but that will be moved over later) are just too big and congested. This splits those headers, and then changes the few things that needed to be changed in WPILib to get the code working again. No function changes were made in this commit.
This commit is contained in:
committed by
Peter Johnson
parent
9e99df1cf7
commit
6d9b3b0aaa
@@ -1,86 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
enum AnalogTriggerType {
|
||||
kInWindow = 0,
|
||||
kState = 1,
|
||||
kRisingPulse = 2,
|
||||
kFallingPulse = 3
|
||||
};
|
||||
|
||||
extern "C" {
|
||||
// Analog output functions
|
||||
void* initializeAnalogOutputPort(void* port_pointer, int32_t* status);
|
||||
void freeAnalogOutputPort(void* analog_port_pointer);
|
||||
void setAnalogOutput(void* analog_port_pointer, double voltage,
|
||||
int32_t* status);
|
||||
double getAnalogOutput(void* analog_port_pointer, int32_t* status);
|
||||
bool checkAnalogOutputChannel(uint32_t pin);
|
||||
|
||||
// Analog input functions
|
||||
void* initializeAnalogInputPort(void* port_pointer, int32_t* status);
|
||||
void freeAnalogInputPort(void* analog_port_pointer);
|
||||
bool checkAnalogModule(uint8_t module);
|
||||
bool checkAnalogInputChannel(uint32_t pin);
|
||||
|
||||
void setAnalogSampleRate(double samplesPerSecond, int32_t* status);
|
||||
float getAnalogSampleRate(int32_t* status);
|
||||
void setAnalogAverageBits(void* analog_port_pointer, uint32_t bits,
|
||||
int32_t* status);
|
||||
uint32_t getAnalogAverageBits(void* analog_port_pointer, int32_t* status);
|
||||
void setAnalogOversampleBits(void* analog_port_pointer, uint32_t bits,
|
||||
int32_t* status);
|
||||
uint32_t getAnalogOversampleBits(void* analog_port_pointer, int32_t* status);
|
||||
int16_t getAnalogValue(void* analog_port_pointer, int32_t* status);
|
||||
int32_t getAnalogAverageValue(void* analog_port_pointer, int32_t* status);
|
||||
int32_t getAnalogVoltsToValue(void* analog_port_pointer, double voltage,
|
||||
int32_t* status);
|
||||
float getAnalogVoltage(void* analog_port_pointer, int32_t* status);
|
||||
float getAnalogAverageVoltage(void* analog_port_pointer, int32_t* status);
|
||||
uint32_t getAnalogLSBWeight(void* analog_port_pointer, int32_t* status);
|
||||
int32_t getAnalogOffset(void* analog_port_pointer, int32_t* status);
|
||||
|
||||
bool isAccumulatorChannel(void* analog_port_pointer, int32_t* status);
|
||||
void initAccumulator(void* analog_port_pointer, int32_t* status);
|
||||
void resetAccumulator(void* analog_port_pointer, int32_t* status);
|
||||
void setAccumulatorCenter(void* analog_port_pointer, int32_t center,
|
||||
int32_t* status);
|
||||
void setAccumulatorDeadband(void* analog_port_pointer, int32_t deadband,
|
||||
int32_t* status);
|
||||
int64_t getAccumulatorValue(void* analog_port_pointer, int32_t* status);
|
||||
uint32_t getAccumulatorCount(void* analog_port_pointer, int32_t* status);
|
||||
void getAccumulatorOutput(void* analog_port_pointer, int64_t* value,
|
||||
uint32_t* count, int32_t* status);
|
||||
|
||||
void* initializeAnalogTrigger(void* port_pointer, uint32_t* index,
|
||||
int32_t* status);
|
||||
void cleanAnalogTrigger(void* analog_trigger_pointer, int32_t* status);
|
||||
void setAnalogTriggerLimitsRaw(void* analog_trigger_pointer, int32_t lower,
|
||||
int32_t upper, int32_t* status);
|
||||
void setAnalogTriggerLimitsVoltage(void* analog_trigger_pointer, double lower,
|
||||
double upper, int32_t* status);
|
||||
void setAnalogTriggerAveraged(void* analog_trigger_pointer,
|
||||
bool useAveragedValue, int32_t* status);
|
||||
void setAnalogTriggerFiltered(void* analog_trigger_pointer,
|
||||
bool useFilteredValue, int32_t* status);
|
||||
bool getAnalogTriggerInWindow(void* analog_trigger_pointer, int32_t* status);
|
||||
bool getAnalogTriggerTriggerState(void* analog_trigger_pointer,
|
||||
int32_t* status);
|
||||
bool getAnalogTriggerOutput(void* analog_trigger_pointer,
|
||||
AnalogTriggerType type, int32_t* status);
|
||||
|
||||
//// Float JNA Hack
|
||||
// Float
|
||||
int getAnalogSampleRateIntHack(int32_t* status);
|
||||
int getAnalogVoltageIntHack(void* analog_port_pointer, int32_t* status);
|
||||
int getAnalogAverageVoltageIntHack(void* analog_port_pointer, int32_t* status);
|
||||
|
||||
// Doubles
|
||||
void setAnalogSampleRateIntHack(int samplesPerSecond, int32_t* status);
|
||||
int32_t getAnalogVoltsToValueIntHack(void* analog_port_pointer, int voltage,
|
||||
int32_t* status);
|
||||
void setAnalogTriggerLimitsVoltageIntHack(void* analog_trigger_pointer,
|
||||
int lower, int upper,
|
||||
int32_t* status);
|
||||
}
|
||||
16
hal/include/HAL/AnalogAccumulator.h
Normal file
16
hal/include/HAL/AnalogAccumulator.h
Normal file
@@ -0,0 +1,16 @@
|
||||
#pragma once
|
||||
#include <stdint.h>
|
||||
|
||||
extern "C" {
|
||||
bool isAccumulatorChannel(void* analog_port_pointer, int32_t* status);
|
||||
void initAccumulator(void* analog_port_pointer, int32_t* status);
|
||||
void resetAccumulator(void* analog_port_pointer, int32_t* status);
|
||||
void setAccumulatorCenter(void* analog_port_pointer, int32_t center,
|
||||
int32_t* status);
|
||||
void setAccumulatorDeadband(void* analog_port_pointer, int32_t deadband,
|
||||
int32_t* status);
|
||||
int64_t getAccumulatorValue(void* analog_port_pointer, int32_t* status);
|
||||
uint32_t getAccumulatorCount(void* analog_port_pointer, int32_t* status);
|
||||
void getAccumulatorOutput(void* analog_port_pointer, int64_t* value,
|
||||
uint32_t* count, int32_t* status);
|
||||
}
|
||||
27
hal/include/HAL/AnalogInput.h
Normal file
27
hal/include/HAL/AnalogInput.h
Normal file
@@ -0,0 +1,27 @@
|
||||
#pragma once
|
||||
#include <stdint.h>
|
||||
|
||||
extern "C" {
|
||||
// Analog input functions
|
||||
void* initializeAnalogInputPort(void* port_pointer, int32_t* status);
|
||||
void freeAnalogInputPort(void* analog_port_pointer);
|
||||
bool checkAnalogModule(uint8_t module);
|
||||
bool checkAnalogInputChannel(uint32_t pin);
|
||||
|
||||
void setAnalogSampleRate(double samplesPerSecond, int32_t* status);
|
||||
float getAnalogSampleRate(int32_t* status);
|
||||
void setAnalogAverageBits(void* analog_port_pointer, uint32_t bits,
|
||||
int32_t* status);
|
||||
uint32_t getAnalogAverageBits(void* analog_port_pointer, int32_t* status);
|
||||
void setAnalogOversampleBits(void* analog_port_pointer, uint32_t bits,
|
||||
int32_t* status);
|
||||
uint32_t getAnalogOversampleBits(void* analog_port_pointer, int32_t* status);
|
||||
int16_t getAnalogValue(void* analog_port_pointer, int32_t* status);
|
||||
int32_t getAnalogAverageValue(void* analog_port_pointer, int32_t* status);
|
||||
int32_t getAnalogVoltsToValue(void* analog_port_pointer, double voltage,
|
||||
int32_t* status);
|
||||
float getAnalogVoltage(void* analog_port_pointer, int32_t* status);
|
||||
float getAnalogAverageVoltage(void* analog_port_pointer, int32_t* status);
|
||||
uint32_t getAnalogLSBWeight(void* analog_port_pointer, int32_t* status);
|
||||
int32_t getAnalogOffset(void* analog_port_pointer, int32_t* status);
|
||||
}
|
||||
11
hal/include/HAL/AnalogOutput.h
Normal file
11
hal/include/HAL/AnalogOutput.h
Normal file
@@ -0,0 +1,11 @@
|
||||
#pragma once
|
||||
#include <stdint.h>
|
||||
|
||||
extern "C" {
|
||||
void* initializeAnalogOutputPort(void* port_pointer, int32_t* status);
|
||||
void freeAnalogOutputPort(void* analog_port_pointer);
|
||||
void setAnalogOutput(void* analog_port_pointer, double voltage,
|
||||
int32_t* status);
|
||||
double getAnalogOutput(void* analog_port_pointer, int32_t* status);
|
||||
bool checkAnalogOutputChannel(uint32_t pin);
|
||||
}
|
||||
28
hal/include/HAL/AnalogTrigger.h
Normal file
28
hal/include/HAL/AnalogTrigger.h
Normal file
@@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
#include <stdint.h>
|
||||
|
||||
enum AnalogTriggerType {
|
||||
kInWindow = 0,
|
||||
kState = 1,
|
||||
kRisingPulse = 2,
|
||||
kFallingPulse = 3
|
||||
};
|
||||
|
||||
extern "C" {
|
||||
void* initializeAnalogTrigger(void* port_pointer, uint32_t* index,
|
||||
int32_t* status);
|
||||
void cleanAnalogTrigger(void* analog_trigger_pointer, int32_t* status);
|
||||
void setAnalogTriggerLimitsRaw(void* analog_trigger_pointer, int32_t lower,
|
||||
int32_t upper, int32_t* status);
|
||||
void setAnalogTriggerLimitsVoltage(void* analog_trigger_pointer, double lower,
|
||||
double upper, int32_t* status);
|
||||
void setAnalogTriggerAveraged(void* analog_trigger_pointer,
|
||||
bool useAveragedValue, int32_t* status);
|
||||
void setAnalogTriggerFiltered(void* analog_trigger_pointer,
|
||||
bool useFilteredValue, int32_t* status);
|
||||
bool getAnalogTriggerInWindow(void* analog_trigger_pointer, int32_t* status);
|
||||
bool getAnalogTriggerTriggerState(void* analog_trigger_pointer,
|
||||
int32_t* status);
|
||||
bool getAnalogTriggerOutput(void* analog_trigger_pointer,
|
||||
AnalogTriggerType type, int32_t* status);
|
||||
}
|
||||
46
hal/include/HAL/Counter.h
Normal file
46
hal/include/HAL/Counter.h
Normal file
@@ -0,0 +1,46 @@
|
||||
#pragma once
|
||||
#include <stdint.h>
|
||||
|
||||
enum Mode {
|
||||
kTwoPulse = 0,
|
||||
kSemiperiod = 1,
|
||||
kPulseLength = 2,
|
||||
kExternalDirection = 3
|
||||
};
|
||||
|
||||
extern "C" {
|
||||
void* initializeCounter(Mode mode, uint32_t* index, int32_t* status);
|
||||
void freeCounter(void* counter_pointer, int32_t* status);
|
||||
void setCounterAverageSize(void* counter_pointer, int32_t size,
|
||||
int32_t* status);
|
||||
void setCounterUpSource(void* counter_pointer, uint32_t pin, bool analogTrigger,
|
||||
int32_t* status);
|
||||
void setCounterUpSourceEdge(void* counter_pointer, bool risingEdge,
|
||||
bool fallingEdge, int32_t* status);
|
||||
void clearCounterUpSource(void* counter_pointer, int32_t* status);
|
||||
void setCounterDownSource(void* counter_pointer, uint32_t pin,
|
||||
bool analogTrigger, int32_t* status);
|
||||
void setCounterDownSourceEdge(void* counter_pointer, bool risingEdge,
|
||||
bool fallingEdge, int32_t* status);
|
||||
void clearCounterDownSource(void* counter_pointer, int32_t* status);
|
||||
void setCounterUpDownMode(void* counter_pointer, int32_t* status);
|
||||
void setCounterExternalDirectionMode(void* counter_pointer, int32_t* status);
|
||||
void setCounterSemiPeriodMode(void* counter_pointer, bool highSemiPeriod,
|
||||
int32_t* status);
|
||||
void setCounterPulseLengthMode(void* counter_pointer, double threshold,
|
||||
int32_t* status);
|
||||
int32_t getCounterSamplesToAverage(void* counter_pointer, int32_t* status);
|
||||
void setCounterSamplesToAverage(void* counter_pointer, int samplesToAverage,
|
||||
int32_t* status);
|
||||
void resetCounter(void* counter_pointer, int32_t* status);
|
||||
int32_t getCounter(void* counter_pointer, int32_t* status);
|
||||
double getCounterPeriod(void* counter_pointer, int32_t* status);
|
||||
void setCounterMaxPeriod(void* counter_pointer, double maxPeriod,
|
||||
int32_t* status);
|
||||
void setCounterUpdateWhenEmpty(void* counter_pointer, bool enabled,
|
||||
int32_t* status);
|
||||
bool getCounterStopped(void* counter_pointer, int32_t* status);
|
||||
bool getCounterDirection(void* counter_pointer, int32_t* status);
|
||||
void setCounterReverseDirection(void* counter_pointer, bool reverseDirection,
|
||||
int32_t* status);
|
||||
}
|
||||
29
hal/include/HAL/DIO.h
Normal file
29
hal/include/HAL/DIO.h
Normal file
@@ -0,0 +1,29 @@
|
||||
#pragma once
|
||||
#include <stdint.h>
|
||||
|
||||
extern "C" {
|
||||
void* initializeDigitalPort(void* port_pointer, int32_t* status);
|
||||
void freeDigitalPort(void* digital_port_pointer);
|
||||
|
||||
void* allocatePWM(int32_t* status);
|
||||
void freePWM(void* pwmGenerator, int32_t* status);
|
||||
void setPWMRate(double rate, int32_t* status);
|
||||
void setPWMDutyCycle(void* pwmGenerator, double dutyCycle, int32_t* status);
|
||||
void setPWMOutputChannel(void* pwmGenerator, uint32_t pin, int32_t* status);
|
||||
|
||||
bool allocateDIO(void* digital_port_pointer, bool input, int32_t* status);
|
||||
void freeDIO(void* digital_port_pointer, int32_t* status);
|
||||
void setDIO(void* digital_port_pointer, short value, int32_t* status);
|
||||
bool getDIO(void* digital_port_pointer, int32_t* status);
|
||||
bool getDIODirection(void* digital_port_pointer, int32_t* status);
|
||||
void pulse(void* digital_port_pointer, double pulseLength, int32_t* status);
|
||||
bool isPulsing(void* digital_port_pointer, int32_t* status);
|
||||
bool isAnyPulsing(int32_t* status);
|
||||
|
||||
void setFilterSelect(void* digital_port_pointer, int filter_index,
|
||||
int32_t* status);
|
||||
int getFilterSelect(void* digital_port_pointer, int32_t* status);
|
||||
|
||||
void setFilterPeriod(int filter_index, uint32_t value, int32_t* status);
|
||||
uint32_t getFilterPeriod(int filter_index, int32_t* status);
|
||||
}
|
||||
@@ -1,159 +0,0 @@
|
||||
#pragma once
|
||||
#include <stdint.h>
|
||||
|
||||
#include "HAL/cpp/priority_mutex.h"
|
||||
|
||||
enum Mode {
|
||||
kTwoPulse = 0,
|
||||
kSemiperiod = 1,
|
||||
kPulseLength = 2,
|
||||
kExternalDirection = 3
|
||||
};
|
||||
|
||||
priority_recursive_mutex& spiGetSemaphore(uint8_t port);
|
||||
|
||||
extern "C" {
|
||||
void* initializeDigitalPort(void* port_pointer, int32_t* status);
|
||||
void freeDigitalPort(void* digital_port_pointer);
|
||||
bool checkPWMChannel(void* digital_port_pointer);
|
||||
bool checkRelayChannel(void* digital_port_pointer);
|
||||
|
||||
void setPWM(void* digital_port_pointer, unsigned short value, int32_t* status);
|
||||
bool allocatePWMChannel(void* digital_port_pointer, int32_t* status);
|
||||
void freePWMChannel(void* digital_port_pointer, int32_t* status);
|
||||
unsigned short getPWM(void* digital_port_pointer, int32_t* status);
|
||||
void latchPWMZero(void* digital_port_pointer, int32_t* status);
|
||||
void setPWMPeriodScale(void* digital_port_pointer, uint32_t squelchMask,
|
||||
int32_t* status);
|
||||
void* allocatePWM(int32_t* status);
|
||||
void freePWM(void* pwmGenerator, int32_t* status);
|
||||
void setPWMRate(double rate, int32_t* status);
|
||||
void setPWMDutyCycle(void* pwmGenerator, double dutyCycle, int32_t* status);
|
||||
void setPWMOutputChannel(void* pwmGenerator, uint32_t pin, int32_t* status);
|
||||
|
||||
void setRelayForward(void* digital_port_pointer, bool on, int32_t* status);
|
||||
void setRelayReverse(void* digital_port_pointer, bool on, int32_t* status);
|
||||
bool getRelayForward(void* digital_port_pointer, int32_t* status);
|
||||
bool getRelayReverse(void* digital_port_pointer, int32_t* status);
|
||||
|
||||
bool allocateDIO(void* digital_port_pointer, bool input, int32_t* status);
|
||||
void freeDIO(void* digital_port_pointer, int32_t* status);
|
||||
void setDIO(void* digital_port_pointer, short value, int32_t* status);
|
||||
bool getDIO(void* digital_port_pointer, int32_t* status);
|
||||
bool getDIODirection(void* digital_port_pointer, int32_t* status);
|
||||
void pulse(void* digital_port_pointer, double pulseLength, int32_t* status);
|
||||
bool isPulsing(void* digital_port_pointer, int32_t* status);
|
||||
bool isAnyPulsing(int32_t* status);
|
||||
|
||||
void setFilterSelect(void* digital_port_pointer, int filter_index,
|
||||
int32_t* status);
|
||||
int getFilterSelect(void* digital_port_pointer, int32_t* status);
|
||||
|
||||
void setFilterPeriod(int filter_index, uint32_t value, int32_t* status);
|
||||
uint32_t getFilterPeriod(int filter_index, int32_t* status);
|
||||
|
||||
void* initializeCounter(Mode mode, uint32_t* index, int32_t* status);
|
||||
void freeCounter(void* counter_pointer, int32_t* status);
|
||||
void setCounterAverageSize(void* counter_pointer, int32_t size,
|
||||
int32_t* status);
|
||||
void setCounterUpSource(void* counter_pointer, uint32_t pin, bool analogTrigger,
|
||||
int32_t* status);
|
||||
void setCounterUpSourceEdge(void* counter_pointer, bool risingEdge,
|
||||
bool fallingEdge, int32_t* status);
|
||||
void clearCounterUpSource(void* counter_pointer, int32_t* status);
|
||||
void setCounterDownSource(void* counter_pointer, uint32_t pin,
|
||||
bool analogTrigger, int32_t* status);
|
||||
void setCounterDownSourceEdge(void* counter_pointer, bool risingEdge,
|
||||
bool fallingEdge, int32_t* status);
|
||||
void clearCounterDownSource(void* counter_pointer, int32_t* status);
|
||||
void setCounterUpDownMode(void* counter_pointer, int32_t* status);
|
||||
void setCounterExternalDirectionMode(void* counter_pointer, int32_t* status);
|
||||
void setCounterSemiPeriodMode(void* counter_pointer, bool highSemiPeriod,
|
||||
int32_t* status);
|
||||
void setCounterPulseLengthMode(void* counter_pointer, double threshold,
|
||||
int32_t* status);
|
||||
int32_t getCounterSamplesToAverage(void* counter_pointer, int32_t* status);
|
||||
void setCounterSamplesToAverage(void* counter_pointer, int samplesToAverage,
|
||||
int32_t* status);
|
||||
void resetCounter(void* counter_pointer, int32_t* status);
|
||||
int32_t getCounter(void* counter_pointer, int32_t* status);
|
||||
double getCounterPeriod(void* counter_pointer, int32_t* status);
|
||||
void setCounterMaxPeriod(void* counter_pointer, double maxPeriod,
|
||||
int32_t* status);
|
||||
void setCounterUpdateWhenEmpty(void* counter_pointer, bool enabled,
|
||||
int32_t* status);
|
||||
bool getCounterStopped(void* counter_pointer, int32_t* status);
|
||||
bool getCounterDirection(void* counter_pointer, int32_t* status);
|
||||
void setCounterReverseDirection(void* counter_pointer, bool reverseDirection,
|
||||
int32_t* status);
|
||||
|
||||
void* initializeEncoder(uint8_t port_a_module, uint32_t port_a_pin,
|
||||
bool port_a_analog_trigger, uint8_t port_b_module,
|
||||
uint32_t port_b_pin, bool port_b_analog_trigger,
|
||||
bool reverseDirection, int32_t* index,
|
||||
int32_t* status); // TODO: fix routing
|
||||
void freeEncoder(void* encoder_pointer, int32_t* status);
|
||||
void resetEncoder(void* encoder_pointer, int32_t* status);
|
||||
int32_t getEncoder(void* encoder_pointer, int32_t* status); // Raw value
|
||||
double getEncoderPeriod(void* encoder_pointer, int32_t* status);
|
||||
void setEncoderMaxPeriod(void* encoder_pointer, double maxPeriod,
|
||||
int32_t* status);
|
||||
bool getEncoderStopped(void* encoder_pointer, int32_t* status);
|
||||
bool getEncoderDirection(void* encoder_pointer, int32_t* status);
|
||||
void setEncoderReverseDirection(void* encoder_pointer, bool reverseDirection,
|
||||
int32_t* status);
|
||||
void setEncoderSamplesToAverage(void* encoder_pointer,
|
||||
uint32_t samplesToAverage, int32_t* status);
|
||||
uint32_t getEncoderSamplesToAverage(void* encoder_pointer, int32_t* status);
|
||||
void setEncoderIndexSource(void* encoder_pointer, uint32_t pin,
|
||||
bool analogTrigger, bool activeHigh,
|
||||
bool edgeSensitive, int32_t* status);
|
||||
|
||||
uint16_t getLoopTiming(int32_t* status);
|
||||
|
||||
void spiInitialize(uint8_t port, int32_t* status);
|
||||
int32_t spiTransaction(uint8_t port, uint8_t* dataToSend, uint8_t* dataReceived,
|
||||
uint8_t size);
|
||||
int32_t spiWrite(uint8_t port, uint8_t* dataToSend, uint8_t sendSize);
|
||||
int32_t spiRead(uint8_t port, uint8_t* buffer, uint8_t count);
|
||||
void spiClose(uint8_t port);
|
||||
void spiSetSpeed(uint8_t port, uint32_t speed);
|
||||
void spiSetOpts(uint8_t port, int msb_first, int sample_on_trailing,
|
||||
int clk_idle_high);
|
||||
void spiSetChipSelectActiveHigh(uint8_t port, int32_t* status);
|
||||
void spiSetChipSelectActiveLow(uint8_t port, int32_t* status);
|
||||
int32_t spiGetHandle(uint8_t port);
|
||||
void spiSetHandle(uint8_t port, int32_t handle);
|
||||
|
||||
void spiInitAccumulator(uint8_t port, uint32_t period, uint32_t cmd,
|
||||
uint8_t xfer_size, uint32_t valid_mask,
|
||||
uint32_t valid_value, uint8_t data_shift,
|
||||
uint8_t data_size, bool is_signed, bool big_endian,
|
||||
int32_t* status);
|
||||
void spiFreeAccumulator(uint8_t port, int32_t* status);
|
||||
void spiResetAccumulator(uint8_t port, int32_t* status);
|
||||
void spiSetAccumulatorCenter(uint8_t port, int32_t center, int32_t* status);
|
||||
void spiSetAccumulatorDeadband(uint8_t port, int32_t deadband, int32_t* status);
|
||||
int32_t spiGetAccumulatorLastValue(uint8_t port, int32_t* status);
|
||||
int64_t spiGetAccumulatorValue(uint8_t port, int32_t* status);
|
||||
uint32_t spiGetAccumulatorCount(uint8_t port, int32_t* status);
|
||||
double spiGetAccumulatorAverage(uint8_t port, int32_t* status);
|
||||
void spiGetAccumulatorOutput(uint8_t port, int64_t* value, uint32_t* count,
|
||||
int32_t* status);
|
||||
|
||||
void i2CInitialize(uint8_t port, int32_t* status);
|
||||
int32_t i2CTransaction(uint8_t port, uint8_t deviceAddress, uint8_t* dataToSend,
|
||||
uint8_t sendSize, uint8_t* dataReceived,
|
||||
uint8_t receiveSize);
|
||||
int32_t i2CWrite(uint8_t port, uint8_t deviceAddress, uint8_t* dataToSend,
|
||||
uint8_t sendSize);
|
||||
int32_t i2CRead(uint8_t port, uint8_t deviceAddress, uint8_t* buffer,
|
||||
uint8_t count);
|
||||
void i2CClose(uint8_t port);
|
||||
|
||||
//// Float JNA Hack
|
||||
// double
|
||||
void setPWMRateIntHack(int rate, int32_t* status);
|
||||
void setPWMDutyCycleIntHack(void* pwmGenerator, int32_t dutyCycle,
|
||||
int32_t* status);
|
||||
}
|
||||
26
hal/include/HAL/Encoder.h
Normal file
26
hal/include/HAL/Encoder.h
Normal file
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
#include <stdint.h>
|
||||
|
||||
extern "C" {
|
||||
void* initializeEncoder(uint8_t port_a_module, uint32_t port_a_pin,
|
||||
bool port_a_analog_trigger, uint8_t port_b_module,
|
||||
uint32_t port_b_pin, bool port_b_analog_trigger,
|
||||
bool reverseDirection, int32_t* index,
|
||||
int32_t* status); // TODO: fix routing
|
||||
void freeEncoder(void* encoder_pointer, int32_t* status);
|
||||
void resetEncoder(void* encoder_pointer, int32_t* status);
|
||||
int32_t getEncoder(void* encoder_pointer, int32_t* status); // Raw value
|
||||
double getEncoderPeriod(void* encoder_pointer, int32_t* status);
|
||||
void setEncoderMaxPeriod(void* encoder_pointer, double maxPeriod,
|
||||
int32_t* status);
|
||||
bool getEncoderStopped(void* encoder_pointer, int32_t* status);
|
||||
bool getEncoderDirection(void* encoder_pointer, int32_t* status);
|
||||
void setEncoderReverseDirection(void* encoder_pointer, bool reverseDirection,
|
||||
int32_t* status);
|
||||
void setEncoderSamplesToAverage(void* encoder_pointer,
|
||||
uint32_t samplesToAverage, int32_t* status);
|
||||
uint32_t getEncoderSamplesToAverage(void* encoder_pointer, int32_t* status);
|
||||
void setEncoderIndexSource(void* encoder_pointer, uint32_t pin,
|
||||
bool analogTrigger, bool activeHigh,
|
||||
bool edgeSensitive, int32_t* status);
|
||||
}
|
||||
@@ -9,14 +9,24 @@
|
||||
#include <cmath>
|
||||
|
||||
#include "Accelerometer.h"
|
||||
#include "Analog.h"
|
||||
#include "AnalogAccumulator.h"
|
||||
#include "AnalogInput.h"
|
||||
#include "AnalogOutput.h"
|
||||
#include "AnalogTrigger.h"
|
||||
#include "Compressor.h"
|
||||
#include "Digital.h"
|
||||
#include "Counter.h"
|
||||
#include "DIO.h"
|
||||
#include "Encoder.h"
|
||||
#include "Errors.h"
|
||||
#include "I2C.h"
|
||||
#include "Interrupts.h"
|
||||
#include "Notifier.h"
|
||||
#include "PDP.h"
|
||||
#include "PWM.h"
|
||||
#include "Power.h"
|
||||
#include "Relay.h"
|
||||
#include "SPI.h"
|
||||
#include "SPIAccumulator.h"
|
||||
#include "SerialPort.h"
|
||||
#include "Solenoid.h"
|
||||
|
||||
|
||||
14
hal/include/HAL/I2C.h
Normal file
14
hal/include/HAL/I2C.h
Normal file
@@ -0,0 +1,14 @@
|
||||
#pragma once
|
||||
#include <stdint.h>
|
||||
|
||||
extern "C" {
|
||||
void i2CInitialize(uint8_t port, int32_t* status);
|
||||
int32_t i2CTransaction(uint8_t port, uint8_t deviceAddress, uint8_t* dataToSend,
|
||||
uint8_t sendSize, uint8_t* dataReceived,
|
||||
uint8_t receiveSize);
|
||||
int32_t i2CWrite(uint8_t port, uint8_t deviceAddress, uint8_t* dataToSend,
|
||||
uint8_t sendSize);
|
||||
int32_t i2CRead(uint8_t port, uint8_t deviceAddress, uint8_t* buffer,
|
||||
uint8_t count);
|
||||
void i2CClose(uint8_t port);
|
||||
}
|
||||
15
hal/include/HAL/PWM.h
Normal file
15
hal/include/HAL/PWM.h
Normal file
@@ -0,0 +1,15 @@
|
||||
#pragma once
|
||||
#include <stdint.h>
|
||||
|
||||
extern "C" {
|
||||
bool checkPWMChannel(void* digital_port_pointer);
|
||||
|
||||
void setPWM(void* digital_port_pointer, unsigned short value, int32_t* status);
|
||||
bool allocatePWMChannel(void* digital_port_pointer, int32_t* status);
|
||||
void freePWMChannel(void* digital_port_pointer, int32_t* status);
|
||||
unsigned short getPWM(void* digital_port_pointer, int32_t* status);
|
||||
void latchPWMZero(void* digital_port_pointer, int32_t* status);
|
||||
void setPWMPeriodScale(void* digital_port_pointer, uint32_t squelchMask,
|
||||
int32_t* status);
|
||||
uint16_t getLoopTiming(int32_t* status);
|
||||
}
|
||||
11
hal/include/HAL/Relay.h
Normal file
11
hal/include/HAL/Relay.h
Normal file
@@ -0,0 +1,11 @@
|
||||
#pragma once
|
||||
#include <stdint.h>
|
||||
|
||||
extern "C" {
|
||||
bool checkRelayChannel(void* digital_port_pointer);
|
||||
|
||||
void setRelayForward(void* digital_port_pointer, bool on, int32_t* status);
|
||||
void setRelayReverse(void* digital_port_pointer, bool on, int32_t* status);
|
||||
bool getRelayForward(void* digital_port_pointer, int32_t* status);
|
||||
bool getRelayReverse(void* digital_port_pointer, int32_t* status);
|
||||
}
|
||||
38
hal/include/HAL/SPI.h
Normal file
38
hal/include/HAL/SPI.h
Normal file
@@ -0,0 +1,38 @@
|
||||
#pragma once
|
||||
#include <stdint.h>
|
||||
|
||||
#include "HAL/cpp/priority_mutex.h"
|
||||
|
||||
priority_recursive_mutex& spiGetSemaphore(uint8_t port);
|
||||
|
||||
extern "C" {
|
||||
void spiInitialize(uint8_t port, int32_t* status);
|
||||
int32_t spiTransaction(uint8_t port, uint8_t* dataToSend, uint8_t* dataReceived,
|
||||
uint8_t size);
|
||||
int32_t spiWrite(uint8_t port, uint8_t* dataToSend, uint8_t sendSize);
|
||||
int32_t spiRead(uint8_t port, uint8_t* buffer, uint8_t count);
|
||||
void spiClose(uint8_t port);
|
||||
void spiSetSpeed(uint8_t port, uint32_t speed);
|
||||
void spiSetOpts(uint8_t port, int msb_first, int sample_on_trailing,
|
||||
int clk_idle_high);
|
||||
void spiSetChipSelectActiveHigh(uint8_t port, int32_t* status);
|
||||
void spiSetChipSelectActiveLow(uint8_t port, int32_t* status);
|
||||
int32_t spiGetHandle(uint8_t port);
|
||||
void spiSetHandle(uint8_t port, int32_t handle);
|
||||
|
||||
void spiInitAccumulator(uint8_t port, uint32_t period, uint32_t cmd,
|
||||
uint8_t xfer_size, uint32_t valid_mask,
|
||||
uint32_t valid_value, uint8_t data_shift,
|
||||
uint8_t data_size, bool is_signed, bool big_endian,
|
||||
int32_t* status);
|
||||
void spiFreeAccumulator(uint8_t port, int32_t* status);
|
||||
void spiResetAccumulator(uint8_t port, int32_t* status);
|
||||
void spiSetAccumulatorCenter(uint8_t port, int32_t center, int32_t* status);
|
||||
void spiSetAccumulatorDeadband(uint8_t port, int32_t deadband, int32_t* status);
|
||||
int32_t spiGetAccumulatorLastValue(uint8_t port, int32_t* status);
|
||||
int64_t spiGetAccumulatorValue(uint8_t port, int32_t* status);
|
||||
uint32_t spiGetAccumulatorCount(uint8_t port, int32_t* status);
|
||||
double spiGetAccumulatorAverage(uint8_t port, int32_t* status);
|
||||
void spiGetAccumulatorOutput(uint8_t port, int64_t* value, uint32_t* count,
|
||||
int32_t* status);
|
||||
}
|
||||
20
hal/include/HAL/SPIAccumulator.h
Normal file
20
hal/include/HAL/SPIAccumulator.h
Normal file
@@ -0,0 +1,20 @@
|
||||
#pragma once
|
||||
#include <stdint.h>
|
||||
|
||||
extern "C" {
|
||||
void spiInitAccumulator(uint8_t port, uint32_t period, uint32_t cmd,
|
||||
uint8_t xfer_size, uint32_t valid_mask,
|
||||
uint32_t valid_value, uint8_t data_shift,
|
||||
uint8_t data_size, bool is_signed, bool big_endian,
|
||||
int32_t* status);
|
||||
void spiFreeAccumulator(uint8_t port, int32_t* status);
|
||||
void spiResetAccumulator(uint8_t port, int32_t* status);
|
||||
void spiSetAccumulatorCenter(uint8_t port, int32_t center, int32_t* status);
|
||||
void spiSetAccumulatorDeadband(uint8_t port, int32_t deadband, int32_t* status);
|
||||
int32_t spiGetAccumulatorLastValue(uint8_t port, int32_t* status);
|
||||
int64_t spiGetAccumulatorValue(uint8_t port, int32_t* status);
|
||||
uint32_t spiGetAccumulatorCount(uint8_t port, int32_t* status);
|
||||
double spiGetAccumulatorAverage(uint8_t port, int32_t* status);
|
||||
void spiGetAccumulatorOutput(uint8_t port, int64_t* value, uint32_t* count,
|
||||
int32_t* status);
|
||||
}
|
||||
@@ -5,7 +5,10 @@
|
||||
/* the project. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#include "HAL/Analog.h"
|
||||
#include "HAL/AnalogAccumulator.h"
|
||||
#include "HAL/AnalogInput.h"
|
||||
#include "HAL/AnalogOutput.h"
|
||||
#include "HAL/AnalogTrigger.h"
|
||||
|
||||
#include "ChipObject.h"
|
||||
#include "FRC_NetworkCommunication/AICalibration.h"
|
||||
|
||||
@@ -5,7 +5,14 @@
|
||||
/* the project. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#include "HAL/Digital.h"
|
||||
#include "HAL/Counter.h"
|
||||
#include "HAL/DIO.h"
|
||||
#include "HAL/Encoder.h"
|
||||
#include "HAL/I2C.h"
|
||||
#include "HAL/PWM.h"
|
||||
#include "HAL/Relay.h"
|
||||
#include "HAL/SPI.h"
|
||||
#include "HAL/SPIAccumulator.h"
|
||||
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#include "I2C.h"
|
||||
#include "HAL/Digital.h"
|
||||
#include "HAL/HAL.h"
|
||||
#include "WPIErrors.h"
|
||||
|
||||
|
||||
@@ -6,8 +6,7 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#include "SPI.h"
|
||||
|
||||
#include "HAL/Digital.h"
|
||||
#include "HAL/HAL.h"
|
||||
#include "WPIErrors.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
@@ -11,7 +11,10 @@
|
||||
|
||||
#include "edu_wpi_first_wpilibj_hal_AnalogJNI.h"
|
||||
|
||||
#include "HAL/Analog.h"
|
||||
#include "HAL/AnalogInput.h"
|
||||
#include "HAL/AnalogOutput.h"
|
||||
#include "HAL/AnalogAccumulator.h"
|
||||
#include "HAL/AnalogTrigger.h"
|
||||
#include "HALUtil.h"
|
||||
|
||||
// set the logging level
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
#include "edu_wpi_first_wpilibj_hal_CounterJNI.h"
|
||||
|
||||
#include "HAL/Digital.h"
|
||||
#include "HAL/Counter.h"
|
||||
#include "HAL/Errors.h"
|
||||
#include "HALUtil.h"
|
||||
|
||||
|
||||
@@ -11,7 +11,8 @@
|
||||
|
||||
#include "edu_wpi_first_wpilibj_hal_DIOJNI.h"
|
||||
|
||||
#include "HAL/Digital.h"
|
||||
#include "HAL/DIO.h"
|
||||
#include "HAL/PWM.h"
|
||||
#include "HALUtil.h"
|
||||
|
||||
// set the logging level
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
#include "edu_wpi_first_wpilibj_hal_EncoderJNI.h"
|
||||
|
||||
#include "HAL/Digital.h"
|
||||
#include "HAL/Encoder.h"
|
||||
#include "HAL/Errors.h"
|
||||
#include "HALUtil.h"
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
#include "edu_wpi_first_wpilibj_hal_I2CJNI.h"
|
||||
|
||||
#include "HAL/Digital.h"
|
||||
#include "HAL/I2C.h"
|
||||
#include "HALUtil.h"
|
||||
|
||||
// set the logging level
|
||||
|
||||
@@ -11,7 +11,8 @@
|
||||
|
||||
#include "edu_wpi_first_wpilibj_hal_PWMJNI.h"
|
||||
|
||||
#include "HAL/Digital.h"
|
||||
#include "HAL/DIO.h"
|
||||
#include "HAL/PWM.h"
|
||||
#include "HALUtil.h"
|
||||
|
||||
// set the logging level
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
#include "edu_wpi_first_wpilibj_hal_RelayJNI.h"
|
||||
|
||||
#include "HAL/Digital.h"
|
||||
#include "HAL/Relay.h"
|
||||
#include "HALUtil.h"
|
||||
|
||||
// set the logging level
|
||||
|
||||
@@ -11,7 +11,8 @@
|
||||
|
||||
#include "edu_wpi_first_wpilibj_hal_SPIJNI.h"
|
||||
|
||||
#include "HAL/Digital.h"
|
||||
#include "HAL/SPI.h"
|
||||
#include "HAL/SPIAccumulator.h"
|
||||
#include "HALUtil.h"
|
||||
|
||||
// set the logging level
|
||||
|
||||
Reference in New Issue
Block a user