1
0
mirror of https://github.com/DCC-EX/CommandStation-EX.git synced 2025-04-21 12:31:19 +02:00

save current

This commit is contained in:
travis-farmer 2024-12-18 11:06:30 -05:00
parent f0b3f5dc16
commit aa7cf84e2d
No known key found for this signature in database
GPG Key ID: 0BC296791D14CB35
2 changed files with 14 additions and 13 deletions

View File

@ -246,11 +246,12 @@ void taskBuffer::parseOne(uint8_t *buf) {
************************************************************/ ************************************************************/
// Constructor for RSproto // Constructor for RSproto
RSproto::RSproto(uint8_t busNo, HardwareSerial &serial, unsigned long baud, int8_t txPin) { RSproto::RSproto(uint8_t busNo, HardwareSerial &serial, unsigned long baud, int8_t txPin, int cycleTime) {
_serial = &serial; _serial = &serial;
_baud = baud; _baud = baud;
_txPin = txPin; _txPin = txPin;
_busNo = busNo; _busNo = busNo;
_cycleTime = cycleTime;
task->init(serial, baud, txPin); task->init(serial, baud, txPin);
if (_waitA < 3) _waitA = 3; if (_waitA < 3) _waitA = 3;
// Add device to HAL device chain // Add device to HAL device chain
@ -275,8 +276,8 @@ void RSproto::_loop(unsigned long currentMicros) {
//} //}
//if (_currentMicros - _cycleStartTime < _cycleTime) return; if (_currentMicros - _cycleStartTime < _cycleTime) return;
//_cycleStartTime = _currentMicros; _cycleStartTime = _currentMicros;
//if (_currentNode == NULL) return; //if (_currentNode == NULL) return;
task->loop(); task->loop();
@ -322,7 +323,7 @@ bool RSprotonode::_configure(VPIN vpin, ConfigTypeEnum configType, int paramCoun
uint8_t pullup = (uint8_t)params[0]; uint8_t pullup = (uint8_t)params[0];
char buff[25]; char buff[25];
sprintf(buff, "<%i %i %i %i %i>", _nodeID, 0, EXIODPUP, pin, pullup); sprintf(buff, "<5|%i %i %i %i %i>", _nodeID, 0, EXIODPUP, pin, pullup);
unsigned long startMillis = millis(); unsigned long startMillis = millis();
task->doCommand(buff,_nodeID); task->doCommand(buff,_nodeID);
while (resFlag == 0 && millis() - startMillis < 500); // blocking for now while (resFlag == 0 && millis() - startMillis < 500); // blocking for now
@ -338,7 +339,7 @@ bool RSprotonode::_configure(VPIN vpin, ConfigTypeEnum configType, int paramCoun
int pin = vpin - _firstVpin; int pin = vpin - _firstVpin;
//RSproto *mainrs = RSproto::findBus(_busNo); //RSproto *mainrs = RSproto::findBus(_busNo);
char buff[25]; char buff[25];
sprintf(buff, "<%i %i %i %i %i %i>", _nodeID, 0, EXIOENAN, pin, _firstVpin); sprintf(buff, "<6|%i %i %i %i %i %i>", _nodeID, 0, EXIOENAN, pin, _firstVpin);
unsigned long startMillis = millis(); unsigned long startMillis = millis();
task->doCommand(buff, _nodeID); task->doCommand(buff, _nodeID);
while (resFlag == 0 && millis() - startMillis < 500); // blocking for now while (resFlag == 0 && millis() - startMillis < 500); // blocking for now
@ -352,7 +353,7 @@ bool RSprotonode::_configure(VPIN vpin, ConfigTypeEnum configType, int paramCoun
void RSprotonode::_begin() { void RSprotonode::_begin() {
char buff[25]; char buff[25];
sprintf(buff, "<%i %i %i %i %i %i %i>", _nodeID, 0, EXIOINIT, _nPins, (_firstVpin & 0xFF), (_firstVpin >> 8)); sprintf(buff, "<6|%i %i %i %i %i %i>", _nodeID, 0, EXIOINIT, _nPins, (_firstVpin & 0xFF), (_firstVpin >> 8));
unsigned long startMillis = millis(); unsigned long startMillis = millis();
task->doCommand(buff,_nodeID); task->doCommand(buff,_nodeID);
while (resFlag == 0 && millis() - startMillis < 1000); // blocking for now while (resFlag == 0 && millis() - startMillis < 1000); // blocking for now
@ -360,7 +361,7 @@ void RSprotonode::_begin() {
DIAG(F("EX-IOExpander485 Node:%d ERROR EXIOINIT"), _nodeID); DIAG(F("EX-IOExpander485 Node:%d ERROR EXIOINIT"), _nodeID);
} }
resFlag = 0; resFlag = 0;
sprintf(buff, "<%i %i %i>", _nodeID, 0, EXIOINITA); sprintf(buff, "<3|%i %i %i>", _nodeID, 0, EXIOINITA);
startMillis = millis(); startMillis = millis();
task->doCommand(buff,_nodeID); task->doCommand(buff,_nodeID);
while (resFlag == 0 && millis() - startMillis < 1000); // blocking for now while (resFlag == 0 && millis() - startMillis < 1000); // blocking for now
@ -368,7 +369,7 @@ void RSprotonode::_begin() {
DIAG(F("EX-IOExpander485 Node:%d ERROR EXIOINITA"), _nodeID); DIAG(F("EX-IOExpander485 Node:%d ERROR EXIOINITA"), _nodeID);
} }
resFlag = 0; resFlag = 0;
sprintf(buff, "<%i %i %i>", _nodeID, 0, EXIOVER); sprintf(buff, "<3|%i %i %i>", _nodeID, 0, EXIOVER);
startMillis = millis(); startMillis = millis();
task->doCommand(buff,_nodeID); task->doCommand(buff,_nodeID);
while (resFlag == 0 && millis() - startMillis < 1000); // blocking for now while (resFlag == 0 && millis() - startMillis < 1000); // blocking for now
@ -394,7 +395,7 @@ void RSprotonode::_write(VPIN vpin, int value) {
if (_deviceState == DEVSTATE_FAILED) return; if (_deviceState == DEVSTATE_FAILED) return;
int pin = vpin - _firstVpin; int pin = vpin - _firstVpin;
char buff[25]; char buff[25];
sprintf(buff, "<%i %i %i %i %i>", _nodeID, 0, EXIOWRD, pin, value); sprintf(buff, "<5|%i %i %i %i %i>", _nodeID, 0, EXIOWRD, pin, value);
unsigned long startMillis = millis(); unsigned long startMillis = millis();
task->doCommand(buff,_nodeID); task->doCommand(buff,_nodeID);
while (resFlag == 0 && millis() - startMillis < 500); // blocking for now while (resFlag == 0 && millis() - startMillis < 500); // blocking for now
@ -420,7 +421,7 @@ void RSprotonode::_write(VPIN vpin, int value) {
void RSprotonode::_writeAnalogue(VPIN vpin, int value, uint8_t profile, uint16_t duration) { void RSprotonode::_writeAnalogue(VPIN vpin, int value, uint8_t profile, uint16_t duration) {
int pin = vpin - _firstVpin; int pin = vpin - _firstVpin;
char buff[25]; char buff[25];
sprintf(buff, "<%i %i %i %i %i %i %i>", _nodeID, 0, EXIOWRAN, pin, value, profile, duration); sprintf(buff, "<7|%i %i %i %i %i %i %i>", _nodeID, 0, EXIOWRAN, pin, value, profile, duration);
unsigned long startMillis = millis(); unsigned long startMillis = millis();
task->doCommand(buff,_nodeID); task->doCommand(buff,_nodeID);
while (resFlag == 0 && millis() - startMillis < 500); // blocking for now while (resFlag == 0 && millis() - startMillis < 500); // blocking for now

View File

@ -282,8 +282,8 @@ private:
} }
public: public:
static void create(uint8_t busNo, HardwareSerial &serial, unsigned long baud, int8_t txPin=-1) { static void create(uint8_t busNo, HardwareSerial &serial, unsigned long baud, int8_t txPin=-1, int cycleTime=500) {
new RSproto(busNo, serial, baud, txPin); new RSproto(busNo, serial, baud, txPin, cycleTime);
} }
HardwareSerial* _serial; HardwareSerial* _serial;
int _CommMode = 0; int _CommMode = 0;
@ -356,7 +356,7 @@ public:
} }
protected: protected:
RSproto(uint8_t busNo, HardwareSerial &serial, unsigned long baud, int8_t txPin); RSproto(uint8_t busNo, HardwareSerial &serial, unsigned long baud, int8_t txPin, int cycleTime);
public: public: