Пытаюсь заставить работать модуль wi-fi от Амперки @amperka/wifi. Особенность в том, что внутри себя он использует модуль AT. Модуль wifi расположен на сервере Амперки: https://github.com/amperka/espruino-modcat/blob/master/modules/@amperka/wifi.js Зависимый от него модуль AT расположен на серере espruino: http://www.espruino.com/modules/AT.js В настройках WebIDE (Window-версия) ставлю как написано у вас в wiki: Communications -> Module url: http://js.amperka.ru/modules Communications -> JavaScript Compiler URL: https://www.espruino.com/service/compiler Board -> Board JSON URL: http://js.amperka.ru/json Пробую заставить работать вот этот код: Код (Javascript): // Настраиваем интерфейс UART PrimarySerial.setup(115200); // логин и пароль WiFi-сети var SSID = 'Amperka.ru'; var PSWD = 'iskraJS'; var wifi = require('@amperka/wifi').setup(PrimarySerial, function(err) { // подключаемся к Wi-Fi сети wifi.connect(SSID, PSWD, function(err) { print('Connected'); // Выполняем запрос require('http').get('http://amperka.ru', function(res) { var response = ''; res.on('data', function(d) { response += d; }); res.on('close', function() { print(response); }); }); }); }); В результате выводит в Module 'AT' not found: Код (Javascript): WARNING: Module "AT" not found Uncaught Error: Field or method "connect" does not already exist, and can't create it on undefined at line 1 col 88 ...ESP8266.at=at=require("AT").connect(a),require("NetworkJS").... ^ in function "setup" called from line 19 col 2 }); ^ =undefined Когда заменяю в настройках IDE Communications -> Module url: на http://www.espruino.com/modules выводит уже Module @amperka/wifi not found. Код (Javascript): >ERROR: SD card must be setup with E.connectSDCard first WARNING: Module "@amperka/wifi" not found Uncaught Error: Field or method "setup" does not already exist, and can't create it on undefined at line 9 col 36 ... = require('@amperka/wifi').setup(PrimarySerial, function(er... ^ =undefined С этим же путем до модулей пробую слудующий код: Код (Javascript): var a = require('AT'); console.log(a); Ошибок нет. Меняю Module path на амперковский http://js.amperka.ru/modules и снова Код (Javascript): Module "AT" not found. Из этого делаю вывод, что не работает проксировакние отсутствующих модулей с вашего репозитария на репозитарий espruino. Почините пожалуйста! Версия прошивки: 1v92.194
Да уж, смотрю у всё большего числа пользователей возникает проблема с невосприниманием IDE модулей с разных ресурсов... Попробуйте, как временное решение, в настройках IDE в Communications -> Module URL указать http://jsff.ru/modules/ ... Я пока разместил копии модулей с разных ресурсов в одном месте.... возможно, позже настрою автообновление на время, пока Амперке удастся разрулить данную ситуацию...
Меня смущает эта строка Код (C++): >ERROR: SD card must be setup with E.connectSDCard first На гитхабе есть похожая проблема https://github.com/espruino/EspruinoWebIDE/issues/116 связанная с рекурсивными зависимостями
Такое сообщение об ошибке возникает если в IDE модуль из Интернета (или из локальной папки проекта) не доступен, и тогда IDE не подменяет в коде require на содержимое модуля, а в плату прошивается код с require и интерпретатор пытается считать модуль с SD карты - и если SD карта с модулем не подключена, то выдается ошибка.
О, добрый человек, спасибо!! А оно точно работает? По http://jsff.ru/modules/ выдаёт 403 ошибку. Если кинетесь файлами, могу у себя где-нибудь их разместить...
Это политика просмотра папок по умолчанию. Проверить работоспособность можно указав полный путь к библиотеке - например, http://jsff.ru/modules/AT.js или http://jsff.ru/modules/@amperka/wifi.js список тот же что и у оффициальных источников... если не доверяете, то можете скачать сами нужные библиотеки и разместить вообще локально. Как? Есть описание в теме ЧаВо данного раздела
Есть еще вариант с локальным расположением модулей. В настройках IDE настроить все по умолчанию на Espruino. Потом в setting->Project указать локальную папку (например D:\JS) А дальше закинуть необходимые Амперка модули в D:\JS\modules и убрать @amperka оставив var wifi = require('wifi')…….
Понял, спасибо большое! Заработало! Так можно просто разместить их локально? Даже без сервера? не знал об этом, спасибо!
Тогда придется проверить все модули амперки на наличие в них своих зависимостей и в них тоже убрать @amperka из пути