Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Общие баги/глюки/проблемы в пакете Sming

Тема в разделе "Sming Open Source Framework", создана пользователем JustACat, 23 мар 2015.

  1. Alexander V. Ribchansky

    Alexander V. Ribchansky Читатель

    Сообщения:
    35
    Симпатии:
    9
    anakod, pvvx, во вложенном файле лог tcpdump при запросе "большой" веб-странички из инета, за ним лог запроса маленького json-а и в конце лог запроса той же "большой" странички из локалки.
    Если криво предоставил логи - пните, попробую как-то иначе...
     

    Вложения:

    • esp_web.txt
      Размер файла:
      40 КБ
      Просмотров:
      2
  2. alexhi

    alexhi Читатель

    Сообщения:
    77
    Симпатии:
    16
    Cпасибо, после пересборки Sming все заработало.
     
  3. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    10.344
    Симпатии:
    1.352
    Но обращения к TCP-стеку строят через интерфейс Arduino. А он "не заточен" под сетевые протоколы. Будите долго биться, пока не напишете раздельные драйвера по классам. HTTP - это уже не TCP-стек, а протокол уровнем над ним и имеет отличия для клиента и сервера. Класса драйвера - сервер-HTTP или клиент-HTTP я в Sming не наблюдаю...
    Web-socket-а тоже нет... Вижу только очередное обрамление LwIP, как у espconn. :)
     
    Последнее редактирование: 11 июн 2015
  4. Alexander V. Ribchansky

    Alexander V. Ribchansky Читатель

    Сообщения:
    35
    Симпатии:
    9
  5. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    10.344
    Симпатии:
    1.352
    Там поддержка не выше HTTP 0.9. :) А такого стандарта даже нет.
    "HTTP/2 - 11 февраля 2015 года опубликованы финальные версии черновика следующей версии протокола."
    К "серверу HTTP" клиент лезет с запросом HTTP 1.1 и , а разбора этого нет...
    И очень желательна всем поддержка ответа в "Transfer-Encoding: chunked". Для её реализации не требуется памяти, а наоборот сокращает расходы на большие буфера..
     
    Последнее редактирование: 11 июн 2015
  6. programmer

    programmer Читатель

    Сообщения:
    33
    Симпатии:
    7
    Продолжая тему I2C - теперь не могу наладить связь с Arduino (ATmega***). I2C сканер находит, да, но дальше дело не идет - прочитать что-нибудь у Slave на базе Arduino не получается (естественно Arduino легко читает у другой Arduino - это я проверил, на всякий). Логический анализатор мне тоже особо не помог... anakod, попробуйте, пожалуйста - наверняка у вас есть Arduino :)

    Код для Arduino:
    Код (Text):
    1.  
    2. #include <Wire.h>
    3.  
    4. void setup()
    5. {
    6.   Wire.begin(0x55);
    7.   Wire.onRequest(requestEvent);
    8. }
    9.  
    10. void loop()
    11. {
    12.  
    13. }
    14.  
    15. // function that executes whenever data is received from master
    16. void requestEvent()
    17. {
    18.   Wire.write(100);
    19. }
    20.  
    Код для Sming:
    Код (Text):
    1.  
    2. #include <user_config.h>
    3. #include <SmingCore/SmingCore.h>
    4.  
    5. Timer loopTimer;
    6.  
    7. void loop()
    8. {
    9.     WDT.alive();
    10.  
    11.     Serial.print(millis() / 1000);
    12.     Serial.print(": ");
    13.  
    14.     Wire.beginTransmission(0x55);
    15.     Wire.requestFrom(0x55, 1);
    16.     while(Wire.available()) {
    17.         Serial.print("READ ");
    18.         Serial.print((int)Wire.read());
    19.         Serial.println("");
    20.     }
    21.     Wire.endTransmission(true);
    22.  
    23.     Serial.println("");
    24. }
    25.  
    26. void init()
    27. {
    28.     Serial.begin(SERIAL_BAUD_RATE);
    29.     Serial.systemDebugOutput(true);
    30.  
    31.     Wire.pins(2, 4); // ваши пины
    32.     Wire.begin();
    33.  
    34.     WifiAccessPoint.enable(false);
    35.     WifiStation.enable(false);
    36.  
    37.     Wire.beginTransmission(0x55);
    38.     if (Wire.endTransmission() == 0) {
    39.         Serial.println("EXISTS!");
    40.     } else {
    41.         Serial.println("NOT EXISTS :(");
    42.     }
    43.  
    44.     loopTimer.initializeMs(500, loop).start();
    45. }
    46.  
    47.  
    Arduino к Arduino (для сравнения..)
    Раскрыть Спойлер
    Снимок экрана 2015-06-11 в 23.47.48.png


    ESP к Arduino
    Раскрыть Спойлер

    Первый раз:
    Снимок экрана 2015-06-11 в 23.48.06.png

    Последующие:
    Снимок экрана 2015-06-11 в 23.53.46.png
     
  7. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    10.344
    Симпатии:
    1.352
    Почему-же? Он четко показывает, что I2C на первом скрине на скорости до 100кГц, а на последующих - более 600кГц.
    "Первым общедоступным микропроцессором был 4-разрядный Intel 4004, представленный 15 ноября1971 года корпорацией Intel. Он содержал 2300 транзисторов, работал на тактовой частоте 92,6 кГц"
    Старые датчики, низкие скорости .... :) Телетайп на катушках ещё не подключали?
    (Пятница)
    PS: Увеличьте задержку low CLK в I2C драйвере.
     
    Последнее редактирование: 12 июн 2015
    programmer нравится это.
  8. programmer

    programmer Читатель

    Сообщения:
    33
    Симпатии:
    7
    Спасибо, до этого пробовал только ускорить I2C в Arduino - не помогло. Увеличил (пробовал разные и смотрел, что выходит) задержку в I2cMaster.h - появилась надежда, но... не особно помогло, стало принимать мусор, который и софт анализатора понять не может.

    Погуглил и нашел, что люди успешно состыковали ESP с Arduino, используя NodeMCU. Посмотрел их реализацию, адаптировал как есть в Sming - заработало! Работает правда медленно, на 50 кГц. Завтра буду смотреть в чем отличие от Sming'a.
     
    Последнее редактирование: 12 июн 2015
  9. clinkme

    clinkme Новичок

    Сообщения:
    32
    Симпатии:
    3
    Ошибка в Sming при использовании с SDK 1.1.0 и выше:
    Код (Text):
    1. c:/Espressif/ESP8266_SDK/lib\libmain.a(app_main.o): In function`user_uart_wait_tx_fifo_empty':
    2. (.irom0.text+0x340): undefined reference to `user_rf_pre_init'                
    3.  
    В appinit/user_main.c пропущено extern "C" при определении функции, должно быть
    Код (Text):
    1. extern "C" void __attribute__((weak)) user_rf_pre_init(void)
     
    Alexander V. Ribchansky нравится это.
  10. Tohakrat

    Tohakrat Новичок

    Сообщения:
    7
    Симпатии:
    4
    Обновился сегодня, до этого не обновлялся недели 2. Всплыла проблема - при передачи файла в окне терминала появляются строки onreadytosenddata, т.е загрузка прерывается. Проблема на httpserverbootstrap и airupdater при закачке прошивки.
     

    Вложения:

  11. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    Tohakrat, похоже что сервер не отдаёт данные. С чем соединяетесь?
     
  12. Tohakrat

    Tohakrat Новичок

    Сообщения:
    7
    Симпатии:
    4
    Соединялся с точкой доступа на ноуте. На следующий день все стало ок, т.е проблема была в точке доступа (передергивал ее несколько раз).
    Тестировал airupdater

    if (outputDebug) ets_uart_printf("Firmware upgrade finished\n");
    ((void (*)(void))0x40000080)(); // Hardcore reset vector
    ets_wdt_enable();
    while (1)
    ; // Reboot anyway!

    В посл строке вы зацикливаетесь, возможно моя точка доступа от этого ложится? Может стоит сначала от нее отключиться?
     
  13. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    В этом месте должна происходить перезагрузка. Для того чтобы она была возможно перезагрузить ESP один раз после прошивки (чтобы он вышел из режима программирования). После этого AirUpdate будет перезагружаться сам.
     
  14. glonium

    glonium Новичок

    Сообщения:
    71
    Симпатии:
    1
    Установил всё как по мануалу, установил примеры. Почему то не компилиться, пишет
    Раскрыть Спойлер

    Description Resource Path Location Type
    'PIN_PULLDWN_DIS' was not declared in this scope Digital.cpp /SmingFramework/SmingCore line 78 C/C++ Problem
    'PIN_PULLDWN_DIS' was not declared in this scope Digital.cpp /SmingFramework/SmingCore line 78 C/C++ Problem
    'PIN_PULLDWN_DIS' was not declared in this scope Digital.cpp /SmingFramework/SmingCore line 78 C/C++ Problem
    'PIN_PULLDWN_DIS' was not declared in this scope Digital.cpp /SmingFramework/SmingCore line 92 C/C++ Problem
    'PIN_PULLDWN_DIS' was not declared in this scope Digital.cpp /SmingFramework/SmingCore line 92 C/C++ Problem
    'PIN_PULLDWN_DIS' was not declared in this scope Digital.cpp /SmingFramework/SmingCore line 92 C/C++ Problem
    'PIN_PULLDWN_EN' was not declared in this scope Digital.cpp /SmingFramework/SmingCore line 86 C/C++ Problem
    'PIN_PULLDWN_EN' was not declared in this scope Digital.cpp /SmingFramework/SmingCore line 86 C/C++ Problem
    'PIN_PULLDWN_EN' was not declared in this scope Digital.cpp /SmingFramework/SmingCore line 86 C/C++ Problem
    Function 'PIN_PULLDWN_DIS' could not be resolved Digital.cpp /SmingFramework/SmingCore line 78 Semantic Error
    Function 'PIN_PULLDWN_DIS' could not be resolved Digital.cpp /SmingFramework/SmingCore line 92 Semantic Error
    Function 'PIN_PULLDWN_EN' could not be resolved Digital.cpp /SmingFramework/SmingCore line 86 Semantic Error
    mingw32-make.exe: *** [out/build/../Sming/SmingCore/Digital.o] Error 1 HttpServer_AJAX C/C++ Problem
    mingw32-make.exe: *** [out/build/../Sming/SmingCore/Digital.o] Error 1 Humidity_DHT22 C/C++ Problem
    mingw32-make.exe: *** [out/build/../Sming/SmingCore/Digital.o] Error 1 Light_BH1750 C/C++ Problem
    recipe for target 'out/build/../Sming/SmingCore/Digital.o' failed Makefile /HttpServer_AJAX line 330 C/C++ Problem
    recipe for target 'out/build/../Sming/SmingCore/Digital.o' failed Makefile /Humidity_DHT22 line 330 C/C++ Problem
    recipe for target 'out/build/../Sming/SmingCore/Digital.o' failed Makefile /Light_BH1750 line 330 C/C++ Problem
    Suggested parenthesis around expression 'PIN_FUNC_SELECT((EspDigitalPins[pin].mux), (EspDigitalPins[pin].gpioFunc))' Digital.cpp /SmingFramework/SmingCore line 16 Code Analysis Problem


    В чём дело не понятно
     
  15. glonium

    glonium Новичок

    Сообщения:
    71
    Симпатии:
    1
    Всё переустановил ничего не изменилось, не может найти PIN_PULLDWN_DIS и PIN_PULLDWN_EN
     
  16. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    10.344
    Симпатии:
    1.352
    В https://github.com/anakod/Sming этих [HASHTAG]#define[/HASHTAG] нет. Они были в старых SDK (менее 1.1.0, в esp_iot_sdk/include/eagle_soc.h ) и всё-равно не работают. Вы пытаетесь страслировать что-то очень старое...
     
  17. Космонавт

    Космонавт Новичок

    Сообщения:
    14
    Симпатии:
    0
    Установил по мануалу, через чоко (https://github.com/anakod/Sming/wiki/Windows-Quickstart). Установил примеры. ВЫбрал Basic_Blink, изменил Makefile-user.mk. При компиляции пишет это:
    Раскрыть Спойлер

    22:43:35 **** Incremental Build of configuration Sming for project Basic_Blink ****
    make all
    makefile:20: c:\tools\sming\Sming: Permission denied
    makefile:20: /Makefile-project.mk: No such file or directory
    make: *** No rule to make target `/Makefile-project.mk'. Stop.


    Так понимаю виной всему вот это: makefile:20: c:\tools\sming\Sming: Permission denied Но я на всю папку изменял права на "Полный доступ" для всех. В чем косяк? На двух машинах (дом, работа) такая бяка)
     
  18. alexhi

    alexhi Читатель

    Сообщения:
    77
    Симпатии:
    16
    Поставил свежий Sming стал перезагружаться модуль при таком коде:
    int i = 0;
    while (!digitalRead(0))
    {
    WDT.alive();
    delay(1000);
    Serial.print("Setting mode=");
    Serial.print(i++);
    }

    В предыдущем все работало ок. delay делал меньше не помогает. В чем может быть дело? Спасибо.
     
  19. Def461

    Def461 Новичок

    Сообщения:
    15
    Симпатии:
    1
    Попробуйте вместо 1 задержки на 1000мс:
    Код (Text):
    1. WDT.alive();
    2. delay(500);
    3. WDT.alive();
    4. delay(500);
    Но я бы рекомендовал посмотреть в сторону Timer.
     
  20. alexhi

    alexhi Читатель

    Сообщения:
    77
    Симпатии:
    16
    Я уменьшать delay уже пробывал пробывал , все равно перезагружается.
     

Поделиться этой страницей