source: arduino-1-6-7/trunk/fuentes/arduino-ide-amd64/libraries/Bridge/examples/FileWriteScript/FileWriteScript.ino @ 46

Last change on this file since 46 was 46, checked in by jrpelegrina, 4 years ago

First release to Xenial

File size: 2.3 KB
Line 
1/*
2  Write to file using FileIO classes.
3
4 This sketch demonstrate how to write file into the Yún filesystem.
5 A shell script file is created in /tmp, and it is executed afterwards.
6
7 created 7 June 2010
8 by Cristian Maglie
9
10 This example code is in the public domain.
11
12 http://www.arduino.cc/en/Tutorial/FileWriteScript
13
14 */
15
16#include <FileIO.h>
17
18void setup() {
19  // Setup Bridge (needed every time we communicate with the Arduino Yún)
20  Bridge.begin();
21  // Initialize the Serial
22  Serial.begin(9600);
23
24  while (!Serial); // wait for Serial port to connect.
25  Serial.println("File Write Script example\n\n");
26
27  // Setup File IO
28  FileSystem.begin();
29
30  // Upload script used to gain network statistics
31  uploadScript();
32}
33
34void loop() {
35  // Run stats script every 5 secs.
36  runScript();
37  delay(5000);
38}
39
40// this function creates a file into the linux processor that contains a shell script
41// to check the network traffic of the WiFi interface
42void uploadScript() {
43  // Write our shell script in /tmp
44  // Using /tmp stores the script in RAM this way we can preserve
45  // the limited amount of FLASH erase/write cycles
46  File script = FileSystem.open("/tmp/wlan-stats.sh", FILE_WRITE);
47  // Shell script header
48  script.print("#!/bin/sh\n");
49  // shell commands:
50  // ifconfig: is a command line utility for controlling the network interfaces.
51  //           wlan0 is the interface we want to query
52  // grep: search inside the output of the ifconfig command the "RX bytes" keyword
53  //       and extract the line that contains it
54  script.print("ifconfig wlan0 | grep 'RX bytes'\n");
55  script.close();  // close the file
56
57  // Make the script executable
58  Process chmod;
59  chmod.begin("chmod");      // chmod: change mode
60  chmod.addParameter("+x");  // x stays for executable
61  chmod.addParameter("/tmp/wlan-stats.sh");  // path to the file to make it executable
62  chmod.run();
63}
64
65
66// this function run the script and read the output data
67void runScript() {
68  // Run the script and show results on the Serial
69  Process myscript;
70  myscript.begin("/tmp/wlan-stats.sh");
71  myscript.run();
72
73  String output = "";
74
75  // read the output of the script
76  while (myscript.available()) {
77    output += (char)myscript.read();
78  }
79  // remove the blank spaces at the beginning and the ending of the string
80  output.trim();
81  Serial.println(output);
82  Serial.flush();
83}
84
Note: See TracBrowser for help on using the repository browser.