libicsneo/include/icsneo/communication/io.h

47 lines
1.2 KiB
C++

#ifndef __ICSNEO_IO_H_
#define __ICSNEO_IO_H_
typedef struct _neomiscio_t {
size_t number;
bool supportsDigitalIn;
bool supportsDigitalOut;
bool supportsAnalogIn;
#ifdef __cplusplus
_neomiscio_t(size_t n, bool dIn = false, bool dOut = false, bool aIn = false)
: number(n), supportsDigitalIn(dIn), supportsDigitalOut(dOut), supportsAnalogIn(aIn) {}
#endif
} neomiscio_t;
#ifdef __cplusplus
namespace icsneo {
using MiscIO = neomiscio_t;
enum class IO {
EthernetActivation = 0, // The DoIP activation line, 0 is HiZ and 1 is pulled up to VBAT
USBHostPower = 1,
BackupPowerEnabled = 2, // The FIRE 2's backup super capacitor
BackupPowerGood = 3, // Whether or not the FIRE 2's backup super capacitor is charged (read only)
Misc = 4, // General purpose IO on the device
EMisc = 5, // Extended general purpose IO on the device
};
// Note that the C API does a static cast between this and neoio_t so keep them in sync!
}
#endif // __cplusplus
#ifdef __ICSNEOC_H_
typedef enum _neoio_t {
ICSNEO_IO_ETH_ACTIVATION = (0),
ICSNEO_IO_USB_HOST_POWER = (1),
ICSNEO_IO_BACKUP_POWER_EN = (2),
ICSNEO_IO_BACKUP_POWER_GOOD = (3),
ICSNEO_IO_MISC = (4),
ICSNEO_IO_EMISC = (5),
} neoio_t;
#endif
#endif