Fri 19:22
Даже если это Майн Кампф, все равно давайте.
Fri 19:22
И лютый троллинг.
Fri 19:22
Так что мешает дать эту книгу?
Fri 19:22
Нет, я об этом не слышал. Но я слышал о существовании ZIP-бомб.
Fri 19:22
Откуда сведения о содержимом? И как-то слишком маленькое это число, чтобы там уместить и PDF, и DOCX, и картинки. У меня всё больше складывается впечатление, что среди нас есть тролль.
Fri 19:22
То получается, то нет - так не бывает. Вы точно знаете, что это число содержит GZIP заголовок? Если да, то приведите код, который преобразует это число в байтовое представление, содержащее GZIP заголовок. Ваш код не подходит.
Fri 19:22
Из вашего числа не получается 1f 8b 08. Получается 01 fe 9a.
 

 Русский язык

Основной чат сайта «Русский язык»
Jun 14 05:10
Может ли Гелла оказывать сексуальные услуги?
 
Mar 17 10:12
А что такое "язык смайликов"?
 
Jun 19, 2023 08:02
Вот уж в каком режиме находится ELM - это я не смотрел. Вы же сами сказали, что эти команды перечислены в его даташите. Вот там и смотрите, бывает ли у него вообще какой-то режим, кроме AT.
Jun 19, 2023 08:02
Когда модуль находится в режиме AT-команд, он самостоятельно обрабатывает все поступающие команды, и не отправляет их подключённым устройствам. Получается, что он пытается обработать команды, которые предназначены для ELM. Да, он должен выйти из этого режима, чтобы мог пересылать данные подключённому устройству.
Jun 19, 2023 08:02
"Если присутствует команда AT+LINK=6635,56,7890AB, то через несколько секунд модуль выходит из режима AT и при нажатой кнопке…" - как я понимаю, фактически подключение и выход из режима команд происходит не сразу, а через несколько секунд. Поэтому на команду STATE вам отвечает HC-05, а на последующие команды - никто. Так как соединение ещё не выполнено.
Jun 19, 2023 08:02
drive2.ru/b/465048614524158657 Как я понял, PAIR делает сопряжение устройств (просто добавляет в список подключённых), а LINK выходит из режима AT-команд, чтобы можно было посылать команды подключённому устройству. Я потому и просил раньше команду RESET выполнить, что пытался понять, как выйти из режима AT-команд.
Jun 19, 2023 08:02
Попробуйте следующую последовательность команд: AT+RMAAD; AT+BIND...; AT+CMODE=0; AT+ROLE=1; AT+PWSD...; AT+PAIR...; AT+RESET. Затем посылайте команды в ELM.
Jun 19, 2023 08:02
Попробуйте после команды AT+STATE? выполнить команду AT+RESET, подождать полсекунды и дальше посылать команды к ELM. Кнопку не нажимать.
Jun 19, 2023 08:02
Собственно, вы говорили, что меняли скорость командой AT+UART=9600,0,0. Это какую скорость вы поменяли: между Arduino и Bluetooth модулем или между Bluetooth модулем и ELM?
Jun 19, 2023 08:02
А ваш bluetooth модуль случайно не управляется посредством AT-команд? Может на эти команды вам модуль отвечает, а не ELM?
Jun 19, 2023 08:02
Стало быть, в первоначальном варианте кода все команды до AT+STATE? включительно выполняются номально. После этой команды вы пытаетесь выполнять команды AT+PAIR=0010,CC,4F3603,20\r\n, ATZ\r\n, AT015B\r\n, 015B\r\n, ATRV\r\n, 0105\r\n, at i\r\n, at rv\r\n, ati\r\n, atrv\r\n, и на них ответа не приходит. Если же после команды AT+STATE? выполнить любую команду из тех, что была выполнена ранее, в том числе ту же самую команду, то ответ приходит. Напрашивается вывод: эти команды невалидны?
Jun 19, 2023 08:02
Результат не может быть тот же. Если стороны обмена данными по UART работают на разных скоростях, то у вас на первой же команде всё сломается.
Jun 19, 2023 08:02
Бит/с, а не кбит/с. Если меняли скорость, то уверены, что она там не сохранилась в ПЗУ? Действительно ли сейчас нужно подключаться со скоростью 38400, а не 9600?
Jun 19, 2023 08:02
getSetAtCommand, наверное, правильно. А вот loop - точно неправильно. Проверьте условие, которое я указал. При вводе команды AT+PAIR=0010,CC,4F3603,20\r\n на вход функции getSetAtCommand попадёт не то, что вы ожидаете.
Jun 19, 2023 08:02
Возможно они действительно не доходят из-за вашей функции loop. У вас очень странное условие окончания ввода: if (c != '\n' && i < 49). Что вы хотели этим сказать? В команде не должно быть цифр? Но допустим у нас оно сработало. Что вы делаете дальше? Приписываете нуль-терминатор? Допустим. Но дальше вы используете какой-то особый класс String, причём тип char[] приводится к типу String. Потом вы добавляете в конец строки символы \r\n. Вы уверены, что они добавятся не после символа \0? Воспользуйтесь отладчиком, пройдите программу по шагам, и вы найдёте ответы на эти вопросы.
 
Apr 28, 2023 11:15
В этом и есть главное отличие от python. Скрипты на python исполняются интерпретатором без преобразования его в машинный код. Поэтому интерпретатор всегда может указать на строку, в которой возникла ошибка. В любом компилируемом языке это в общем случае невозможно.
Apr 28, 2023 11:15
хотелось бы, чтоб сообщение об ошибке "тыкало" в такое место, сообщая, что делается что-то не то, а именно выход за границы массива - это невозможно, так как на данном этапе программа уже скомпилирована в исполняемый файл, а исполняемый файл содержит только машинный код, и ничего не знает об исходном коде, и о том, на какой строчке находится ваше вместо n стоит n+1. В качестве альтернативы можно рассмотреть построение отладочной сборки и запуск программы под отладчиком. Это можно сделать с помощью любой современной IDE. Правда, с vim придётся повозиться.
Apr 28, 2023 11:15
Вот вы пишете команду g++ filename.cpp, затем ./a.out. После какой из этих двух команд получается ошибка?
Apr 28, 2023 11:15
Если всё-таки речь идёт об ошибках исполнения, то в дополнение к коду нужны входные данные, которые приводят к ошибке.
Apr 28, 2023 11:15
Закралось подозрение, что вы путаете ошибки компиляции и ошибки исполнения. Ошибки компиляции возникают, когда в тексте программы присутствуют дефекты, которые приводят к невозможности сборки исполняемого файла. Ошибки исполнения возникают, когда вы уже собрали исполняемый файл, запустили его, но программа работает не так, как ожидается. Ошибку какого типа вы наблюдаете?
Apr 28, 2023 11:15
Как в питоне вы сообщений не получите, т.к. это разные языки. Теперь посмотрите: gcc.godbolt.org/z/4v6xMbbx7. Я поменял версию g++ на вашу и добавил около 300 строк кода, каждая из которых что-то делает с переменной vra. g++ выдаёт ОДНУ ошибку: <source>:4:5: error: 'vra' was not declared in this scope vra = 3; ^~~. Так что же вы хотите?
Apr 28, 2023 11:15
@NeoFanatic, сейчас на вашем вопросе висит 3 голоса за закрытие из 5. Если вы так настойчиво игнорируете уточняющие вопросы, то ваш вопрос будет закрыт.
Apr 28, 2023 11:15
@NeoFanatic, HolyBlackCat предоставил вам примеры сообщений об ошибках, полученных в разных компиляторах. Что именно в этих сообщениях кажется вам "нечитаемым", "непонятным"? Или у вас какие-то другие сообщения? Приведите пример (с помощью правки вопроса) какое сообщение вам выдал компилятор, что в нём вам непонятно, и что вы хотите увидеть вместо этого сообщения. А Ubuntu 7.5.0 - это не компилятор, это операционная система, причём не самая свежая.
 
Apr 17, 2020 13:57
Тогда смотрите Errata Sheet на ваш контроллер. Скорее всего, проблема там. Какой у вас контроллер? Я хочу у себя посмотреть.
Apr 17, 2020 13:57
Раз программа в данном примере не вылетела, то значит переполнения скорее всего нет - функция vTaskDelay требует меньше стека, чем ваши функции. Других идей пока нет, если только на весь код посмотреть. А кстати, вы не пробовали генерировать стартовый код через STM32CubeMX? С ним можно гарантировать правильное поведение всех библиотек, которые подключаете через эту программу.
Apr 17, 2020 13:57
А если в задаче убрать весь код (кроме цикла), поведение поменяется? Или чтобы там был только taskYIELD ?
Apr 17, 2020 13:57
Тогда такой вариант. Напишите несколько функций-пустышек (например, которые складывают, умножают числа). И вызывайте их из вашей задачи, остальной код уберите. Желательно, чтобы в них было побольше локальных переменных, можно даже массив объявить. У меня по прежнему подозрение на переполнение стека. Возможно, вы неправильно настроили контроль.
Apr 17, 2020 13:57
Приведите код создания задачи и запуска планировщика. А в обработчик vApplicationStackOverflowHook программа попадает? И какой метод проверки выбран - 1 или 2? freertos.org/Stacks-and-stack-overflow-checking.html
Apr 17, 2020 13:57
И что значит попадает в blocking_handler() из-за Hard Fault? Что такое blocking_handler?
Apr 17, 2020 13:57
Какой-то ещё код есть? Прерывания какие-нибудь включены? Набор инструкций (ARM, THUMB) выбран правильно?