FileWriteScript

Bu örnek, YUn aygıtının dosya sistemine FileIO sınıflarını kullanan bir dosyaya yazar. / Tmp içinde bir kabuk komut dosyası oluşturulur ve daha sonra yürütülür.

Gerekli Donanım

  • Yún kartı veya kalkan

Devre

Bu örnek için devre yok.

Kod

Dosya sistemiyle iletişim kurmak için FileIO başlığını ekleyin.
#include < FileIO .h>

setup() Bridge, Seri iletişim ve FileSystem'ı başlatın . Etkin bir seri bağlantı bekleyin ve loop() başlatmadan önce dosyanızı yükleyecek özel bir işlev uploadScript() işlevini uploadScript() .

void setup() {
  Bridge.begin();
  Serial.begin(9600);

  while(!Serial);  // wait for Serial port to connect.
  Serial.println("File Write Script example\n\n");

  FileSystem.begin();

  uploadScript();
}
[Kodu Al]

loop() sadece 5 saniyede bir başka bir özel işlev olan runScript() çağırarak komut dosyanızı yürütür.

void loop ( ) {
runScript ( ) ;
gecikme ( 5000 ) ;
}

uploadScript() işleviniz Linux dosya sisteminde WiFi arabiriminin ağ trafiğini kontrol edecek bir kabuk betiği oluşturur. Dosyayı oluşturun ve File@ class, and calling bir örneğini oluşturarak ve komut dosyasını nerede oluşturmak istediğinizi belirten FileSystem .open () @@ öğesini File@ class, and calling açın. Sınırlı sayıda FLASH bellek okuma / yazma döngüsünü korumak için betiği RAM'de bulunan "/ tmp" içinde saklayacaksınız.

void uploadScript ( ) {
Dosya betiği = Dosya Sistemi. open ( "/tmp/wlan-stats.sh" , FILE_WRITE ) ;

Komut dosyasının içeriğini File.print() ile dosyaya File.print() . "#! / bin / s" başlığını, ardından ifconfig yardımcı programını yazdırarak başlayın. @ ifconfig @ ağ arabirimlerini kontrol etmek için kullanılan bir komut satırı yardımcı programıdır. "wlan0" olarak adlandırılan WiFi arayüzüne bakacaksınız. Yardımcı program grep , ifconfig çıktısını arar. Alınan bayt sayısını arıyorsunuz, bu nedenle "RX bayt" anahtar kelimelerini arayın ve dosyayı kapatın.

senaryo. print ( "#! / bin / sh \ n " ) ;
senaryo. print ( "ifconfig wlan0 | grep 'RX bayt' \ n " ) ;
senaryo. close ( ) ; // dosyayı kapat

Komut dosyasını yürütülebilir hale getirmek için bir İşlem başlatın. chmod@ is a command that will change the modes of files. By sending the Chmod @@ komutunu ve dosya yolunu chmod@ is a command that will change the modes of files. By sending the kabuk betiğinizin bir uygulama gibi çalışmasını sağlayabilirsiniz.

İşlem chmod ;
chmod. başlar ( "chmod" ) ; // chmod: modu değiştir
chmod. addParameter ( "+ x" ) ; // x çalıştırılabilir durumda kalır
chmod. addParameter ( "/tmp/wlan-stats.sh" ) ;
chmod. run ( ) ;
}

runScript() işlevi, komut dosyasını çalıştıran ve sonuçları Seri Monitöre yazdıran bir İşlem oluşturur. Adlandırılmış bir Process oluşturun ve Process.begin(filepath) ve Process.run() çağırarak komut dosyanızı başlatın.

void runScript ( ) {
İşlem myscript ;
myscript. başlar ( "/tmp/wlan-stats.sh" ) ;
myscript. run ( ) ;

Çıktıyı tutmak için bir dize oluşturun ve çıktıyı içine okuyun

String output = "" ;

while ( myscript. available ( ) ) {
output + = ( karakter ) myscript. read ( ) ;
}

Dizenin başındaki ve sonundaki boşlukları kaldırın ve seri monitöre yazdırın:

çıktı. trim ( ) ;
Seri . println ( çıktı ) ;
Seri . flush ( ) ;
}

Çizimin tamamı aşağıdadır:

/ *
FileIO sınıflarını kullanarak dosyaya yazın.

Bu çizim, YunShield / Yún dosya sistemine nasıl dosya yazılacağını göstermektedir.
/ Tmp içinde bir kabuk komut dosyası oluşturulur ve daha sonra yürütülür.

oluşturuldu 7 Haziran 2010
ile Cristian Maglie

Bu örnek kod kamu malıdır.

http: egitim.aspx e = FileWriteScript

* /


#include <FileIO.h>

void setup ( ) {
// Kurulum Köprüsü (Arduino Yún ile her iletişim kurduğumuzda gerekir)
Köprü. begin ( ) ;
// Seriyi Başlat
SerialUSB. başlar ( 9600 ) ;

süre ( ! SerialUSB ) ; // Seri bağlantı noktasının bağlanmasını bekleyin.
SerialUSB. println ( "Dosya Yazma Komut Dosyası örneği \ n \ n " ) ;

// Kurulum Dosyası ES
Dosya sistemi. begin ( ) ;

// Ağ istatistikleri elde etmek için kullanılan komut dosyasını yükle
uploadScript ( ) ;
}

void loop ( ) {
// İstatistik komut dosyasını her 5 saniyede bir çalıştırın.
runScript ( ) ;
gecikme ( 5000 ) ;
}

// bu işlev linux işlemciye bir kabuk betiği içeren bir dosya oluşturur
// WiFi arayüzünün ağ trafiğini kontrol etmek için
void uploadScript ( ) {
// kabuk betiğimizi / tmp
// / tmp komutunu kullanarak komut dosyasını RAM'de bu şekilde saklayabiliriz
// sınırlı miktarda FLASH silme / yazma döngüsü
Dosya betiği = Dosya Sistemi. open ( "/tmp/wlan-stats.sh" , FILE_WRITE ) ;
// Kabuk komut dosyası başlığı
senaryo. print ( "#! / bin / sh \ n " ) ;
// kabuk komutları:
// ifconfig: ağ arabirimlerini kontrol etmek için kullanılan bir komut satırı yardımcı programıdır.
// wlan0 sorgulamak istediğimiz arayüz
// grep: "RX bayt" anahtar kelimesinin ifconfig komutunun çıktısında arama yapın
// ve onu içeren satırı çıkarın
senaryo. print ( "ifconfig wlan0 | grep 'RX bayt' \ n " ) ;
senaryo. close ( ) ; // dosyayı kapat

// Komut dosyasını yürütülebilir yapın
İşlem chmod ;
chmod. başlar ( "chmod" ) ; // chmod: modu değiştir
chmod. addParameter ( "+ x" ) ; // x çalıştırılabilir durumda kalır
chmod. addParameter ( "/tmp/wlan-stats.sh" ) ; // dosyayı çalıştırılabilir hale getirmek için yol
chmod. run ( ) ;
}


// bu işlev komut dosyasını çalıştırır ve çıktı verilerini okur
void runScript ( ) {
// Komut dosyasını çalıştırın ve sonuçları Seri'de gösterin
İşlem myscript ;
myscript. başlar ( "/tmp/wlan-stats.sh" ) ;
myscript. run ( ) ;

String output = "" ;

// betiğin çıktısını oku
while ( myscript. available ( ) ) {
output + = ( karakter ) myscript. read ( ) ;
}
// dizenin başında ve sonundaki boşlukları kaldır
çıktı. trim ( ) ;
SerialUSB. println ( çıktı ) ;
SerialUSB. flush ( ) ;
}

See Also

  • Bridge Library- Köprü Kütüphanesine referansınız
  • Bridge- Analog ve dijital pinlere erişmek için basit REST tarzı çağrılar
  • Console Ascii Table- Konsola yazdırılan eksiksiz bir ASCII tablosu
  • Console Pixel- Konsoldan bir LED'i açma ve kapatma
  • Console Read- Console.read () işlevini kullanarak köprüden gelen verileri okuma
  • Data Logger- Üç analog sensörden bir SD karta veri kaydedin.
  • Http Client- İnternete bağlanan ve içeriği indiren temel bir HTTP istemcisi.
  • Http Client Console- Bağlanan, içeriği indiren ve WiFi ve Konsol kullanarak içeriği gösteren HTTP istemcisi.
  • Mailbox Read Message- Köprü kitaplığını kullanarak Posta Kutusu adlı ileti sırasını okuma.
  • Process- Bir Yún kullanarak linux süreçleri nasıl çalıştırılır.
  • Remote Due Blink- DUE panolarına uzaktan taslak yükleme.
  • Shell Commands- Bir Yún kullanarak linux kabuk komutları nasıl çalıştırılır.
  • Temperature Web Panel- Yún'ın yerleşik web sunucusu üzerinden bir analog girişten veri sunma.
  • Time check- Bridge üzerinden Linux'tan zamanı alır, sonra saatleri, dakikaları ve saniyeleri ayrıştırır.
  • WiFi Status- Wifi bağlantınızın durumu hakkında bilgi yazdırır.
  • Yún First Configuration- Seri Monitör ve USB bağlantı noktasını kullanarak Yún cihazınızı kolayca yapılandırın.
  • Serial Terminal- Yún'ın 32U4 işlemcisini, Yún'daki Linux tarafı için seri terminal olarak kullanın.