mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
* Replaced include guards with #pragma once * All source files now have exactly one newline appended Some files had either two newlines at the end or none (which isn't POSIX compliant). This patch fixes that.
63 lines
1.9 KiB
C++
63 lines
1.9 KiB
C++
/*----------------------------------------------------------------------------*/
|
|
/* Copyright (c) FIRST 2014-2016. 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 the root directory of */
|
|
/* the project. */
|
|
/*----------------------------------------------------------------------------*/
|
|
|
|
#pragma once
|
|
|
|
#include <memory>
|
|
|
|
#include "LiveWindow/LiveWindowSendable.h"
|
|
#include "SensorBase.h"
|
|
#include "tables/ITableListener.h"
|
|
|
|
/**
|
|
* PCM compressor
|
|
*/
|
|
class Compressor : public SensorBase,
|
|
public LiveWindowSendable,
|
|
public ITableListener {
|
|
public:
|
|
// Default PCM ID is 0
|
|
explicit Compressor(uint8_t pcmID = GetDefaultSolenoidModule());
|
|
virtual ~Compressor() = default;
|
|
|
|
void Start();
|
|
void Stop();
|
|
bool Enabled() const;
|
|
|
|
bool GetPressureSwitchValue() const;
|
|
|
|
float GetCompressorCurrent() const;
|
|
|
|
void SetClosedLoopControl(bool on);
|
|
bool GetClosedLoopControl() const;
|
|
|
|
bool GetCompressorCurrentTooHighFault() const;
|
|
bool GetCompressorCurrentTooHighStickyFault() const;
|
|
bool GetCompressorShortedStickyFault() const;
|
|
bool GetCompressorShortedFault() const;
|
|
bool GetCompressorNotConnectedStickyFault() const;
|
|
bool GetCompressorNotConnectedFault() const;
|
|
void ClearAllPCMStickyFaults();
|
|
|
|
void UpdateTable() override;
|
|
void StartLiveWindowMode() override;
|
|
void StopLiveWindowMode() override;
|
|
std::string GetSmartDashboardType() const override;
|
|
void InitTable(std::shared_ptr<ITable> subTable) override;
|
|
std::shared_ptr<ITable> GetTable() const override;
|
|
void ValueChanged(ITable* source, llvm::StringRef key,
|
|
std::shared_ptr<nt::Value> value, bool isNew) override;
|
|
|
|
protected:
|
|
void* m_pcm_pointer;
|
|
|
|
private:
|
|
void SetCompressor(bool on);
|
|
|
|
std::shared_ptr<ITable> m_table;
|
|
};
|