aboutsummaryrefslogtreecommitdiff
path: root/libraries/Bridge
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/Bridge')
-rw-r--r--libraries/Bridge/examples/FileWriteScript/FileWriteScript.ino53
-rw-r--r--libraries/Bridge/keywords.txt1
2 files changed, 35 insertions, 19 deletions
diff --git a/libraries/Bridge/examples/FileWriteScript/FileWriteScript.ino b/libraries/Bridge/examples/FileWriteScript/FileWriteScript.ino
index d5bbb26..f279de9 100644
--- a/libraries/Bridge/examples/FileWriteScript/FileWriteScript.ino
+++ b/libraries/Bridge/examples/FileWriteScript/FileWriteScript.ino
@@ -3,6 +3,9 @@
This sketch demonstrate how to write file into the Yún filesystem.
A shell script file is created in /tmp, and it is executed afterwards.
+
+ created 7 June 2010
+ by Cristian Maglie
*/
@@ -11,15 +14,14 @@
void setup() {
// Setup Bridge (needed every time we communicate with the Arduino Yún)
Bridge.begin();
-
- // Setup Console
- Console.begin();
- // Buffering improves Console performance, but we must remember to
- // finish sending using the Console.flush() command.
- Console.buffer(64);
+ // Initialize the Serial
+ Serial.begin(9600);
+
+ while(!Serial); // wait for Serial port to connect.
+ Serial.println("File Write Script example\n\n");
// Setup File IO
- SD.begin();
+ FileSystem.begin();
// Upload script used to gain network statistics
uploadScript();
@@ -31,35 +33,48 @@ void loop() {
delay(5000);
}
+// this function creates a file into the linux processor that contains a shell script
+// to check the network traffic of the WiFi interface
void uploadScript() {
// Write our shell script in /tmp
// Using /tmp stores the script in RAM this way we can preserve
// the limited amount of FLASH erase/write cycles
- File script = SD.open("/tmp/wlan-stats.sh", FILE_WRITE);
+ File script = FileSystem.open("/tmp/wlan-stats.sh", FILE_WRITE);
+ // Shell script header
script.print("#!/bin/sh\n");
- script.print("ifconfig wlan0 | grep \"RX bytes\" | tr ':' ' ' | awk \"{ print \\$3 \\\" \\\" \\$8 }\"\n");
- script.close();
+ // shell commands:
+ // ifconfig: is a command line utility for controlling the network interfaces.
+ // wlan0 is the interface we want to query
+ // grep: search inside the output of the ifconfig command the "RX bytes" keyword
+ // and extract the line that contains it
+ script.print("ifconfig wlan0 | grep 'RX bytes'\n");
+ script.close(); // close the file
// Make the script executable
Process chmod;
- chmod.begin("chmod");
- chmod.addParameter("+x");
- chmod.addParameter("/tmp/wlan-stats.sh");
+ chmod.begin("chmod"); // chmod: change mode
+ chmod.addParameter("+x"); // x stays for executable
+ chmod.addParameter("/tmp/wlan-stats.sh"); // path to the file to make it executable
chmod.run();
}
+
+// this function run the script and read the output data
void runScript() {
- // Launch script and show results on the console
+ // Run the script and show results on the Serial
Process myscript;
myscript.begin("/tmp/wlan-stats.sh");
myscript.run();
- Console.print("WiFi RX/TX bytes: ");
+ String output = "";
+
+ // read the output of the script
while (myscript.available()) {
- char c = myscript.read();
- Console.print(c);
+ output += (char)myscript.read();
}
- Console.println();
- Console.flush();
+ // remove the blank spaces at the beginning and the ending of the string
+ output.trim();
+ Serial.println(output);
+ Serial.flush();
}
diff --git a/libraries/Bridge/keywords.txt b/libraries/Bridge/keywords.txt
index faf0773..81b9391 100644
--- a/libraries/Bridge/keywords.txt
+++ b/libraries/Bridge/keywords.txt
@@ -8,6 +8,7 @@
Bridge KEYWORD3
FileIO KEYWORD3
+FileSystem KEYWORD3
Console KEYWORD3
Process KEYWORD3
MailBox KEYWORD3