mirror of
https://github.com/bdring/Grbl_Esp32.git
synced 2025-09-02 19:02:35 +02:00
Report attributes in pin names
This commit is contained in:
@@ -57,7 +57,7 @@ namespace Pins {
|
|||||||
void attachInterrupt(void (*callback)(void*), void* arg, int mode) override;
|
void attachInterrupt(void (*callback)(void*), void* arg, int mode) override;
|
||||||
void detachInterrupt() override;
|
void detachInterrupt() override;
|
||||||
|
|
||||||
String toString() const override { return _implementation->toString(); }
|
String toString() override { return _implementation->toString(); }
|
||||||
|
|
||||||
~DebugPinDetail() override {}
|
~DebugPinDetail() override {}
|
||||||
};
|
};
|
||||||
|
@@ -30,5 +30,5 @@ namespace Pins {
|
|||||||
}
|
}
|
||||||
PinAttributes ErrorPinDetail::getAttr() const { return PinAttributes::None; }
|
PinAttributes ErrorPinDetail::getAttr() const { return PinAttributes::None; }
|
||||||
|
|
||||||
String ErrorPinDetail::toString() const { return "ERROR_PIN"; }
|
String ErrorPinDetail::toString() { return "ERROR_PIN"; }
|
||||||
}
|
}
|
||||||
|
@@ -34,7 +34,7 @@ namespace Pins {
|
|||||||
void setAttr(PinAttributes value) override;
|
void setAttr(PinAttributes value) override;
|
||||||
PinAttributes getAttr() const override;
|
PinAttributes getAttr() const override;
|
||||||
|
|
||||||
String toString() const override;
|
String toString() override;
|
||||||
|
|
||||||
~ErrorPinDetail() override {}
|
~ErrorPinDetail() override {}
|
||||||
};
|
};
|
||||||
|
@@ -119,12 +119,8 @@ namespace Pins {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update the R/W mask for ActiveLow setting
|
// readWriteMask is xor'ed with the value to invert it if active low
|
||||||
if (_attributes.has(PinAttributes::ActiveLow)) {
|
_readWriteMask = _attributes.has(PinAttributes::ActiveLow);
|
||||||
_readWriteMask = HIGH;
|
|
||||||
} else {
|
|
||||||
_readWriteMask = LOW;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PinAttributes GPIOPinDetail::getAttr() const { return _attributes; }
|
PinAttributes GPIOPinDetail::getAttr() const { return _attributes; }
|
||||||
@@ -172,11 +168,7 @@ namespace Pins {
|
|||||||
|
|
||||||
// If the pin is ActiveLow, we should take that into account here:
|
// If the pin is ActiveLow, we should take that into account here:
|
||||||
if (value.has(PinAttributes::Output)) {
|
if (value.has(PinAttributes::Output)) {
|
||||||
if (value.has(PinAttributes::InitialOn)) {
|
__digitalWrite(_index, value.has(PinAttributes::InitialOn) ^ _readWriteMask);
|
||||||
__digitalWrite(_index, HIGH ^ _readWriteMask);
|
|
||||||
} else {
|
|
||||||
__digitalWrite(_index, LOW ^ _readWriteMask);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
__pinMode(_index, pinModeValue);
|
__pinMode(_index, pinModeValue);
|
||||||
@@ -194,5 +186,18 @@ namespace Pins {
|
|||||||
::detachInterrupt(_index);
|
::detachInterrupt(_index);
|
||||||
}
|
}
|
||||||
|
|
||||||
String GPIOPinDetail::toString() const { return String("GPIO.") + int(_index); }
|
String GPIOPinDetail::toString() {
|
||||||
|
auto s = String("gpio.") + int(_index);
|
||||||
|
if (_attributes.has(PinAttributes::ActiveLow)) {
|
||||||
|
s += ":low";
|
||||||
|
}
|
||||||
|
if (_attributes.has(PinAttributes::PullUp)) {
|
||||||
|
s += ":pu";
|
||||||
|
}
|
||||||
|
if (_attributes.has(PinAttributes::PullDown)) {
|
||||||
|
s += ":pd";
|
||||||
|
}
|
||||||
|
|
||||||
|
return s;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -43,7 +43,7 @@ namespace Pins {
|
|||||||
void attachInterrupt(void (*callback)(void*), void* arg, int mode) override;
|
void attachInterrupt(void (*callback)(void*), void* arg, int mode) override;
|
||||||
void detachInterrupt() override;
|
void detachInterrupt() override;
|
||||||
|
|
||||||
String toString() const override;
|
String toString() override;
|
||||||
|
|
||||||
~GPIOPinDetail() override {}
|
~GPIOPinDetail() override {}
|
||||||
};
|
};
|
||||||
|
@@ -39,12 +39,8 @@ namespace Pins {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update the R/W mask for ActiveLow setting
|
// readWriteMask is xor'ed with the value to invert it if active low
|
||||||
if (_attributes.has(PinAttributes::ActiveLow)) {
|
_readWriteMask = _attributes.has(PinAttributes::ActiveLow);
|
||||||
_readWriteMask = HIGH;
|
|
||||||
} else {
|
|
||||||
_readWriteMask = LOW;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PinCapabilities I2SOPinDetail::capabilities() const { return PinCapabilities::Output | PinCapabilities::I2S; }
|
PinCapabilities I2SOPinDetail::capabilities() const { return PinCapabilities::Output | PinCapabilities::I2S; }
|
||||||
@@ -72,16 +68,18 @@ namespace Pins {
|
|||||||
// just check for conflicts above...
|
// just check for conflicts above...
|
||||||
|
|
||||||
// If the pin is ActiveLow, we should take that into account here:
|
// If the pin is ActiveLow, we should take that into account here:
|
||||||
if (value.has(PinAttributes::InitialOn)) {
|
i2s_out_write(_index, value.has(PinAttributes::InitialOn) ^ _readWriteMask);
|
||||||
i2s_out_write(_index, HIGH ^ _readWriteMask);
|
|
||||||
} else {
|
|
||||||
i2s_out_write(_index, LOW ^ _readWriteMask);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PinAttributes I2SOPinDetail::getAttr() const { return _attributes; }
|
PinAttributes I2SOPinDetail::getAttr() const { return _attributes; }
|
||||||
|
|
||||||
String I2SOPinDetail::toString() const { return String("I2SO.") + int(_index); }
|
String I2SOPinDetail::toString() {
|
||||||
|
auto s = String("I2SO.") + int(_index);
|
||||||
|
if (_attributes.has(PinAttributes::ActiveLow)) {
|
||||||
|
s += ":low";
|
||||||
|
}
|
||||||
|
return s;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -38,7 +38,7 @@ namespace Pins {
|
|||||||
void setAttr(PinAttributes value) override;
|
void setAttr(PinAttributes value) override;
|
||||||
PinAttributes getAttr() const override;
|
PinAttributes getAttr() const override;
|
||||||
|
|
||||||
String toString() const override;
|
String toString() override;
|
||||||
|
|
||||||
~I2SOPinDetail() override {}
|
~I2SOPinDetail() override {}
|
||||||
};
|
};
|
||||||
|
@@ -52,7 +52,7 @@ namespace Pins {
|
|||||||
virtual void attachInterrupt(void (*callback)(void*), void* arg, int mode);
|
virtual void attachInterrupt(void (*callback)(void*), void* arg, int mode);
|
||||||
virtual void detachInterrupt();
|
virtual void detachInterrupt();
|
||||||
|
|
||||||
virtual String toString() const = 0;
|
virtual String toString() = 0;
|
||||||
|
|
||||||
inline int number() const { return _index; }
|
inline int number() const { return _index; }
|
||||||
|
|
||||||
|
@@ -32,6 +32,6 @@ namespace Pins {
|
|||||||
void VoidPinDetail::setAttr(PinAttributes value) {}
|
void VoidPinDetail::setAttr(PinAttributes value) {}
|
||||||
PinAttributes VoidPinDetail::getAttr() const { return PinAttributes::None; }
|
PinAttributes VoidPinDetail::getAttr() const { return PinAttributes::None; }
|
||||||
|
|
||||||
String VoidPinDetail::toString() const { return ""; }
|
String VoidPinDetail::toString() { return ""; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -35,7 +35,7 @@ namespace Pins {
|
|||||||
void setAttr(PinAttributes value) override;
|
void setAttr(PinAttributes value) override;
|
||||||
PinAttributes getAttr() const override;
|
PinAttributes getAttr() const override;
|
||||||
|
|
||||||
String toString() const override;
|
String toString() override;
|
||||||
|
|
||||||
~VoidPinDetail() override {}
|
~VoidPinDetail() override {}
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user