Роджер
Я не могу быть во всем специалистом.
Denisio
тебе бы хотя бы про язык Си почитать
Denisio
а не писать методом проб и ошибок
Роджер
К сожелению опыт по другому не получается. Я ранее использовал подобный код и такой ошибки у меня не было
🤙🏻 ℙ𝔸𝕍𝔼𝕃
тебе бы хотя бы про язык Си почитать
Да там читать-то нечего, все основы войдут в методичку на 40 листов 😅 ок же прост как палка ))
Роджер
Как это исправить?
Роджер
Вы же понимаете, что слово специалист и технический можно растягивать очень долго. Может я ремонтник. а в программировании так себе. Или по другому обслуживаю ЭВМ.
Роджер
Роджер
Исправил, но почему это работает мне не понятно
Роджер
ip и mac разные должны быть
Вот и я думаю. Как сделать лучше. Я думаю. что лучше. я попробую написать это на python
MrSyabro
Для тех, кому не хватает имеющихся на рынке решений.
MrSyabro
https://telegra.ph/Razvivaem-lampu-Umnaya-lampa-na-lyuboj-vkus-11-02
Роджер
Подскажите в чем проблема? Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled. Core 1 register dump: PC : 0x400d1484 PS : 0x00060430 A0 : 0x800d1d1c A1 : 0x3ffb1f90 A2 : 0xffffcfd0 A3 : 0x3ffc07fc A4 : 0x3ffc078c A5 : 0x3ffc0788 A6 : 0x3ffc07b4 A7 : 0x3ffc07a4 A8 : 0x00000030 A9 : 0x00000000 A10 : 0x00000000 A11 : 0x3ffbebe8 A12 : 0x3ffc0790 A13 : 0x3ffc079a A14 : 0x3ffc0796 A15 : 0x3ffc07fc SAR : 0x0000000a EXCCAUSE: 0x0000001c EXCVADDR: 0x00000000 LBEG : 0x400014fd LEND : 0x4000150d LCOUNT : 0xfffffffe Backtrace: 0x400d1484:0x3ffb1f90 0x400d1d19:0x3ffb1fb0 0x4008aa81:0x3ffb1fd0
Роджер
Не могу сказать точно, но вроде бы паника ядра 1 из-за необработанного эксепшна.
Я могу скинуть код и примерное место от куда идет ошибка
Роджер
if (BufRead[1] == 0x45){ //Это работа с запросом пакета от фотографии Serial.print(ar_ack45);// Посылаем ответ, что пакет получен и посылаем пакет CommandContent = BufRead[4]; CommandContent = CommandContent<<8; CommandContent = CommandContent + BufRead[3]; Checksum = 0x55 + 0x46 + 0x01 + BufRead[4] + BufRead[3] + (PackageSize&0x00FF) + ((PackageSize&0xFF00)>>8); ar_ack46[3] = BufRead[4]; ar_ack46[4] = BufRead[3]; ar_ack46[5] = PackageSize&0x00FF; ar_ack46[6] = (PackageSize&0xFF00)>>8; // Считаем Checksum i = (PackageNO - 1) * PackageSize;//Начальное значение чтения байтов из массива fb q = PackageSize * PackageNO;// Конечное значение чтения байтов из массива fb if (q > PictureSize) {q = PictureSize;}; //Проверяем не вышли мы за переделы размера буфера for (i; i < q; i++){ Checksum = Checksum + fb->buf[i]; };// Считаем Checksum ar_Checksum[0] = Checksum&0x00FF; ar_Checksum[1] = (Checksum&0xFF00)>>8; //Теперь мы все. что подготовили отправляем в порт Serial.write(ar_ack46, 7); for (i; i < q; i++){ Serial.print(fb->buf[i]); }; Serial.write(ar_Checksum, 2); };
Роджер
Вот после начала выполнения данного куска кода крошится камера.
Роджер
Вот это и делаю
Роджер
Так уже более точный вопрос, в этом промежутке кода идет краш: for (i; i < q; i++){ Checksum = Checksum + fb->buf[i]; };// Считаем Checksum ar_Checksum[0] = Checksum&0x00FF; ar_Checksum[1] = (Checksum&0xFF00)>>8; //Теперь мы все. что подготовили отправляем в порт
Denisio
вангую выход за границы массива
Denisio
либо ar_Checksum либо fb->buf
Denisio
чексумма кстати очень так себе.
Denisio
она обычно не так считается.
Роджер
Я вот тоже думаю проблема в этом.
Роджер
Что касается сексуммы как китаец написал считать так и считаю. китает написал берешь складываешь все числа в байтах и последние 2 байта посылаешь в пакете
Denisio
писда...
ketbul
А что это строка должна делать?
Роджер
Ошибка в подсчете i и q . вывел их. а там -9008 и 0
ketbul
* это не умножить)
Роджер
Denisio
кто переменную будет обнулять!
Роджер
А что это строка должна делать?
Это типо выделения памяти с размром 0
ketbul
Это типо выделения памяти с размром 0
Указатель на null с типом камера
ketbul
Написано кривоваио просто
ketbul
https://prog-cpp.ru/c-pointers/
Роджер
Указатель на null с типом камера
Я не профессиональный разработчик
ketbul
Ну видимо теперь придётся, на уровне синтаксиса хотя б
Роджер
Есть же деление на джунов, мидолтонов и сеньеров. я думаю где то застрял на уровне недоджун
RadioJo
Коллеги, доброе утро. Под ESP8266 есть готовая прошивка с поддержкой WiFi Direct? Сориентируйте плиз
ketbul
вроде бы esp32 не умеет p2p
RadioJo
оно ж умеет точку доступа, нужен именно директ?
да, чтобы через него гнал телеметрию и через него слушал обратную команду типа reset счетчика
ketbul
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/network/esp_now.html
ketbul
?
ainu
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/network/esp_now.html
Отличный вариант если надо с контроллера на контроллер, но возможно @hamradios хочет между контроллером и компом
Василий
kDn
кто переменную будет обнулять!
расчет начального i там выше по тексту
RadioJo
Отличный вариант если надо с контроллера на контроллер, но возможно @hamradios хочет между контроллером и компом
смартфон с собственной приложухой, ходишь и с контроллеров снимаешь данные счетчика наработки часов
ainu
и появляется блютус (возможно)
ainu
или NFC (возможно) - не для каждого смартфона
Василий
и появляется блютус (возможно)
Разве он в этом чипе есть?
RadioJo
Мне чем дешевле, тем лучше, смартфоны андроиды у инженеров
RadioJo
Мне нужно считывать наработку часов , чтобы приложегние учитывало в табличку и когда доходит до лимита - алерт, что пора менять, и как поменял устройство, счетчик сбрасываешь
ainu
Василий
Но если их, контролёров много, то можно один точкой доступа, остальные к нему подключаются.
Василий
Общая сеть
RadioJo
Режим точки доступа
ну блин к каждому ходить цепляться? Вроде директ этим и был удобен
RadioJo
Да представь у тебя здание 10000м2 ... еще и вафлю тянуть везде? нафиг надо
RadioJo
тут задача жуткая экономия
RadioJo
С директом в этом плане больший плюс
ketbul
чтобы не цеплять это какой нибудь mqtt с гейтом
RadioJo
я так думал
RadioJo
)
ainu
Я так подозреваю, ты можешь директ разработать сам с нуля. Но это будет та ещё задачка
ketbul
https://www.esp32.com/viewtopic.php?t=6631
Василий
приложуха сможет
Ну она, по идее, может и к вифи цепляться, если прав хватит
Василий
Контроллеры медок собой подключаются и передают в одну точку
Василий
Вообще, я не знаю что у тебя за такие дешёвые инженеры, что они дешевле, чем вафлю раз протянуть
ainu
@hamradios в общем вот идея тебе
ainu
https://github.com/EspressifApp/IOT-Espressif-Android https://github.com/EspressifApp/IOT-Espressif-Android/blob/master/java/TYPE/com/espressif/iot/type/device/status/IEspStatusEspnow.java
ainu
У них есть наработки по подключению к esp-now через андроид приложение
ainu
Но я сам не тестил