Jump to content

    

AlexandrY

Модераторы
  • Content Count

    7928
  • Joined

Everything posted by AlexandrY


  1. Скорее всего проблема в документированности оси и консистентности ее API. Скажем FreeRTOS отвратительно документирована. На ее применение разработчики убъют больше времени чем на ту же Azure RTOS О мультипроцессорности во FreeRTOS можно узнать только из каких-то отрывочных блогов. Консистентность API в плане мультиядерности вызывает большие вопросы. Понятно что уважаемый TC бъется о FreeRTOS как рыба об лед . С другой стороны кто сказал что на UART нужна одна задача? Хорошая практика на каждый коммуникационный интерфейс иметь две задачи: на RX и на TX. На TCP может и 4-х задач нехватить. Мигалка тоже требует свою задачу помимо основной. Красивые RGB мигалки с переливами требуют двух задач. Кооперативность имеет место в бизнеслогике основной задачи. Она автоматически реализуется если вы используете среду разработки с поддержкой нотации иерархических диаграмм состояний. Но для беспроблемной реализации диаграм состояний опять же нет ничего лучше вытесняющей RTOS. Словом даже если вам кажется всего одна задача все равно используйте RTOS.
  2. Я может быть и поключился бы к проекту, но просто нет совершенно времени. Такие контакты сильно отвлекают. Спасибо что вы им сообщили об ошибке, значит сообщество таки растет. Мне к описанию ошибки добавить сильно нечего. Да, просто забыли освободить пакет. Возможно из-за того что в Azure RTOS принято пакет освобождать после передачи далее на более высоком уровне. Но именно при подключении в клиенте FTP этого высокого уровня нет, он не предусмотрен.
  3. HiveMQ еще не умеет ничего делать с SQL базами. Это написано на его странице фичей - https://www.hivemq.com/hivemq/features/ Как понимаю, вы пытаетесь советовать то о чем сами слышали краем уха. Далее, между брокером и базой работать должен не "бридж", а нормальный бэкэнд с бизнеслогикой. Либо где по вашему должна располагаться бизнеслогика?
  4. Тут честно ничего нового вы уже не скажете. У проектов есть middleware и оно вам требуется серьезное. Оно всегда сложнее и труднее в реализации чем весь уровень приложения. Что бы ваш дивайс ни делал самая трудная его часть абсолютно ясна. Но проблема в том что платформу вы выбрали скверную с бедными средствами отладки. На такой платформе разработка обходится дороже.
  5. То что у TC нет денег ясно с самого начала было. RTOS здесь обязательна, а вот два ядра нафиг не нужны. Вот график достигнутых минимальных скоростей в Azure RTOS на некоей SD карте. По оси Х отложены номера итераций, по оси Y минимальная скорость на каждой итерации. Каждая итерация представляет собой запись файла в 1 Гбайт. Скрость измерялась после передачи каждых 4-х килобайт. Как видно можно добиться гарантированной скорости в 60 Кбайт в сек. НО чтобы портировать это на ESP 32 требуется серьезный бюджет.
  6. Модульность хороша только для коллективной разработки. Каждый выбрал себе максимально изолированный модуль и счастлив. Потом они весело переругиваются друг с другом чей модуль косячит. Для вас же модульность - смерть проекта. Ваше решение должно быть максимально интегрированным и консолидированным. Таких реально на пальцах можно пересчитать. Одно из них - среда RAD Studio. В ней и базу данных любую развернете, и клиента MQTT и тестовый генератор трафика, и любые виды графиков. https://habr.com/ru/post/388343/
  7. Думаю TC просто еще не назвал все сопутствующие обстоятельства. Пока вангую - он видит спорадические задержки от десятков до сотен милисекунд и чем дальше тем больше.
  8. В принципе можно за 3 мс записать, но труда будет стоить. Боюсь у ТС столько денег не будет.
  9. Это, конечно, неправда. Я находился в доме с закрытыми окнами при жаре в 30 град на улице. Температура в доме была около 21-22 град. Эт тоже неверно. Регулировать частоту вращения асинхронного двигателя тиристором довольно просто.
  10. В наши дни не принято что-то измерять одним датчиком. Теперь повсеместно применяется технология Sensor fusion. И у рыб скорее всего она и есть. Кстати, одним из каналов должна быть динамика самой лодки.
  11. В нашем умном доме используется вот такой тепловой насос. Умеет и нагревать полы и охлаждать. Так он на 1 Квт тепловой энергии забирает 250 Вт электрической. Там два движка: компрессор и вентилятор. Компрессор во всех моделях 3-х фазный, так что инвертер там всегда работает. А обороты вентилятора похоже регулируются просто ключом. Разброс потребления электроэнергии в зависимости от выходной температуры около киловата. Так что уменьшив на пару десятых градуса выходную температуру или оптимизировав алгоритм поддержания температуры несчастные 40 Вт теряющиеся в полупроводниках можно легко компенсировать.
  12. CRC и есть хэш. А вы наверно путаете с криптографическими хэшами типа SHA Не поленитесь почитать википедию - https://en.wikipedia.org/wiki/List_of_hash_functions Криптографические заточены на максимальную вариабельность от единственного различия, а коммуникационные типа CRC на гарантированную вариабельность от n-битного различия. Так что советовать криптографические хэши здесь довольно глупо.
  13. По ходу видно что с WiFi вышел облом, да и со встроенным линуксом тоже. Набор фичей слабоват. Из STM-ок можно было выжать гораздо больше.
  14. Да, именно школьникам. Самой прикольное что работать можно из дома и дают ноутбук для этого. А берут их в отдел безопасности на антифрод-мониторинг. Причем первый этап мониторинга делает AI, а после него уже подключаются аналитики. И создают всю эту работу неутомимые кардеры. По расказам в Индии сидят целые офисы кардеров и банки знают их чуть ли не по голосу. А любимые чипы кардеров - STM-ки. Так что я даж не знаю, STM-ки рулят миром.
  15. Чесно не понял, что там можно или стоит украсть. Больше половины вашего репозитария клонировано с чужих репозитариев. Если там что вы называете "снипеты", то они у вас такие крохотные, что их можно отрефакторить за пять минут и вы следов там своих не найдете. На GitHub что, кто-то платит какие-то копейки за активность контрибуторов, типа как youtube платит за клики? Или это такое удовлетворение тщеславия, типа мой код попал в арктическое хранилище гитхаба? Причем, как понял, за код для STM-ок. И помалкиваете. Это ж такой мотивацией мощной для TC стало бы. Уж не конкурента ли вы в TC-е увидели?
  16. А нафига вам вооще эти лицензии? Что вы от них ждете? Какой в них смысл? Почему нельзя просто выкладывать без всяких лицензий? Эт мне почему-то напоминает программный фетишизм (аналогично товарному фетишизму) возникшему в среде богатых, но которому поклоняются бедные.
  17. Если у вас падает, то значит где-то поднимается. Таков закон сохранения мирового интеллекта. Либо вы попали в плохое место. У нас школьники, еще выпускного не было, идут в Western Union аналитиками (обучение две недели, почтите те самые 20 часов) и им платят 100тыр в месяц в переводе на ваши деньги. Каждый год из выпуска кто-то поступает в Оксфорд или Гарвард. И это просто школа, но с высокой планкой приема и квалификацией учителей. Так что свое окружение вы нашли себе сами. Может не повезло, спорить не буду. Но ныть тут тоже не вариант. Может вам пора валить с линукса? По моим соображениям линукс на самом деле для богатых , хоть и выглядит бесплатным. Эт че было? Подстрекательство к фишингу?
  18. Если прога клиент, то это облегчает только тем, что не надо задавать правила локальноу файрволу. На языке Delphi я некторое время не практикую, но на C++ в VCL для каждого UDP соедиения я делаю класс наследующий от специального интерфейса чтобы организовать независимый поток для UDP компонента. Объявление выглядит так: class TUDP_audio_server : public TCppInterfacedObject<TProc> { public: _di_ITask itask; bool terminate_task; TCriticalSection *p_lock; uint8_t selected_mic; __property uint32_t lost_data_cnt = {read = Getlost_data_cnt, write = Setlost_data_cnt}; __property uint32_t data_read = {read = Getdata_read, write = Setdata_read}; __fastcall TUDP_audio_server(HSTREAM astream, TFileStream *fstrm, T_udp_serv_init_params *pinit); __fastcall ~TUDP_audio_server(void); void __fastcall Terminate_task(void); void __fastcall GetAudioDataBlock(int16_t *block, uint32_t sz, uint32_t *actual_sz); private: void __fastcall Invoke(void); void __fastcall UDPRead(TIdUDPListenerThread *AThread, const TIdBytes AData, TIdSocketHandle *ABinding); void __fastcall Setlost_data_cnt(uint32_t val); uint32_t __fastcall Getlost_data_cnt(void); void __fastcall Setdata_read(uint32_t val); uint32_t __fastcall Getdata_read(void); TLightweightEvent *evt; TSpinLock spinlock; uint32_t data_read_val; uint32_t lost_data_cnt_val; T_recv_audio_buf rbuf; uint32_t skipped_packet_cnt; HSTREAM audio_stream; TFileStream *filestream; uint16_t sending_port; uint16_t listening_port; protected: TIdUDPServer *udp_server; }; Реализация выглядит громоздко и с кучей зависимостей, поэтому сюда не вываливаю. Словом задача недетская.
  19. Прикольно, но TC поставил ясную "задачу". И все равно ему настойчиво советуют идти в институты за ками-то основами или постигать психологию. Получается, что даже зная конкретную цель народ не имеет ясного понимания как ее достигать когда поставленные сроки чуть менее 5 лет. Эт ИМХО от того что происходит ломка технологий образования и старое поколение просто уже не догоняет как оно сейчас присходит. Недаром это называют технологической революцией 4.0
  20. Как может вызывать страх то с чем можно ознакомится за пять минут? В вот почитайте перечень STM32Cube Expansion Packages и охватит просто фрустрация от объема информации которую уже никогда не освоить. Т.е. несчастные транзисторы и современный IoT просто несопоставимые вещи по объему информации. Один мануал на SoC толще вместе взятых томов Хоровица.
  21. Сильная ж мысль. Как бы для того кто не знает Indy вполне логичная. Однако Indy компоненты блокирующие. И 5-ть серверов просто брошеных из палитры на форму работать не будут.
  22. Воспринимать это надо как кодовую фразу за которой скрывается определенная математическая операция или группа операций. Расшифровывать или интерпретировать на интуитивном уровне категорически нельзя. Также как нельзя пытаться представлять себе N-мерное пространство или бесконечность. Чтобы уверенно знать где применять и когда надо конверитировать в формулы эту фразу и все похожие как раз 20 часов и требуется.