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:
parent
f0b3f5dc16
commit
aa7cf84e2d
@ -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
|
||||||
|
@ -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:
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user