• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Odczytywanie z pliku txt w js

Ultraszybki serwer VPS NVMe BIZNES
0 głosów
192 wizyt
pytanie zadane 10 listopada 2017 w JavaScript, jQuery, AJAX przez Wojciech Tuszkiewicz Początkujący (480 p.)
Witam czy za pomocą javascript bez JQuery i.t.p. da się odczytywać z pliku txt.

php też odpada bo robię z bratem stronę na arduino a ono nie posiada tego interpretera php czy jak to się tam nazywa, a JQuery też nie działa na arduino.

 

Ewentualnie  jak by zrobić aby arduino obsługiwało JQuery.
komentarz 10 listopada 2017 przez JSHolic Maniak (67,270 p.)

JQuery też nie działa na arduino

Dlaczego miało by nie działać? jQuery to biblioteka języka JavaScript, więc jeśli na Arduino masz zainstalowaną przeglądarkę internetową lub Node.js, to podpięcie jQuery nie powinno stanowić problemu.

komentarz 12 listopada 2017 przez Wojciech Tuszkiewicz Początkujący (480 p.)

JQuery nie działa chociaż mam pobraną bibliotekę JQuery i podpiętą do strony. To czemu nie działa? I oco chodzi  ci z :

 

więc jeśli na Arduino masz zainstalowaną przeglądarkę internetową lub Node.js,

komentarz 12 listopada 2017 przez JSHolic Maniak (67,270 p.)

Czy na Arduino masz zainstalowaną przeglądarkę internetową?

Jeśli tak i wspiera ona język JavaScript, to powinna obsługiwać jQuery - bo to po prostu biblioteka napisana w JS. Jeśli próbujesz to zrobić w przeglądarce, ale napotykasz na problem, to wstaw kod HTML i zawartość konsoli przeglądarki (jeśli zawiera błędy).

Jeśli nie, to zainstaluj środowisko Node.js (możesz przez linię komend - poszukaj, jak to zrobić - np. w ten sposób) i z pomocą npm (wchodzi w skład Node, przynajmniej na Windows) pobierz i zainstaluj jQuery.

komentarz 12 listopada 2017 przez Wojciech Tuszkiewicz Początkujący (480 p.)

W jakim sensie 

Czy na Arduino masz zainstalowaną przeglądarkę internetową?

Bo nie rozumiem 

komentarz 12 listopada 2017 przez JSHolic Maniak (67,270 p.)
Co w tym pytaniu jest niezrozumiałego? Przeglądarka internetowa to program. Tak, jak na komputerze ją instalujesz, tak i na Arduino możesz, jeśli masz system operacyjny, który to umożliwi. Czy masz na Arduino zainstalowany jakiś system operacyjny (jaki?)? W jaki sposób podłączasz jQuery? Dlaczego twierdzisz, że nie działa - w jaki sposób to sprawdzasz?

Powtórzę - pokaz kod i podaj więcej informacji, bo nie będę w stanie pomóc Ci jeśli nie podasz więcej szczegółów.
komentarz 12 listopada 2017 przez Wojciech Tuszkiewicz Początkujący (480 p.)

Czy masz na Arduino zainstalowany jakiś system operacyjny 

Nie

 W jaki sposób podłączasz jQuery?

 <script src="jquery-3.2.1.min.js"></script>

Strona znajduje się na karcie pamięci tak samo jak biblioteka JQuery

Dlaczego twierdzisz, że nie działa - w jaki sposób to sprawdzasz?

Normalnie, wpisuje na komputerze adres ip arduina a na stronie jest np.

Adres do przykładu JQuery który mam na stronie arduino

jak jestem na stronie arduina to sprawdzam czy JQuery się wykonuje.

Kod Arduino

include <SPI.h>
#include <Ethernet.h>
#include <SD.h>
 
// size of buffer used to capture HTTP requests
#define REQ_BUF_SZ   20
 
// MAC address from Ethernet shield sticker under board
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 0, 20); // IP address, may need to change depending on network
EthernetServer server(80);  // create a server at port 80
File webFile;
char HTTP_req[REQ_BUF_SZ] = {0}; // buffered HTTP request stored as null terminated string
char FileName[10];
char req_index = 0;              // index into HTTP_req buffer
 
void setup()
{
    pinMode(2, OUTPUT);
    pinMode(7, OUTPUT);
    // disable Ethernet chip
    pinMode(10, OUTPUT);
    digitalWrite(10, HIGH);
     
    Serial.begin(9600);       // for debugging
     
    // initialize SD card
    Serial.println("Initializing SD card...");
    if (!SD.begin(4)) {
        Serial.println("ERROR - SD card initialization failed!");
        return;    // init failed
    }
    Serial.println("SUCCESS - SD card initialized.");
    // check for index.htm file
    if (!SD.exists("index.htm")) {
        Serial.println("ERROR - Can't find index.htm file!");
        return;  // can't find index file
    }
    Serial.println("SUCCESS - Found index.htm file.");
     
    Ethernet.begin(mac, ip);  // initialize Ethernet device
    server.begin();           // start to listen for clients
}
 
void loop()
{
    EthernetClient client = server.available();  // try to get client
 
    if (client) {  // got client?
        boolean currentLineIsBlank = true;
        while (client.connected()) {
            if (client.available()) {   // client data available to read
                char c = client.read(); // read 1 byte (character) from client
                // buffer first part of HTTP request in HTTP_req array (string)
                // leave last element in array as 0 to null terminate string (REQ_BUF_SZ - 1)
                if (req_index < (REQ_BUF_SZ - 1)) {
                    HTTP_req[req_index] = c;          // save HTTP request character
                    req_index++;
                }
                // print HTTP request character to serial monitor
                Serial.print(c);
                // last line of client request is blank and ends with \n
                // respond to client only after last line received
                if (c == '\n' && currentLineIsBlank) {
                    // open requested web page file
                    findFileName(HTTP_req);
                    if (StrContains(HTTP_req, "GET / ")
                                 || StrContains(HTTP_req, "GET /index.htm")) {
                        client.println("HTTP/1.1 200 OK");
                        client.println("Content-Type: text/html");
                        client.println("Connnection: close");
                        client.println();
                        webFile = SD.open("index.htm");        // open web page file
                    }
                    else if (StrContains(HTTP_req, "GET /jquery.js")) {
                        webFile = SD.open("jquery.js");
                        if (webFile) {
                            client.println("HTTP/1.1 200 OK");
                            client.println("Content-Type: application/javascript");
                            client.println();
                        }
                    }
                    else if (StrContains(HTTP_req, "GET /script.js")) {
                        webFile = SD.open("script.js");
                        if (webFile) {
                            client.println("HTTP/1.1 200 OK");
                            client.println("Content-Type: application/javascript");
                            client.println();
                        }
                    }
                    else if (StrContains(HTTP_req, "GET /style.css")) {
                        webFile = SD.open("style.css");
                        if (webFile) {
                            client.println("HTTP/1.1 200 OK");
                            client.println("Content-Type: text/css");
                            client.println();
                        }
                    }
                    else if (StrContains(HTTP_req, "GET /favicon.ico")) {
                        webFile = SD.open("favicon.ico");
                        if (webFile) {
                            client.println("HTTP/1.1 200 OK");
                            client.println("Content-Type: image/x-icon");                            
                            client.println();
                        }
                    }
                    else if (StrContains(HTTP_req, "GET /on")) {
                            digitalWrite(2, HIGH); 
                            digitalWrite(7, HIGH);
                         //   client.println("LEDs have been turned <span class="green">ON</span>!");                        
                    }
                    else if (StrContains(HTTP_req, "GET /off")) {
                            digitalWrite(2, LOW); 
                            digitalWrite(7, LOW);
//                            client.println("LEDs have been turned <span class="red">OFF</span>!");                        
                    }
                    if (webFile) {
                        while(webFile.available()) {
                            client.write(webFile.read()); // send web page to client
                        }
                        webFile.close();
                    }
                    // reset buffer index and all buffer elements to 0
                    req_index = 0;
                    StrClear(HTTP_req, REQ_BUF_SZ);
                    break;
                }
                // every line of text received from the client ends with \r\n
                if (c == '\n') {
                    // last character on line of received text
                    // starting new line with next character read
                    currentLineIsBlank = true;
                } 
                else if (c != '\r') {
                    // a text character was received from client
                    currentLineIsBlank = false;
                }
            } // end if (client.available())
        } // end while (client.connected())
        delay(1);      // give the web browser time to receive the data
        client.stop(); // close the connection
    } // end if (client)
}
 
// sets every element of str to 0 (clears array)
void StrClear(char *str, char length)
{
    for (int i = 0; i < length; i++) {
        str[i] = 0;
    }
}
 
// searches for the string sfind in the string str
// returns 1 if string found
// returns 0 if string not found
void findFileName(char *str1)  {
   
  char *fname;
   
   
  if (strstr (str1, "GET / ") != 0) {
    // send a standard http response header ------ a page to display has been found  
  }
  else if (strstr (str1, "GET /") != 0) {
          fname = str1 + 5; // look after the "GET /" (5 chars)
          // a little trick, look for the " HTTP/1.1" string and 
          // turn the first character of the substring into a 0 to clear it out.
          (strstr (str1, " HTTP"))[0] = 0;
          // print the file we want
          Serial.print("Filename is ");
          Serial.println(fname); 
          Serial.print("Extension is ");
          Serial.println(get_filename_ext(fname));     
  }
}
 
const char *get_filename_ext(const char *filename) {
    const char *dot = strrchr(filename, '.');
    if(!dot || dot == filename) return "";
    return dot + 1;
}
 
char StrContains(char *str, char *sfind)
{
    char found = 0;
    char index = 0;
    char len;
 
    len = strlen(str);
     
    if (strlen(sfind) > len) {
        return 0;
    }
    while (index < len) {
        if (str[index] == sfind[found]) {
            found++;
            if (strlen(sfind) == found) {
                return 1;
            }
        }
        else {
            found = 0;
        }
        index++;
    }
 
    return 0;
}

 

  

komentarz 12 listopada 2017 przez JSHolic Maniak (67,270 p.)
W jaki sposób bez systemu operacyjnego serwujesz stronę?

Jeśli dobrze zrozumiałem, to zrobiłeś stronkę podobną lub kopię tej podlinkowanej z W3Schools z podpiętym jQuery i zapisałeś ją na karcie pamięci. Z komputera wpisujesz adres IP przypisany do Arduino w sieci lokalnej i oczekujesz, że strona się pojawi? Jeśli nie serwujesz tej strony, to się nie pojawi - jQuery nie ma tu nic do rzeczy. Najpierw musisz postawić jakiś serwer na Arduino (czy to korzystając z jakiegoś XAMPP, czy Apache, czy Node), tam wgrać stronkę, a potem nie tylko wpisać IP, ale podać też ścieżkę do hostowanego pliku strony.

Co widzisz na komputerze po wpisaniu IP Arduino? Możesz wrzucić screena.
komentarz 13 listopada 2017 przez Wojciech Tuszkiewicz Początkujący (480 p.)
Ale Arduino jest serwerem dla strony.

A Arduino przecież nie posiada systemu operacyjnego. Przecież do Arduino tylko wprowadzasz kod i wgrywasz.

1 odpowiedź

0 głosów
odpowiedź 10 listopada 2017 przez argeento Szeryf (79,090 p.)

Zapewne działa to na node'dzie - jeśli tak, użyj fs (najprościej będzie synchronicznie)

const fs = require('fs');

const data = fs.readFileSync('./sciezka/do/pliku.txt', 'utf8');

Podobne pytania

0 głosów
0 odpowiedzi 121 wizyt
pytanie zadane 19 listopada 2017 w C i C++ przez edglrdmmslt Nowicjusz (120 p.)
+1 głos
3 odpowiedzi 194 wizyt
+1 głos
1 odpowiedź 437 wizyt
Porady nie od parady
Zadając pytanie postaraj się o szczegółowe opisanie problemu oraz udostępnienie wszystkich istotnych informacji (kody źródłowe, zrzuty ekranu itp.).
Ciekawy innych porad? Odwiedź tę stronę!

44,322 zapytań

84,159 odpowiedzi

167,560 komentarzy

21,229 pasjonatów

Przeglądających: 327
Pasjonatów: 33 Gości: 294

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...