Electrokit Buggfix Plus
Aktuellt datum och tid: 19.06 2018-12-18

Alla tidsangivelser är UTC + 1 timme




Svara på tråd  [ 95 inlägg ]  Gå till sida 1, 2, 3, 4, 5 ... 7  Nästa
Författare Meddelande
 Inläggsrubrik: Arduino - Anropa hemsida
InläggPostat: 11.20 2018-03-14 
Admin
Användarvisningsbild

Blev medlem: 14.59 2003-05-26
Inlägg: 7586
Ort: Solna
Håller på med en liten display som talar om när nästa buss kommer. Har skaffat nycklar och grejer till SL's API så jag kan anropa och få rätt tider etc. Men eftersom jag har ett begränsat antal anrop per timme så vill jag inte jobba mot sl's hemsida. Så jag kopierade resultatet och la det på min egna sida som en statisk sida http://geekjoan.com/sl_test.html

Mitt problem just nu är att jag får det inte att funka.
Resultat:
connecting...
connected
HTTP/1.1 301 Moved Permanently
Date: Wed, 14 Mar 2018 09:03:25 GMT
Server: Apache/2.4.25 (Debian)
Location: http://buggfix.se/
Content-Length: 306
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://buggfix.se/">here</a>.</p>
<hr>
<address>Apache/2.4.25 (Debian) Server at http://www.google.com Port 80</address>
</body></html>

disconnecting.


Exempelkod:
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
#include <SPI.h>
#include <Ethernet.h>

// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x3C, 0xA4 };
// if you don't want to use DNS (and reduce your sketch size)
// use the numeric IP instead of the name for the server:
//IPAddress server(74,125,232,128);  // numeric IP for Google (no DNS)
char server[] = "geekjoan.com";    // name address for Google (using DNS)

// Set the static IP address to use if the DHCP fails to assign
IPAddress ip(192, 168, 0, 177);

// Initialize the Ethernet client library
// with the IP address and port of the server
// that you want to connect to (port 80 is default for HTTP):
EthernetClient client;

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(115200);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  // start the Ethernet connection:
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    // try to congifure using IP address instead of DHCP:
    Ethernet.begin(mac, ip);
  }
  // give the Ethernet shield a second to initialize:
  delay(1000);
  Serial.println("connecting...");

  // if you get a connection, report back via serial:
  if (client.connect(server, 80)) {
    Serial.println("connected");
    // Make a HTTP request:
    client.println("GET /sl_test.html HTTP/1.1");
    client.println("Host: www.google.com");
    client.println("Connection: close");
    client.println();
  } else {
    // if you didn't get a connection to the server:
    Serial.println("connection failed");
  }
}

void loop() {
  // if there are incoming bytes available
  // from the server, read them and print them:
  if (client.available()) {
    char c = client.read();
    Serial.print(c);
  }

  // if the server's disconnected, stop the client:
  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();

    // do nothing forevermore:
    while (true);
  }
}


Upp
 Profil  
 
InläggPostat: 11.23 2018-03-14 
Admin
Användarvisningsbild

Blev medlem: 14.59 2003-05-26
Inlägg: 7586
Ort: Solna
Om jag ändrar till SL's adress så får jag ut följande:

connecting...
connected
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/8.5
server: Microsoft-IIS/8.5
x-aspnet-version: 4.0.30319
x-powered-by: ASP.NET
X-Powered-By: ASP.NET
Date: Wed, 14 Mar 2018 10:22:32 GMT
Connection: close
Content-Length: 1670

{"StatusCode":0,"Message":null,"ExecutionTime":42,"ResponseData":{"LatestUpdate":"2018-03-14T11:22:26","DataAge":6,"Metros":[],"Buses":[{"GroupOfLine":null,"TransportMode":"BUS","LineNumber":"509","Destination":"Brommaplan","JourneyDirection":2,"StopAreaName":"Rosenborgsgatan","StopAreaNumber":50213,"StopPointNumber":50214,"StopPointDesignation":null,"TimeTabledDateTime":"2018-03-14T11:24:32","ExpectedDateTime":"2018-03-14T11:24:11","DisplayTime":"1 min","JourneyNumber":20874,"Deviations":null},{"GroupOfLine":null,"TransportMode":"BUS","LineNumber":"509","Destination":"Danderyds sjukhus","JourneyDirection":1,"StopAreaName":"Rosenborgsgatan","StopAreaNumber":50213,"StopPointNumber":50213,"StopPointDesignation":null,"TimeTabledDateTime":"2018-03-14T11:33:06","ExpectedDateTime":"2018-03-14T11:33:06","DisplayTime":"10 min","JourneyNumber":20850,"Deviations":null},{"GroupOfLine":null,"TransportMode":"BUS","LineNumber":"509","Destination":"Brommaplan","JourneyDirection":2,"StopAreaName":"Rosenborgsgatan","StopAreaNumber":50213,"StopPointNumber":50214,"StopPointDesignation":null,"TimeTabledDateTime":"2018-03-14T11:39:32","ExpectedDateTime":"2018-03-14T11:39:32","DisplayTime":"17 min","JourneyNumber":20907,"Deviations":null},{"GroupOfLine":null,"TransportMode":"BUS","LineNumber":"509","Destination":"Danderyds sjukhus","JourneyDirection":1,"StopAreaName":"Rosenborgsgatan","StopAreaNumber":50213,"StopPointNumber":50213,"StopPointDesignation":null,"TimeTabledDateTime":"2018-03-14T11:48:06","ExpectedDateTime":"2018-03-14T11:48:06","DisplayTime":"25 min","JourneyNumber":20875,"Deviations":null}],"Trains":[],"Trams":[],"Ships":[],"StopPointDeviations":[]}}
disconnecting.


Upp
 Profil  
 
InläggPostat: 11.33 2018-03-14 

Blev medlem: 10.06 2010-01-07
Inlägg: 757
Ort: Sandared
I svaret från SL du får json tillbaka med rätt data verkar som. Vad funkar inte exakt?

Du får array av bussar som kommer så du bara behöver ta ExpectedDateTime och eventuellt någon annan variabel du behöver.

Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
        "Buses": [{
            "GroupOfLine": null,
            "TransportMode": "BUS",
            "LineNumber": "509",
            "Destination": "Brommaplan",
            "JourneyDirection": 2,
            "StopAreaName": "Rosenborgsgatan",
            "StopAreaNumber": 50213,
            "StopPointNumber": 50214,
            "StopPointDesignation": null,
            "TimeTabledDateTime": "2018-03-14T11:24:32",
            "ExpectedDateTime": "2018-03-14T11:24:11",
            "DisplayTime": "1 min",
            "JourneyNumber": 20874,
            "Deviations": null
        }, {
            "GroupOfLine": null,
            "TransportMode": "BUS",
            "LineNumber": "509",
            "Destination": "Danderyds sjukhus",
            "JourneyDirection": 1,
            "StopAreaName": "Rosenborgsgatan",
            "StopAreaNumber": 50213,
            "StopPointNumber": 50213,
            "StopPointDesignation": null,
            "TimeTabledDateTime": "2018-03-14T11:33:06",
            "ExpectedDateTime": "2018-03-14T11:33:06",
            "DisplayTime": "10 min",
            "JourneyNumber": 20850,
            "Deviations": null
        }, {
            "GroupOfLine": null,
            "TransportMode": "BUS",
            "LineNumber": "509",
            "Destination": "Brommaplan",
            "JourneyDirection": 2,
            "StopAreaName": "Rosenborgsgatan",
            "StopAreaNumber": 50213,
            "StopPointNumber": 50214,
            "StopPointDesignation": null,
            "TimeTabledDateTime": "2018-03-14T11:39:32",
            "ExpectedDateTime": "2018-03-14T11:39:32",
            "DisplayTime": "17 min",
            "JourneyNumber": 20907,
            "Deviations": null
        }, {
            "GroupOfLine": null,
            "TransportMode": "BUS",
            "LineNumber": "509",
            "Destination": "Danderyds sjukhus",
            "JourneyDirection": 1,
            "StopAreaName": "Rosenborgsgatan",
            "StopAreaNumber": 50213,
            "StopPointNumber": 50213,
            "StopPointDesignation": null,
            "TimeTabledDateTime": "2018-03-14T11:48:06",
            "ExpectedDateTime": "2018-03-14T11:48:06",
            "DisplayTime": "25 min",
            "JourneyNumber": 20875,
            "Deviations": null
        }],


Upp
 Profil  
 
InläggPostat: 12.15 2018-03-14 
Användarvisningsbild

Blev medlem: 10.07 2008-01-22
Inlägg: 1738
Ort: Sollentuna
Problemet är att du skickar fel Hostheader (www.google.com), prova med att skicka "geekjoan.com" där istället så funkar det.

/j


Upp
 Profil  
 
InläggPostat: 13.23 2018-03-14 

Blev medlem: 10.06 2010-01-07
Inlägg: 757
Ort: Sandared
Host header är oviktigt eftersom han får svar från API.


Upp
 Profil  
 
InläggPostat: 13.30 2018-03-14 

Blev medlem: 11.27 2006-01-19
Inlägg: 236
Ort: sthlm
Inte när han testar mot sin egen server... där nämns ju även google i felmeddelandet:
"Apache/2.4.25 (Debian) Server at http://www.google.com Port 80"


Upp
 Profil  
 
InläggPostat: 13.42 2018-03-14 
Admin
Användarvisningsbild

Blev medlem: 14.59 2003-05-26
Inlägg: 7586
Ort: Solna
Japp, där var problemet. Tack!


Upp
 Profil  
 
InläggPostat: 15.41 2018-03-14 

Blev medlem: 10.06 2010-01-07
Inlägg: 757
Ort: Sandared
simply skrev:
Inte när han testar mot sin egen server... där nämns ju även google i felmeddelandet:
"Apache/2.4.25 (Debian) Server at http://www.google.com Port 80"


Ah, det stämmer, jag var mer fokuserad på SL server :D


Upp
 Profil  
 
InläggPostat: 22.45 2018-03-19 
Admin
Användarvisningsbild

Blev medlem: 14.59 2003-05-26
Inlägg: 7586
Ort: Solna
OK, nu till nästa "problem" (JA, jag är helt grön på detta)

Nu när jag väl får ut data från hemsidan så vill jag så klart leta efter rätt sak.
Vad jag är intresserad av är så klart NÄR nästa buss kommer.

Men jag får det inte att funka. Har testat följande:

Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
void loop() {
  if (client.available()) {
   
    char c = client.read();   // Läser hemsidan och stoppar det i c
    String SLData = String(c);    // Stoppar in det jag läser i strängen SLData
    Serial.print(SLData);    // Printar ut det som är i SLData

    char r = SLData.indexOf("DisplayTime", 1);  // Här vet i fan om jag är på rätt spår,
    Serial.print(r);  // Om denna raden är med så blir det bara blaj av texten.
  }



Om denna raden är med så blir det bara blaj av texten: Serial.print(r);
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
connecting...
connected
H⸮T⸮T⸮P⸮/⸮1⸮.⸮1⸮ ⸮2⸮0⸮0⸮ ⸮O⸮K⸮

⸮D⸮a⸮t⸮e⸮:⸮ ⸮M⸮o⸮n⸮,⸮ ⸮1⸮9⸮ ⸮M⸮a⸮r⸮ ⸮2⸮0⸮1⸮8⸮ ⸮2⸮1⸮:⸮4⸮1⸮:⸮3⸮2⸮ ⸮G⸮M⸮T⸮

⸮S⸮e⸮r⸮v⸮e⸮r⸮:⸮ ⸮A⸮p⸮a⸮c⸮h⸮e⸮/⸮2⸮.⸮4⸮.⸮2⸮5⸮ ⸮(⸮D⸮e⸮b⸮i⸮a⸮n⸮)⸮

⸮L⸮a⸮s⸮t⸮-⸮M⸮o⸮d⸮i⸮f⸮i⸮e⸮d⸮:⸮ ⸮T⸮u⸮e⸮,⸮ ⸮1⸮3⸮ ⸮M⸮a⸮r⸮ ⸮2⸮0⸮1⸮8⸮ ⸮1⸮9⸮:⸮1⸮8⸮:⸮3⸮3⸮ ⸮G⸮M⸮T⸮

⸮E⸮T⸮a⸮g⸮:⸮ ⸮"⸮5⸮8⸮a⸮-⸮5⸮6⸮7⸮5⸮0⸮1⸮f⸮d⸮a⸮5⸮4⸮4⸮0⸮"⸮

⸮A⸮c⸮c⸮e⸮p⸮t⸮-⸮R⸮a⸮n⸮g⸮e⸮s⸮:⸮ ⸮b⸮y⸮t⸮e⸮s⸮

⸮C⸮o⸮n⸮t⸮e⸮n⸮t⸮-⸮L⸮e⸮n⸮g⸮t⸮h⸮:⸮ ⸮1⸮4⸮1⸮8⸮

⸮C⸮o⸮n⸮n⸮e⸮c⸮t⸮i⸮o⸮n⸮:⸮ ⸮c⸮l⸮o⸮s⸮e⸮

⸮C⸮o⸮n⸮t⸮e⸮n⸮t⸮-⸮T⸮y⸮p⸮e⸮:⸮ ⸮t⸮e⸮x⸮t⸮/⸮h⸮t⸮m⸮l⸮



⸮⸮⸮⸮⸮⸮⸮<⸮h⸮t⸮m⸮l⸮>⸮
⸮<⸮h⸮e⸮a⸮d⸮>⸮<⸮/⸮h⸮e⸮a⸮d⸮>⸮
⸮<⸮b⸮o⸮d⸮y⸮>⸮
⸮<⸮p⸮r⸮e⸮ ⸮s⸮t⸮y⸮l⸮e⸮=⸮"⸮w⸮o⸮r⸮d⸮-⸮w⸮r⸮a⸮p⸮:⸮ ⸮b⸮r⸮e⸮a⸮k⸮-⸮w⸮o⸮r⸮d⸮;⸮ ⸮w⸮h⸮i⸮t⸮e⸮-⸮s⸮p⸮a⸮c⸮e⸮:⸮ ⸮p⸮r⸮e⸮-⸮w⸮r⸮a⸮p⸮;⸮"⸮>⸮{⸮"⸮S⸮t⸮a⸮t⸮u⸮s⸮C⸮o⸮d⸮e⸮"⸮:⸮0⸮,⸮"⸮M⸮e⸮s⸮s⸮a⸮g⸮e⸮"⸮:⸮n⸮u⸮l⸮l⸮,⸮"⸮E⸮x⸮e⸮c⸮u⸮t⸮i⸮o⸮n⸮T⸮i⸮m⸮e⸮"⸮:⸮2⸮9⸮,⸮"⸮R⸮e⸮s⸮p⸮o⸮n⸮s⸮e⸮D⸮a⸮t⸮a⸮"⸮:⸮{⸮"⸮L⸮a⸮t⸮e⸮s⸮t⸮U⸮p⸮d⸮a⸮t⸮e⸮"⸮:⸮"⸮2⸮0⸮1⸮8⸮-⸮0⸮3⸮-⸮1⸮3⸮T⸮2⸮0⸮:⸮1⸮4⸮:⸮2⸮1⸮"⸮,⸮"⸮D⸮a⸮t⸮a⸮A⸮g⸮e⸮"⸮:⸮1⸮1⸮,⸮"⸮M⸮e⸮t⸮r⸮o⸮s⸮"⸮:⸮[⸮]⸮,⸮"⸮B⸮u⸮s⸮e⸮s⸮"⸮:⸮[⸮{⸮"⸮G⸮r⸮o⸮u⸮p⸮O⸮f⸮L⸮i⸮n⸮e⸮"⸮:⸮n⸮u⸮l⸮l⸮,⸮"⸮T⸮r⸮a⸮n⸮s⸮p⸮o⸮r⸮t⸮M⸮o⸮d⸮e⸮"⸮:⸮"⸮B⸮U⸮S⸮"⸮,⸮"⸮L⸮i⸮n⸮e⸮N⸮u⸮m⸮b⸮e⸮r⸮"⸮:⸮"⸮5⸮0⸮9⸮"⸮,⸮"⸮D⸮e⸮s⸮t⸮i⸮n⸮a⸮t⸮i⸮o⸮n⸮"⸮:⸮"⸮D⸮a⸮n⸮d⸮e⸮r⸮y⸮d⸮s⸮ ⸮s⸮j⸮u⸮k⸮h⸮u⸮s⸮"⸮,⸮"⸮J⸮o⸮u⸮r⸮n⸮e⸮y⸮D⸮i⸮r⸮e⸮c⸮t⸮i⸮o⸮n⸮"⸮:⸮1⸮,⸮"⸮S⸮t⸮o⸮p⸮A⸮r⸮e⸮a⸮N⸮a⸮m⸮e⸮"⸮:⸮"⸮R⸮o⸮s⸮e⸮n⸮b⸮o⸮r⸮g⸮s⸮g⸮a⸮t⸮a⸮n⸮"⸮,⸮"⸮S⸮t⸮o⸮p⸮A⸮r⸮e⸮a⸮N⸮u⸮m⸮b⸮e⸮r⸮"⸮:⸮5⸮0⸮2⸮1⸮3⸮,⸮"⸮S⸮t⸮o⸮p⸮P⸮o⸮i⸮n⸮t⸮N⸮u⸮m⸮b⸮e⸮r⸮"⸮:⸮5⸮0⸮2⸮1⸮3⸮,⸮"⸮S⸮t⸮o⸮p⸮P⸮o⸮i⸮n⸮t⸮D⸮e⸮s⸮i⸮g⸮n⸮a⸮t⸮i⸮o⸮n⸮"⸮:⸮n⸮u⸮l⸮l⸮,⸮"⸮T⸮i⸮m⸮e⸮T⸮a⸮b⸮l⸮e⸮d⸮D⸮a⸮t⸮e⸮T⸮i⸮m⸮e⸮"⸮:⸮"⸮2⸮0⸮1⸮8⸮-⸮0⸮3⸮-⸮1⸮3⸮T⸮2⸮0⸮:⸮1⸮7⸮:⸮3⸮9⸮"⸮,⸮"⸮E⸮x⸮p⸮e⸮c⸮t⸮e⸮d⸮D⸮a⸮t⸮e⸮T⸮i⸮m⸮e⸮"⸮:⸮"⸮2⸮0⸮1⸮8⸮-⸮0⸮3⸮-⸮1⸮3⸮T⸮2⸮0⸮:⸮2⸮1⸮:⸮1⸮1⸮"⸮,⸮"⸮D⸮i⸮s⸮p⸮l⸮a⸮y⸮T⸮i⸮m⸮e⸮"⸮:⸮"⸮6⸮ ⸮m⸮i⸮n⸮"⸮,⸮"⸮J⸮o⸮u⸮r⸮n⸮e⸮y⸮N⸮u⸮m⸮b⸮e⸮r⸮"⸮:⸮2⸮2⸮0⸮5⸮6⸮,⸮"⸮D⸮e⸮v⸮i⸮a⸮t⸮i⸮o⸮n⸮s⸮"⸮:⸮n⸮u⸮l⸮l⸮}⸮,⸮{⸮"⸮G⸮r⸮o⸮u⸮p⸮O⸮f⸮L⸮i⸮n⸮e⸮"⸮:⸮n⸮u⸮l⸮l⸮,⸮"⸮T⸮r⸮a⸮n⸮s⸮p⸮o⸮r⸮t⸮M⸮o⸮d⸮e⸮"⸮:⸮"⸮B⸮U⸮S⸮"⸮,⸮"⸮L⸮i⸮n⸮e⸮N⸮u⸮m⸮b⸮e⸮r⸮"⸮:⸮"⸮5⸮0⸮9⸮"⸮,⸮"⸮D⸮e⸮s⸮t⸮i⸮n⸮a⸮t⸮i⸮o⸮n⸮"⸮:⸮"⸮D⸮a⸮n⸮d⸮e⸮r⸮y⸮d⸮s⸮ ⸮s⸮j⸮u⸮k⸮h⸮u⸮s⸮"⸮,⸮"⸮J⸮o⸮u⸮r⸮n⸮e⸮y⸮D⸮i⸮r⸮e⸮c⸮t⸮i⸮o⸮n⸮"⸮:⸮1⸮,⸮"⸮S⸮t⸮o⸮p⸮A⸮r⸮e⸮a⸮N⸮a⸮m⸮e⸮"⸮:⸮"⸮R⸮o⸮s⸮e⸮n⸮b⸮o⸮r⸮g⸮s⸮g⸮a⸮t⸮a⸮n⸮"⸮,⸮"⸮S⸮t⸮o⸮p⸮A⸮r⸮e⸮a⸮N⸮u⸮m⸮b⸮e⸮r⸮"⸮:⸮5⸮0⸮2⸮1⸮3⸮,⸮"⸮S⸮t⸮o⸮p⸮P⸮o⸮i⸮n⸮t⸮N⸮u⸮m⸮b⸮e⸮r⸮"⸮:⸮5⸮0⸮2⸮1⸮3⸮,⸮"⸮S⸮t⸮o⸮p⸮P⸮o⸮i⸮n⸮t⸮D⸮e⸮s⸮i⸮g⸮n⸮a⸮t⸮i⸮o⸮n⸮"⸮:⸮n⸮u⸮l⸮l⸮,⸮"⸮T⸮i⸮m⸮e⸮T⸮a⸮b⸮l⸮e⸮d⸮D⸮a⸮t⸮e⸮T⸮i⸮m⸮e⸮"⸮:⸮"⸮2⸮0⸮1⸮8⸮-⸮0⸮3⸮-⸮1⸮3⸮T⸮2⸮0⸮:⸮3⸮2⸮:⸮3⸮9⸮"⸮,⸮"⸮E⸮x⸮p⸮e⸮c⸮t⸮e⸮d⸮D⸮a⸮t⸮e⸮T⸮i⸮m⸮e⸮"⸮:⸮"⸮2⸮0⸮1⸮8⸮-⸮0⸮3⸮-⸮1⸮3⸮T⸮2⸮0⸮:⸮3⸮4⸮:⸮2⸮7⸮"⸮,⸮"⸮D⸮i⸮s⸮p⸮l⸮a⸮y⸮T⸮i⸮m⸮e⸮"⸮:⸮"⸮1⸮9⸮ ⸮m⸮i⸮n⸮"⸮,⸮"⸮J⸮o⸮u⸮r⸮n⸮e⸮y⸮N⸮u⸮m⸮b⸮e⸮r⸮"⸮:⸮2⸮2⸮0⸮7⸮9⸮,⸮"⸮D⸮e⸮v⸮i⸮a⸮t⸮i⸮o⸮n⸮s⸮"⸮:⸮n⸮u⸮l⸮l⸮}⸮,⸮{⸮"⸮G⸮r⸮o⸮u⸮p⸮O⸮f⸮L⸮i⸮n⸮e⸮"⸮:⸮n⸮u⸮l⸮l⸮,⸮"⸮T⸮r⸮a⸮n⸮s⸮p⸮o⸮r⸮t⸮M⸮o⸮d⸮e⸮"⸮:⸮"⸮B⸮U⸮S⸮"⸮,⸮"⸮L⸮i⸮n⸮e⸮N⸮u⸮m⸮b⸮e⸮r⸮"⸮:⸮"⸮5⸮0⸮9⸮"⸮,⸮"⸮D⸮e⸮s⸮t⸮i⸮n⸮a⸮t⸮i⸮o⸮n⸮"⸮:⸮"⸮B⸮r⸮o⸮m⸮m⸮a⸮p⸮l⸮a⸮n⸮"⸮,⸮"⸮J⸮o⸮u⸮r⸮n⸮e⸮y⸮D⸮i⸮r⸮e⸮c⸮t⸮i⸮o⸮n⸮"⸮:⸮2⸮,⸮"⸮S⸮t⸮o⸮p⸮A⸮r⸮e⸮a⸮N⸮a⸮m⸮e⸮"⸮:⸮"⸮R⸮o⸮s⸮e⸮n⸮b⸮o⸮r⸮g⸮s⸮g⸮a⸮t⸮a⸮n⸮"⸮,⸮"⸮S⸮t⸮o⸮p⸮A⸮r⸮e⸮a⸮N⸮u⸮m⸮b⸮e⸮r⸮"⸮:⸮5⸮0⸮2⸮1⸮3⸮,⸮"⸮S⸮t⸮o⸮p⸮P⸮o⸮i⸮n⸮t⸮N⸮u⸮m⸮b⸮e⸮r⸮"⸮:⸮5⸮0⸮2⸮1⸮4⸮,⸮"⸮S⸮t⸮o⸮p⸮P⸮o⸮i⸮n⸮t⸮D⸮e⸮s⸮i⸮g⸮n⸮a⸮t⸮i⸮o⸮n⸮"⸮:⸮n⸮u⸮l⸮l⸮,⸮"⸮T⸮i⸮m⸮e⸮T⸮a⸮b⸮l⸮e⸮d⸮D⸮a⸮t⸮e⸮T⸮i⸮m⸮e⸮"⸮:⸮"⸮2⸮0⸮1⸮8⸮-⸮0⸮3⸮-⸮1⸮3⸮T⸮2⸮0⸮:⸮4⸮0⸮:⸮0⸮5⸮"⸮,⸮"⸮E⸮x⸮p⸮e⸮c⸮t⸮e⸮d⸮D⸮a⸮t⸮e⸮T⸮i⸮m⸮e⸮"⸮:⸮"⸮2⸮0⸮1⸮8⸮-⸮0⸮3⸮-⸮1⸮3⸮T⸮2⸮0⸮:⸮4⸮0⸮:⸮0⸮5⸮"⸮,⸮"⸮D⸮i⸮s⸮p⸮l⸮a⸮y⸮T⸮i⸮m⸮e⸮"⸮:⸮"⸮2⸮0⸮:⸮4⸮0⸮"⸮,⸮"⸮J⸮o⸮u⸮r⸮n⸮e⸮y⸮N⸮u⸮m⸮b⸮e⸮r⸮"⸮:⸮2⸮2⸮1⸮1⸮9⸮,⸮"⸮D⸮e⸮v⸮i⸮a⸮t⸮i⸮o⸮n⸮s⸮"⸮:⸮n⸮u⸮l⸮l⸮}⸮]⸮,⸮"⸮T⸮r⸮a⸮i⸮n⸮s⸮"⸮:⸮[⸮]⸮,⸮"⸮T⸮r⸮a⸮m⸮s⸮"⸮:⸮[⸮]⸮,⸮"⸮S⸮h⸮i⸮p⸮s⸮"⸮:⸮[⸮]⸮,⸮"⸮S⸮t⸮o⸮p⸮P⸮o⸮i⸮n⸮t⸮D⸮e⸮v⸮i⸮a⸮t⸮i⸮o⸮n⸮s⸮"⸮:⸮[⸮]⸮}⸮}⸮<⸮/⸮p⸮r⸮e⸮>⸮
⸮<⸮/⸮b⸮o⸮d⸮y⸮>⸮
⸮<⸮/⸮h⸮t⸮m⸮l⸮>⸮

disconnecting.



Tycker det borde bli rätt först och sen komma blaj om det nu är helt fel på min syntax?


Upp
 Profil  
 
InläggPostat: 06.55 2018-03-20 
EF Sponsor

Blev medlem: 04.18 2011-12-05
Inlägg: 633
Ort: Åland
Helt blaj är det väl inte? :humm:
Plockar du bort alla ⸮ så blir det ju rätt.
Så nånting i din loop spottar ur sig något extra varje varv.

Det kan inte va så simpelt att du behöver specificera datatyp typ Serial.print(r, DEC); ?

Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
connecting...
connected
HTTP/1.1 200 OK

Date: Mon, 19 Mar 2018 21:41:32 GMT

Server: Apache/2.4.25 (Debian)

Last-Modified: Tue, 13 Mar 2018 19:18:33 GMT

ETag: "58a-567501fda5440"

Accept-Ranges: bytes

Content-Length: 1418

Connection: close

Content-Type: text/html



<html>
<head></head>
<body>
<pre style="word-wrap: break-word; white-space: pre-wrap;">{"StatusCode":0,"Message":null,"ExecutionTime":29,"ResponseData":{"LatestUpdate":"2018-03-13T20:14:21","DataAge":11,"Metros":[],"Buses":[{"GroupOfLine":null,"TransportMode":"BUS","LineNumber":"509","Destination":"Danderyds sjukhus","JourneyDirection":1,"StopAreaName":"Rosenborgsgatan","StopAreaNumber":50213,"StopPointNumber":50213,"StopPointDesignation":null,"TimeTabledDateTime":"2018-03-13T20:17:39","ExpectedDateTime":"2018-03-13T20:21:11","DisplayTime":"6 min","JourneyNumber":22056,"Deviations":null},{"GroupOfLine":null,"TransportMode":"BUS","LineNumber":"509","Destination":"Danderyds sjukhus","JourneyDirection":1,"StopAreaName":"Rosenborgsgatan","StopAreaNumber":50213,"StopPointNumber":50213,"StopPointDesignation":null,"TimeTabledDateTime":"2018-03-13T20:32:39","ExpectedDateTime":"2018-03-13T20:34:27","DisplayTime":"19 min","JourneyNumber":22079,"Deviations":null},{"GroupOfLine":null,"TransportMode":"BUS","LineNumber":"509","Destination":"Brommaplan","JourneyDirection":2,"StopAreaName":"Rosenborgsgatan","StopAreaNumber":50213,"StopPointNumber":50214,"StopPointDesignation":null,"TimeTabledDateTime":"2018-03-13T20:40:05","ExpectedDateTime":"2018-03-13T20:40:05","DisplayTime":"20:40","JourneyNumber":22119,"Deviations":null}],"Trains":[],"Trams":[],"Ships":[],"StopPointDeviations":[]}}</pre>
</body>
</html>


Upp
 Profil  
 
InläggPostat: 10.09 2018-03-20 
Användarvisningsbild

Blev medlem: 13.58 2016-04-05
Inlägg: 1521
Ort: Helsingfors
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
String SLData = String(c);    // Stoppar in det jag läser i strängen SLData

"Stoppar in" stämmer för det är just det som brutalt sker, vill du däremot bygga up din sträng i en buffer så måste instoppningspositionen stegas framåt. Sen först när hela strängen är klar blir det dags att söka i den och printa ut, i stället för att skriva ett tecken (+ skräp) varje varv.


Upp
 Profil  
 
InläggPostat: 11.44 2018-03-20 

Blev medlem: 21.06 2011-01-29
Inlägg: 676
Vi kan gå igenom programmet rad för rad. Indata är "HTTP ..."
char c = client.read(); Läs ett tecken ('H') till c
String SLData = String(c); Bygg en sträng av c, dvs "H"
Serial.print(SLData); Skriv ut "H"
char r = SLData.indexOf("DisplayTime", 1); Testa om "H" innehåller "DisplayTime". Det gör det inte, r = -1
Serial.print(r); Skriv ut -1 som ASCII, terminalen vet inte hur den ska tolka det och skriver ?
Sen fortsätt tecken för tecken genom hela texten.

Testa om det här fungerar bättre (otestad kod)
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
void loop() {
   String SLData;
   while (client.available()) {
      SLData += client.read();
   }

   if (SLData.length() > 0) {
      Serial.print(SLData);

      int r = SLData.indexOf("DisplayTime", 1);
      if (r >= 0) {
         Serial.print("DisplayTime finns på position ");
         Serial.print(r);
      }
   }
}


Upp
 Profil  
 
InläggPostat: 12.16 2018-03-20 
Användarvisningsbild

Blev medlem: 19.48 2013-10-01
Inlägg: 979
Ort: Orust
Det kommer väl nästan 2000 tecken, jag undrar om minnet kommer att räcka?
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
   String SLData;
   while (client.available()) {
      SLData += client.read();
   }


Upp
 Profil  
 
InläggPostat: 17.54 2018-03-20 

Blev medlem: 21.06 2011-01-29
Inlägg: 676
Jo det är sant, glömde bort hur lite minne det finns.

Man måste nog göra någon egen strängsökfunktion som bara sparar en lite del av texten åt gången.


Upp
 Profil  
 
InläggPostat: 18.13 2018-03-20 
Användarvisningsbild

Blev medlem: 10.07 2008-01-22
Inlägg: 1738
Ort: Sollentuna
Om man nu inte kan trimma ner det data som hamnar på den egna servern till att endast innehålla det relevanta?
Alternativt bygger en liten "tjänst" som kan "strippa ner" data vid requesttillfället.

Parse:a (potentiellt stora) strängar låter inte som ett perfekt jobb för en Arduino

/j


Upp
 Profil  
 
Visa inlägg nyare än:  Sortera efter  
Svara på tråd  [ 95 inlägg ]  Gå till sida 1, 2, 3, 4, 5 ... 7  Nästa

Alla tidsangivelser är UTC + 1 timme


Vilka är online

Användare som besöker denna kategori: Google [Bot] och 5 gäster


Du kan inte skapa nya trådar i denna kategori
Du kan inte svara på trådar i denna kategori
Du kan inte redigera dina inlägg i denna kategori
Du kan inte ta bort dina inlägg i denna kategori
Du kan inte bifoga filer i denna kategori

Sök efter:
Hoppa till:  
   
Drivs av phpBB® Forum Software © phpBB Group
Swedish translation by Peetra & phpBB Sweden © 2006-2010