Fórum témák

» Több friss téma
Lapozás: OK   139 / 139
(#) kameleon2 válasza TavIR-AVR hozzászólására (») Hé, 21:19 /
 
Milyen gyári kódra gondolsz? Van erre minta? Ott hasal el, amikor le kellene tölteni Error 301, Error 404, vagy Error-1 a válasz. Nekem úgy tűnik - el sem jut oda, hogy lehessen bárhová letölteni. Ha van valakinek olyan mintakód részlete, ami segíthet és működik - érdekelne.
A hozzászólás módosítva: Hé, 21:21
(#) tki válasza kameleon2 hozzászólására (») Kedd, 1:54 /
 
Ennyire szófukar leírásokkal nehéz mit kezdeni - először neked kell dolgoznod, hogy egyértelmű legyen, mi a helyzet és mit akarsz, de nagyjából el tudom képzelni: kliensként el szeretnél érni resource-okat a firmware-ből az Interneten nyilván egy kicsit módosított programkóddal, amibe tesztfüggvények kerültek vagy a gyári kódot teszteled, és mindez nem úgy működik, ahogy szeretnéd.

A 404-es valóban azt jelenti, hogy nem érte el az eszköz az adott oldalt, de a TLS-nek ehhez még nincs köze; az adott oldal vagy fájl vagy akármilyen erőforrás ebben az esetben tényleg nem található, amit el szeretnél érni.

A 301-es viszont olyan értelemben nem hibaüzenet, hogy a szerver tudja, hol az adott erőforrás, csak egy átirányítás szükséges hozzá, mert nem a kért címen van. Ez azt jelenti, hogy ha ezt nem tette meg "magától" a meghívott függvény, akkor a 301-es válaszban kapott URL-lel neked kell egy új kérést csinálnod, és akkor már megkapod a kívánt erőforrást (fájlt, akármit). Ez akár biztatónak is mondható.

HTTP 1-es hiba nem létezik, az az adott szoftvertől jövő valamilyen saját hibaüzenet lehet, vagy pedig HTTP 1xx, három számjegyű üzenet volt - bár ez sem valószínű, mert a 100-asok folyamatban levő kérések státuszai, és szerintem egy "normál" lekéréssel, a szokásos kliens oldali függvényekkel olyat nem kaphatsz. De nem vagyok biztos benne, eddig csak szervert írtam ESP-re. : -) VIszont ha az alap fejlesztőrendszer függvénye, API-ja van használva a lekéréshez, akkor ezt a doksiban könnyű megtalálni (hogy milyen visszatérési értékei lehetnek az adott függvénynek).
A hozzászólás módosítva: Kedd, 2:04
(#) kameleon2 válasza tki hozzászólására (») Sze, 20:53 /
 
Nem 1-es, hanem "-1" hibaüzenetet kaptam, ami a chatgpt szerint létező hibakód.
Idézet:
„Az httpCode == -1 pont ilyen rejtett SSL/TLS kudarcot jelez”
Van egy mintakódom, ebből talán jobban látszik a szándék:
  1. #include <WiFi.h>
  2. #include <HTTPClient.h>
  3. #include <unzipLIB.h>
  4. #include <Adafruit_GFX.h>
  5. #include <Adafruit_ST7735.h>
  6. #include <SPI.h>
  7.  
  8. // ----- PINOK -----
  9. #define TFT_CS     2
  10. #define TFT_RST    5
  11. #define TFT_DC     0
  12. #define TFT_SCLK   3
  13. #define TFT_MOSI   4
  14. #define EAR_PIN    6
  15.  
  16. // ----- WIFI -----
  17. const char* ssid = "xxxxx";
  18. const char* password = "yyyyy";
  19.  
  20. // ----- HARDVER -----
  21. SPIClass spi(FSPI);
  22. Adafruit_ST7735 tft = Adafruit_ST7735(&spi, TFT_CS, TFT_DC, TFT_RST);
  23.  
  24. // ----- AUDIO -----
  25. void playBlock(uint8_t* data, int len) {
  26.   for (int i = 0; i < len; i++) {
  27.     uint8_t b = data[i];
  28.     for (int j = 0; j < 8; j++) {
  29.       digitalWrite(EAR_PIN, (b & 0x80) ? HIGH : LOW);
  30.       delayMicroseconds(300);
  31.       b <<= 1;
  32.     }
  33.   }
  34.   digitalWrite(EAR_PIN, LOW);
  35.   delay(10);
  36. }
  37.  
  38. // ----- UNZIP + PLAY -----
  39. bool unzipAndPlay(uint8_t* zipBuf, int zipLen) {
  40.   UNZIP zip;
  41.   if (zip.openZIP(zipBuf, zipLen) != 0) return false;
  42.   if (zip.gotoFirstFile() != 0) return false;
  43.   if (zip.openCurrentFile() != 0) return false;
  44.  
  45.   const int MAX_LEN = 49152;
  46.   uint8_t* data = (uint8_t*)malloc(MAX_LEN);
  47.   if (!data) return false;
  48.  
  49.   int total = 0;
  50.   while (total < MAX_LEN) {
  51.     int r = zip.readCurrentFile(&data[total], MAX_LEN - total);
  52.     if (r <= 0) break;
  53.     total += r;
  54.   }
  55.   zip.closeCurrentFile();
  56.  
  57.   if (total < 3) {
  58.     free(data);
  59.     return false;
  60.   }
  61.  
  62.   if (data[0] == 0x13 && data[1] == 0x00) {
  63.     int ptr = 0;
  64.     while (ptr + 2 < total) {
  65.       uint16_t len = data[ptr] + (data[ptr + 1] << 8);
  66.       if (ptr + 2 + len > total) break;
  67.       playBlock(&data[ptr + 2], len);
  68.       ptr += 2 + len;
  69.     }
  70.   } else if (total > 10 && memcmp(data, "ZXTape!", 7) == 0) {
  71.     int ptr = 10;
  72.     while (ptr + 4 < total) {
  73.       if (data[ptr] == 0x10 && ptr + 4 <= total) {
  74.         uint16_t len = data[ptr + 2] + (data[ptr + 3] << 8);
  75.         if (ptr + 4 + len > total) break;
  76.         playBlock(&data[ptr + 4], len);
  77.         ptr += 4 + len;
  78.       } else {
  79.         break;
  80.       }
  81.     }
  82.   } else {
  83.     free(data);
  84.     return false;
  85.   }
  86.  
  87.   free(data);
  88.   return true;
  89. }
  90.  
  91. // ----- ZIP LETÖLTÉS IP + HOST fejléccel -----
  92. bool downloadAndPlayZIP() {
  93.   WiFi.begin(ssid, password);
  94.   tft.fillScreen(ST77XX_BLACK);
  95.   tft.setCursor(0, 0);
  96.   tft.println("WiFi kapcsolodas...");
  97.  
  98.   int tries = 0;
  99.   while (WiFi.status() != WL_CONNECTED && tries++ < 20) {
  100.     delay(500);
  101.   }
  102.  
  103.   if (WiFi.status() != WL_CONNECTED) {
  104.     tft.println("WiFi HIBA!");
  105.     return false;
  106.   }
  107.  
  108.   tft.println("Csatlakozva!");
  109.   delay(500);
  110.   tft.print("IP: ");
  111.   delay(500);
  112.   tft.println(WiFi.localIP());
  113.   delay(1000);
  114.  
  115.   // LETÖLTÉS IP + Host fejléc trükkel
  116.   tft.println("Letoltes inditasa...");
  117.   HTTPClient http;
  118.   http.begin("http://77.68.76.140/pub/sinclair/games/m/ManicMiner.tzx.zip");
  119.   http.setUserAgent("SpecPitty/1.0");
  120.   http.addHeader("Host", "worldofspectrum.org");
  121.   int httpCode = http.GET();
  122.  
  123.   if (httpCode != 200) {
  124.     tft.print("HTTP hiba: ");
  125.     delay(1000);
  126.     tft.println(httpCode);
  127.     delay(2000);
  128.     return false;
  129.   }
  130.  
  131.   int len = http.getSize();
  132.   tft.print("Meret: ");
  133.   tft.println(len);
  134.   delay(1000);
  135.  
  136.   uint8_t* buf = (uint8_t*)malloc(len);
  137.   if (!buf) {
  138.     tft.println("Memoria HIBA!");
  139.     return false;
  140.   }
  141.  
  142.   WiFiClient* stream = http.getStreamPtr();
  143.   int pos = 0;
  144.   tft.println("Letoltes...");
  145.   while (http.connected() && pos < len) {
  146.     if (stream->available()) {
  147.       buf[pos++] = stream->read();
  148.     }
  149.   }
  150.   http.end();
  151.  
  152.   tft.fillScreen(ST77XX_BLACK);
  153.   tft.setCursor(0, 0);
  154.   tft.println("Kicsomagolas...");
  155.   bool ok = unzipAndPlay(buf, len);
  156.   free(buf);
  157.  
  158.   if (!ok) {
  159.     tft.println("Kicsomagolasi hiba!");
  160.     delay(2000);
  161.   }
  162.  
  163.   return ok;
  164. }
  165.  
  166. // ----- SETUP -----
  167. void setup() {
  168.   pinMode(EAR_PIN, OUTPUT);
  169.   digitalWrite(EAR_PIN, LOW);
  170.  
  171.   spi.begin(TFT_SCLK, -1, TFT_MOSI, TFT_CS);
  172.   tft.initR(INITR_REDTAB);
  173.   tft.setRotation(1);
  174.   tft.fillScreen(ST77XX_BLACK);
  175.   tft.setTextColor(ST77XX_GREEN);
  176.   tft.setTextSize(1);
  177.   tft.setCursor(0, 0);
  178.   tft.println("SpecPitty v0");
  179.  
  180.   bool success = downloadAndPlayZIP();
  181.   tft.fillScreen(ST77XX_BLACK);
  182.   tft.setCursor(0, 0);
  183.   if (!success) {
  184.     tft.println("Letoltes/Kicsomag. hiba!");
  185.   } else {
  186.     tft.println("Betoltes kesz!");
  187.   }
  188. }
  189.  
  190. // ----- LOOP -----
  191. void loop() {
  192.   delay(1000);
  193. }
A hozzászólás módosítva: Sze, 20:54
(#) tki válasza kameleon2 hozzászólására (») Sze, 21:49 /
 
Rájöttem, csak emiatt már nem akartam újra írni. Mindenesetre nem segít, mert az egy általános hibaüzenet, úgyhogy "pont ezt" nem jelenti, csak ilyen is történhet..

Mi lett azzal, amit a 301-es hibára válaszoltam, nem segített? És melyik hiba mikor jön elő? Csak ideraktad a kódot.
(#) tki válasza tki hozzászólására (») Sze, 22:05 /
 
Mellesleg megnéztem ezt a linket, és lehet, hogy korábban volt ilyen fájl, de most biztosan nincs - miközben a favicon meg elérhető ugyanott. Https-sel is ugyanez az eredmény.

Az IP Info szerint valahol Angliában van.
A hozzászólás módosítva: Sze, 22:11
Következő: »»   139 / 139
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem