mirror of
https://github.com/arduino/Arduino.git
synced 2025-02-19 13:54:23 +01:00
Added Process.runShellCommand*() methods.
This commit is contained in:
parent
6b4f745d9a
commit
becadbf8cf
@ -118,6 +118,20 @@ void Process::close() {
|
||||
started = false;
|
||||
}
|
||||
|
||||
unsigned int Process::runShellCommand(const String &command) {
|
||||
runShellCommandAsynchronously(command);
|
||||
while (running())
|
||||
delay(100);
|
||||
return exitValue();
|
||||
}
|
||||
|
||||
void Process::runShellCommandAsynchronously(const String &command) {
|
||||
begin("/bin/ash");
|
||||
addParameter("-c");
|
||||
addParameter(command);
|
||||
runAsynchronously();
|
||||
}
|
||||
|
||||
// This method is currently unused
|
||||
//static unsigned int __commandOutputAvailable(uint8_t handle) {
|
||||
// uint8_t cmd[] = {'o', handle};
|
||||
|
@ -36,6 +36,9 @@ public:
|
||||
unsigned int exitValue();
|
||||
void close();
|
||||
|
||||
unsigned int runShellCommand(const String &command);
|
||||
void runShellCommandAsynchronously(const String &command);
|
||||
|
||||
operator bool () { return started; }
|
||||
|
||||
// Stream methods
|
||||
|
@ -0,0 +1,26 @@
|
||||
|
||||
/* Demonstrate shell commands */
|
||||
|
||||
#include <Process.h>
|
||||
|
||||
void setup() {
|
||||
Bridge.begin();
|
||||
Console.begin();
|
||||
Console.buffer(64);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
Process p;
|
||||
// This command line prints the number of bytes received and transmitted from WLAN
|
||||
p.runShellCommand(F("ifconfig wlan0 | grep \"RX bytes\" | tr ':' ' ' | awk \"{ print \\$3 \\\" \\\" \\$8 }\"\n"));
|
||||
|
||||
// Read command output
|
||||
while (p.available()) {
|
||||
char c = p.read();
|
||||
Console.print(c);
|
||||
}
|
||||
Console.flush();
|
||||
|
||||
delay(5000);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user