Bridge: now processes start can be checked for errors

This commit is contained in:
Cristian Maglie 2013-06-07 17:40:10 +02:00
parent 1dd2906435
commit da2b2264b3
4 changed files with 12 additions and 7 deletions

View File

@ -55,11 +55,12 @@ void BridgeClass::begin() {
transfer(cmd, 2);
}
uint8_t BridgeClass::runCommand(String &command) {
uint8_t BridgeClass::runCommand(String &command, uint8_t &err) {
uint8_t cmd[] = {'R'};
uint8_t res[1];
transfer(cmd, 1, (uint8_t*)command.c_str(), command.length(), res, 1);
return res[0];
uint8_t res[2];
transfer(cmd, 1, (uint8_t*)command.c_str(), command.length(), res, 2);
err = res[0];
return res[1];
}
bool BridgeClass::commandIsRunning(uint8_t handle) {

View File

@ -28,7 +28,7 @@ public:
void begin();
// Methods to handle processes on the linux side
uint8_t runCommand(String &command);
uint8_t runCommand(String &command, uint8_t &err);
bool commandIsRunning(uint8_t handle);
unsigned int commandExitValue(uint8_t handle);
void cleanCommand(uint8_t handle);

View File

@ -85,11 +85,13 @@ void Process::addParameter(String &param) {
}
void Process::runAsynchronously() {
handle = bridge.runCommand(*cmdline);
uint8_t err;
handle = bridge.runCommand(*cmdline, err);
delete cmdline;
cmdline = NULL;
started = true;
if (err==0)
started = true;
}
boolean Process::running() {

View File

@ -39,6 +39,8 @@ public:
unsigned int exitValue();
void close();
operator bool () { return started; }
// Stream methods
// (read from process stdout)
int available();