Активность
- Последний час
-
У меня, наконец дошли руки до запуска блутуза. сначала проверил на прошивке что выложена здесь. все работает стабильно но подтупливает, особенно по сравнению с проводом. Решил что надо как-то распаралеллить нагрузку. В результате родилась следующая прошивка что принципиально другой режим обработки. результат порадовал! интерфейс стал заметно более отзывчивый. #include <freertos/FreeRTOS.h> #include <freertos/task.h> #include <driver/uart.h> #include <BluetoothSerial.h> #define BAUD_RATE 115200 * 8 #define SIZE_BUFFER 512 #define SIZE_FIFO SIZE_BUFFER * 8 #define SAVE_MODE //#define USE_PIN #ifdef USE_PIN const char* pin = "1234"; #endif const String device_name = "SCANMATIK #A111788"; BluetoothSerial SerialBT; uint8_t buffer[SIZE_BUFFER]; uint8_t bufferBT[SIZE_BUFFER]; unsigned int available=0; unsigned int availableBT=0; size_t bytesRead=0; size_t bytesReadBT=0; size_t bytesWrite=0; size_t bytesWriteBT=0; #ifdef SAVE_MODE uint32_t min_delay = 1; uint32_t max_delay = min_delay * 1024; uint32_t cur_delay = min_delay; uint32_t cur_delayBT = min_delay; uint32_t critical_size = (SIZE_FIFO / 4) * 3; #endif // Поток для обработки данных из последовательного порта void serial_reader_task(void* param) { for (; { available = Serial.available(); if (available > 0) { bytesRead = Serial.readBytes(buffer, min(available, sizeof(buffer))); bytesWrite = SerialBT.write(buffer, bytesRead); #ifdef SAVE_MODE if (cur_delay > min_delay) { if (available >= critical_size) { cur_delay = min_delay; } else { cur_delay /= 2; } } vTaskDelay(pdMS_TO_TICKS(cur_delay)); // пауза для минимизации нагрузки #endif } #ifdef SAVE_MODE else { if (cur_delay < max_delay) { cur_delay *= 2; } vTaskDelay(pdMS_TO_TICKS(cur_delay)); } #endif } } // Поток для обработки данных из Bluetooth void bluetooth_reader_task(void* param) { for (; { availableBT = SerialBT.available(); if (availableBT > 0) { // Чтение данных из Bluetooth bytesReadBT = SerialBT.readBytes(bufferBT, min(availableBT, sizeof(bufferBT))); bytesWriteBT = Serial.write(bufferBT, bytesReadBT); #ifdef SAVE_MODE if (cur_delayBT > min_delay) { if (availableBT >= critical_size) { cur_delayBT = min_delay; } else { cur_delayBT /= 2; } } vTaskDelay(pdMS_TO_TICKS(cur_delayBT)); // пауза для минимизации нагрузки #endif } #ifdef SAVE_MODE else { if (cur_delayBT < max_delay) { cur_delayBT *= 2; } vTaskDelay(pdMS_TO_TICKS(cur_delayBT)); } #endif } } void setup() { Serial.setRxBufferSize(SIZE_FIFO); Serial.setTxBufferSize(SIZE_FIFO); Serial.begin(BAUD_RATE); SerialBT.begin(device_name); memset(buffer, 0, sizeof(buffer)); memset(bufferBT, 0, sizeof(bufferBT)); // setup UART from hardware (RTS/CTS) uart_set_pin(UART_NUM_0, 1, 3, 22, 19); // UART, TX, RX, RTS, CTS uart_set_hw_flow_ctrl(UART_NUM_0, UART_HW_FLOWCTRL_CTS_RTS, 64); uart_set_mode(UART_NUM_0, UART_MODE_UART); SerialBT.begin(device_name); #ifdef USE_PIN SerialBT.setPin(pin); #endif Serial.print("AT-AB -BypassMode-\n"); // Назначение задач на разные ядра xTaskCreatePinnedToCore(serial_reader_task, "Serial Reader", 4096, NULL, 10, NULL, 0); xTaskCreatePinnedToCore(bluetooth_reader_task, "Bluetooth Reader", 4096, NULL, 10, NULL, 1); } // Метод loop() void loop() {}
- 100 ответов
-
- scanmatik 2 pro
- сканматик 2 pro
-
(и ещё 2 )
C тегом:
-
Спасибо за внимание к моей проблеме! Я, как бы, стараюсь читать коды ошибок как минимум из нескольких источников. В подавляющем большинстве поиска, код звучит как: "P0532 - Низкий показатель датчика давления охлаждающей жидкости кондиционера". Я не нашел обратную информацию. Буду бесконечно признателен, если укажите на мою неграмотность в трактовке кода ошибки. Муфту компрессора подключал на прямую. Качает нормально, морозит великолепно! Нуждаюсь в полной и "вредной" информации!
-
francesco78 присоединился к сообществу
-
transit отреагировал на сообщение в теме: Адаптер J2534 Godiag GD101 не устанавливаются драйвера на Виндоус 7. Есть решение.
-
Одна из проблем твоего софта в том что ты не пользуешься английской версией, поэтому и получаешь кривой перевод ошибок и фиг пойми как это интерпретировать в нормальный вид. Твоя ошибка звучит иначе. A/C refrigerant pressure sensor A has returned a signal that is too low. И это никак не низкий уровень давления хладогента. Вторая проблема сам ошибки внутри твоего отлома. С одной стороны он тебе выдает ошибку по датчику а с другой стороны он каким-то образом показывает тебе давление в 12 бар в системе. Уже неплохо что ты додумался померять давление механическим способом и убедился что это соответствует. Причем куда смотрели твои кондиционерщики непонятно. Если при таком давлении включится муфта кондиционера и компрессор начнет качать в нем будет дырка на треть кондиционера с вываленными поршнями. Оставлю это пока так на подумать тебе, все же полная информация порой вредна. Может хоть рейтинг свой тут чуток улучшишь..
-
Shapdiagnostics подписался на XENTRY 06.2024 XDOS XPT XDPAD2 Final Release
-
EvgBarulin присоединился к сообществу
-
Это у меня единственная дилемма данной ситуации - или я ошибаюсь с номинальными данными для старта кондея, или это глюк софта. С этого момента я прихожу к мысли, что не имею, на этом участке, практического опыта и нуждаюсь в помощи продвинутых спецов.
- Сегодня
-
Ну сам подумай в чем не соответствие если развить ту мысль которую ты озвучил Внимательно перечитай свое сообщение
-
Мысли то правильные! Да и мы ж тут ... не общаемся как событыльники за гаражами))) тех вопросы - наше ВСЁ! Затык реальный. Проблема конкретная. "Диагносты" видят ошибку и трактуют её как ... низкий уровень давления хладогента( У дианостов нет мех.оборудования, а у кондиционерщиков ...навыков диагностики((( Я, между ними, как собака Павловыа - все вижу, только сделать ни чего не могу( Нужна помощь тех, кто понимает - как найти недостающий пазлик.
-
Так за денежку полно предложений, или интересует только бесплатно?
-
Добрый день! Помогите, пожалуйста, с ключом ESI [tronic] 2011/2 ID : W6T8.UQ2F.BADU.UH8G Заранее спасибо.
-
номер блока Bosch 0 281 013 627 версия софта 1037387107 нужен сток Full Flash - BDM и т.д
-
Что значит клонировать электрорейку в Вашем понимании? Перелить софт из одной в другую? Или Вы думаете что рейку надо привязать к авто? По поводу датчиков усилия, никаких плюшек нет, они просто разные по принципу действия.
-
На какую помощь ты рассчитываешь с таким оборудованием? Еще бы делфи подключил и спрашивал почему не работает. Где данные с консалта?
-
Citrogon подписался на Opel Astra k 2019 радио канал ключа.
-
Там радіоканал автоматом проходе, можливо спробувати видалити всі ключі і по новій прописати
-
можно ли клонировать электрорейку по кан шине ? чем это сделать ? второй вопрос ; есть датчик усилий на 2 пина и на 4 . какие плюшки добавляются в авто за счет 4 пина ?
-
PATROLY60 присоединился к сообществу
-
Качественный тюн "троит мотор, а так как сделан stage 1, ошибки по двигателю не читаются". И дальше "Если ЕГР заглушен как это отразится на работе двигателя и диагностике при заводской прошивке?"
-
на форуме есть тема по отключению иммо в еепром ауди 80 - на скрине показано , что нужно изменить в еепром для для данного эбу без иммо . была куплена новая микросхема , залит правленный дамп , а эбу заблокирован . выпаял микруху и вычитал - отличается от того что записывал . как отключить перезапись в еепром 93с46 ? или что мною делается не так для достижения результата ? стараюсь пользоваться инфой форума для работы , а инфа не помогает . где я накосячил ? приложил три файла- родной . модифицированный и тот что превратился из мода после впаивания . audi a6 c4 19 tdi.rar
-
Ти правий! Думав брати 2.16 нулить і пробувати шаманити… але незнаю так як нашина на дистанції. Та подуріли люди!! Я мін по 700 в польщі.
-
Вам сюда https://carmasters.org/topic/56549-marelli-7gv-замена-ecu/?do=findComment&comment=728270
-
RAZOR85 отреагировал на сообщение в теме: Infiniti Q60 адаптация точки закрытых дросселей
-
Вы читайте шапку внимательно Ребята, просто помощь нужна а не простой пиздешь как я с альмерой ебался, для тех кто в танке повторяю Q60 Infiniti
-
Перестаньте отлом называть Ланчем, потом и плодятся темы что Ланч что-то там не сделал. Когда-то в самом начале тоже с такого начинал пока не понял что он больше половины сервисных функций не делает. Просто эмуляция и ничего не происходит
-
jarekbata присоединился к сообществу
-
Может пора отвезти авто к диагносту? Вот тут правильные мысли были