1
0
mirror of https://github.com/DCC-EX/CommandStation-EX.git synced 2024-11-24 00:26:13 +01:00

Current diags and no wire.available

This commit is contained in:
peteGSX 2024-01-17 08:26:07 +10:00
parent 5579a9aa49
commit 41befc99b1
2 changed files with 7 additions and 6 deletions

View File

@ -189,9 +189,11 @@ uint8_t I2CManagerClass::read(I2CAddress address, uint8_t readBuffer[], uint8_t
DIAG(F("NO timeout"));
Wire.requestFrom(address, (size_t)readSize);
DIAG(F("address=%x, nBytes=%d, readSize=%d"),address,nBytes,readSize);
while (Wire.available() && nBytes < readSize)
DIAG(F("Wire.available()=%d"),Wire.available());
// while (Wire.available() && nBytes < readSize)
while (nBytes < readSize)
readBuffer[nBytes++] = Wire.read();
DIAG(F("nBytes=%d,readBuffer[nBytes]=%d"),nBytes-1,readBuffer[nBytes-1]);
// DIAG(F("nBytes=%d,readBuffer[nBytes]=%d"),nBytes-1,readBuffer[nBytes-1]);
if (nBytes < readSize) status = I2C_STATUS_TRUNCATED;
DIAG(F("status=%d"),status);
#endif

View File

@ -213,7 +213,6 @@ private:
// Main loop, collect both digital and analogue pin states continuously (faster sensor/input reads)
void _loop(unsigned long currentMicros) override {
DIAG(F("EXIO _loop()"));
if (_deviceState == DEVSTATE_FAILED) return; // If device failed, return
// Request block is used for analogue and digital reads from the IOExpander, which are performed
@ -259,9 +258,9 @@ private:
} else if (currentMicros - _lastAnalogueRead > _analogueRefresh && _numAnaloguePins>0) { // Delay for analogue read refresh
// Issue new read for analogue input states
_readCommandBuffer[0] = EXIORDAN;
DIAG(F("EXIORDAN address=%x, aBuffer=%d, bytes=%d"),_I2CAddress,_analogueInputBuffer,_numAnaloguePins*2);
I2CManager.read(_I2CAddress, _analogueInputBuffer,
_numAnaloguePins * 2, _readCommandBuffer, 1, &_i2crb);
// DIAG(F("EXIORDAN address=%x, aBuffer=%d, bytes=%d"),_I2CAddress,_analogueInputBuffer,_numAnaloguePins*2);
// I2CManager.read(_I2CAddress, _analogueInputBuffer,
// _numAnaloguePins * 2, _readCommandBuffer, 1, &_i2crb);
_lastAnalogueRead = currentMicros;
_readState = RDS_ANALOGUE;
}