mirror of
https://github.com/DCC-EX/CommandStation-EX.git
synced 2024-11-26 17:46:14 +01:00
Logic added and working
This commit is contained in:
parent
de4954ca3e
commit
22e20f9092
|
@ -90,6 +90,8 @@ private:
|
||||||
_majorVer = _versionBuffer[0];
|
_majorVer = _versionBuffer[0];
|
||||||
_minorVer = _versionBuffer[1];
|
_minorVer = _versionBuffer[1];
|
||||||
_patchVer = _versionBuffer[2];
|
_patchVer = _versionBuffer[2];
|
||||||
|
DIAG(F("EX-IOExpander device found, I2C:x%x, Version v%d.%d.%d"),
|
||||||
|
_i2cAddress, _versionBuffer[0], _versionBuffer[1], _versionBuffer[2]);
|
||||||
#ifdef DIAG_IO
|
#ifdef DIAG_IO
|
||||||
_display();
|
_display();
|
||||||
#endif
|
#endif
|
||||||
|
@ -102,6 +104,10 @@ private:
|
||||||
bool _configure(VPIN vpin, ConfigTypeEnum configType, int paramCount, int params[]) override {
|
bool _configure(VPIN vpin, ConfigTypeEnum configType, int paramCount, int params[]) override {
|
||||||
if (configType != CONFIGURE_INPUT) return false;
|
if (configType != CONFIGURE_INPUT) return false;
|
||||||
if (paramCount != 1) return false;
|
if (paramCount != 1) return false;
|
||||||
|
if (vpin >= _firstVpin + _numDigitalPins) {
|
||||||
|
DIAG(F("Vpin %d is an analogue pin, cannot use as a digital pin"), vpin);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
bool pullup = params[0];
|
bool pullup = params[0];
|
||||||
int pin = vpin - _firstVpin;
|
int pin = vpin - _firstVpin;
|
||||||
_digitalOutBuffer[0] = EXIODPUP;
|
_digitalOutBuffer[0] = EXIODPUP;
|
||||||
|
@ -112,6 +118,10 @@ private:
|
||||||
}
|
}
|
||||||
|
|
||||||
int _readAnalogue(VPIN vpin) override {
|
int _readAnalogue(VPIN vpin) override {
|
||||||
|
if (vpin < _firstVpin + _numDigitalPins) {
|
||||||
|
DIAG(F("Vpin %d is a digital pin, cannot use as an analogue pin"), vpin);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
int pin = vpin - _firstVpin;
|
int pin = vpin - _firstVpin;
|
||||||
_analogueOutBuffer[0] = EXIORDAN;
|
_analogueOutBuffer[0] = EXIORDAN;
|
||||||
_analogueOutBuffer[1] = pin;
|
_analogueOutBuffer[1] = pin;
|
||||||
|
@ -120,6 +130,10 @@ private:
|
||||||
}
|
}
|
||||||
|
|
||||||
int _read(VPIN vpin) override {
|
int _read(VPIN vpin) override {
|
||||||
|
if (vpin >= _firstVpin + _numDigitalPins) {
|
||||||
|
DIAG(F("Vpin %d is an analogue pin, cannot use as a digital pin"), vpin);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
int pin = vpin - _firstVpin;
|
int pin = vpin - _firstVpin;
|
||||||
_digitalOutBuffer[0] = EXIORDD;
|
_digitalOutBuffer[0] = EXIORDD;
|
||||||
_digitalOutBuffer[1] = pin;
|
_digitalOutBuffer[1] = pin;
|
||||||
|
@ -129,6 +143,10 @@ private:
|
||||||
}
|
}
|
||||||
|
|
||||||
void _write(VPIN vpin, int value) override {
|
void _write(VPIN vpin, int value) override {
|
||||||
|
if (vpin >= _firstVpin + _numDigitalPins) {
|
||||||
|
DIAG(F("Vpin %d is an analogue pin, cannot use as a digital pin"), vpin);
|
||||||
|
return;
|
||||||
|
}
|
||||||
int pin = vpin - _firstVpin;
|
int pin = vpin - _firstVpin;
|
||||||
_digitalOutBuffer[0] = EXIOWRD;
|
_digitalOutBuffer[0] = EXIOWRD;
|
||||||
_digitalOutBuffer[1] = pin;
|
_digitalOutBuffer[1] = pin;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user