Змінюй хід війни! Допомагай ЗСУ!

Электрофлуд :)

🟠 23:06 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • 🟠 23:06 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #8341
UPD
Докладіваю - флэшки USB-3 имеют защиту от переполюсовки по питанию.
USB-2 - не имеют защиты.

P.S. А трансценду, между прочим, в єтом году 20 лет только стукнуло :увага:
Последняя моя флєшка на 1ГБ.

P.P.S. Интересно другое - каждый коннект с уже сгоревшей флэшкой происходил штатно и контрольный светодиодик честно гас когда я её вынимал.
USB-3 выключались и вызывали дисконнект сразу после включения. В двойках, видимо, горит что-то в мосте, а USB машина продолжает работать после переполюсовки. Вокак.
 
  • 🟠 23:06 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #8342
Идём дальше вдоль USB-Host
Если рестартнуть плату со вставленной флэшкой - она её потеряет и перейдёт в Appli_state==APPLICATION_IDLE.
Это почему?
 
  • 🟠 23:06 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #8343
::вы прослушали типичный тред по реальному программированию в интернете

Пардон, не удержался, всё ещё считаю обсуждение программ и деталей в интернете бесперспективным, надо видеть
 
  • 🟠 23:06 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #8344
Курию хост на все классы...
Куб наворотил там дохрена всего. Теперь осталось разобраться - куда данные с разных устройств прилетают (для разных классов - разные либы) и как их оттуда забирать, и т.д.
Как не странно, мультихост - работает. Видит всё, что втыкаю. Кроме хабов (это первое что я проверил).
Мульти-HID (клава с тачпадом) - видит, но пока непонятно как мішь, клаву, или оба.

Кто навешивал это всё на F4? Есть такие?
 
  • 🟠 23:06 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #8345
здарова флудеры ) а с плазмой в теме есть кто?!

по СВЧ vs трансформаторный (не бп а генератор плазмы) есть вопросы ) а то жопой чую электроника там веселая что для питалова СВЧ что трансформаторного(1000В до 1 Мгц)

а то нужна чистая плазма а обычные горелки совсем не катят ((( и да 100кВт ) нужно из металлов плазму делать, пар )
 
  • 🟠 23:06 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #8346
ААА!! Поорал.
Курю дальше мультиклассовый хост в STM32 CubeMX/CubeIDE...
Они там с войдами обкурились нахуй...
Понятно, что вся гонка за унификацией данніх, прилетающих в порт.
Но. Вместо того, чтобы просто покейсить какой сейчас активный класс на порту и отдать дату в нужный хандлер - они запилили какую-то мегаиндусскую хуйню.
Они сами парсят дату в нужный fifo(да, они догадались сделать его даже кольцевім)...
А потом вызывают _weak калбэк, (типа который юзер будет переназначать и делать в нём с данными что ему надо) и шлют туда параметром... указатель на phost.

Надо ли говорить, что pHost, чтобы не зависеть от класса - содержит указатель на... void!
В который подставляется при энумерации ссылка на инит функцию того класса, который прицепился и опознался на порту.

Я блядь чуть моск не сломал пока понял куда оно прячет данные и как их оттуда получать пользователю.

Код:
    case HID_POLL:
      if (USBH_LL_GetURBState(phost, HID_Handle->InPipe) == USBH_URB_DONE)
      {
        XferSize = USBH_LL_GetLastXferSize(phost, HID_Handle->InPipe);

        if ((HID_Handle->DataReady == 0U) && (XferSize != 0U))
        {
          USBH_HID_FifoWrite(&HID_Handle->fifo, HID_Handle->pData, HID_Handle->length);
          HID_Handle->DataReady = 1U;
          [B]USBH_HID_EventCallback(phost)[/B];// --->
//***********
///**************
//---------->
void USBH_HID_EventCallback(USBH_HandleTypeDef *[B]phost[/B])
{
volatile HID_HandleTypeDef *HID_Handle = (HID_HandleTypeDef *) phost->pActiveClass->pData;
  /* Prevent unused argument(s) compilation warning */
	UNUSED(phost);
}

Надо, блеад, создать себе указатель на определённую структуру, которому засунуть войдовій адрес... вот.
И такая поебень у ST, бля, каждый день.

Это вообще нормально - всё подряд делать ссылкой на void просто потому, что ты хуй забил писать нормально?

P.S. Просмотрел вопрос получения данных с hid STM32 хостом на разных форумах - из встреченніх топиков так ни кто и не нашел как их и где читать :D
Я нашел где... осталось теперь вкурить шо там за данніе и как сканкоді міши от сканкодов клаві отличать в буфере.
 
  • 🟠 23:06 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #8347
Это вообще нормально - всё подряд делать ссылкой на void просто потому, что ты хуй забил писать нормально?

Ну вообще почему бы и нет, если нужно валить через одно дупло кучу разных типов данных то нахена подлежащему уровню думать о том кто и как это будет обрабатывать выше? Это кстати не только у ST так.
 
  • 🟠 23:06 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #8348
Сегодня я разбирал для ремонта LED-прожектор. Внутри был вентилятор. Нерабочий. Написано SUNON Maglev. Крыльчатка туго вращалась даже если пальцем крутить. Разобрал я этот вентилятор, хотя он вроде бы неразборный. Внутри вместо "магнитного левитирующего подшипника банальная броновая втулка. Она нахваталась пыли, и вентилятор не крутился. Я почистил, смазал литолом, собрал - работает.

Но обидно, что написано Maglev, а внутри простая бронзовая втулка. Дурят китайцы доверчивых людей :(

Впрочем, возможно, это не настоящий SUNON, а подделка. Потому что наклейка чёрная полностью. Обычно у "сунонов" наклейка белая с зелёным.
 

Вкладення

  • 0-02-05-a9f73b368a4ed2966ed590d1af890c523f3f3022d3dd59a06738ac4ac51750f1_full.jpg
    0-02-05-a9f73b368a4ed2966ed590d1af890c523f3f3022d3dd59a06738ac4ac51750f1_full.jpg
    75.2 КБ · Перегляди: 143
  • 🟠 23:06 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #8349
Ну вообще почему бы и нет, если нужно валить через одно дупло кучу разных типов данных то нахена подлежащему уровню думать о том кто и как это будет обрабатывать выше? Это кстати не только у ST так.

Думать, всё равно, придётся.
Потому, что они передают в хандлер только указатель на хост, где событие произошло.
Не на девайс, который его породил, а просто на объект хоста.
Вторым информационным объектом является то, что он вообще HID хандлер вызвал и можно не выяснять какой класс - он полюбому HID раз ты туда попал.
Но.. это совершенно бесполезная информация, он клаву от мыши в данном случае не отличает.
 
  • 🟠 23:06 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #8350
Эммм, а ты уверен что он должен отличать клаву от мыши? Может это уже задача уровня приложения. Типа вот вам ХИД-класс, а там разбирайте данные как хотите.
Если что, я просто спрашиваю, с хостом дела не имел.
 
  • 🟠 23:06 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #8351
Эммм, а ты уверен что он должен отличать клаву от мыши? Может это уже задача уровня приложения. Типа вот вам ХИД-класс, а там разбирайте данные как хотите.
Если что, я просто спрашиваю, с хостом дела не имел.

Там есть либы отдельные, маус декодер, кейборд декодер и т.д.
Пока не добрался до них, не знаю, срабатывает ли вызов "из коробки", или таки через тот хандлер самому их дёргать.

P.S. У хоста есть даже СDC класс, но ни один свисток USB-UART из коробки не завёлся.
P.P.S. Подключать USB-UART мост к STM32 - попахивает дзеном...

UPD
Нет, ни кто мидлварь не візівает.
static USBH_StatusTypeDef USBH_HID_MouseDecode(USBH_HandleTypeDef *phost) дёргает только функция
USBH_HID_GetMouseInfo, у которой в Call Hierarchy - пустота. То есть, таки, юзер должен думать что он делает. То есть, правильнее біло бі оставлять ссыль на объект девайса, а не хоста. Из хоста ещё придётся получить класс, понять кто это, и потом редиректить.
Причём, данные уже положены в какой-то буфер и зачем вообще дёргать мидлварь - пока неясно.

UPD2
В декодере ошибка - нажатие левой клавищи візівает уверенній 1U в бите... "Y". Пабаааам! Узнаю ST... Остальніе 2 кнопки - там, где положено. Данных о перемещении, естественно, нет - они уже считаны в буфер ещё в прерывании.
Наличие вообще декодера, который ни кто не вызывает, а на момент его вызова - он мало информативен - просто визитная карточка ST, наверное :D
 
  • 🟠 23:06 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #8352
Но обидно, что написано Maglev, а внутри простая бронзовая втулка. Дурят китайцы доверчивых людей
Не совсем простая, но да, это подшипник скольжения, что не мешает ему работать годами ;).
У меня в десктопе стоят вентиляторы с аналогичными подшипниками, и лет за 10 ни один не сдох, хотя за это время вся остальная начинка была пару раз заменена. Разве что пара старых HDD осталась, и в них тоже стоят аналогичные подшипники :D

Но! Смазка в вентиляторе рассчитана на весь срок службы. Если вентилятор начал шуметь, значит его срок службы закончился. Не надо его смазывать, просто выбрось как есть.
 
  • 🟠 23:06 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #8353
Смазка в вентиляторе рассчитана на весь срок службы. Если вентилятор начал шуметь, значит его срок службы закончился
:)
В помещении два десятка одинаковых прожекторов с этими вентиляторами. Куплены новыми в одно и то же время. Но почему-то у одного уже срок службы закончился, а остальные жужжат себе спокойно.
Но ресь не об этом. Я про то, что китайский Maglev оказался бронзовой втулкой :)
А должен быть типа вот:
 
  • 🟠 23:06 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #8354
Это вообще нормально - всё подряд делать ссылкой на void просто потому, что ты хуй забил писать нормально?
ссыль на void передается для того шоб по возможности скрыть потроха реализации
юзеру оно не впало, какой драйвер чего делает
через колбек берутся данные тоже средствами из того же мутного исходника, отсюда и void
и проще его не сделаешь никак
 
  • 🟠 23:06 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #8355
ссыль на void передается для того шоб по возможности скрыть потроха реализации
юзеру оно не впало, какой драйвер чего делает
через колбек берутся данные тоже средствами из того же мутного исходника, отсюда и void
и проще его не сделаешь никак

Так то если потроха есть...
В данном случае - потроха положили в буфер дату и... самоустранились, отдав калбєк.
И сиди угадывай где тот буфер забирать.

P.S. В єтом ракурсе наличие декодеров выглядит вообще странно... мышиный ломится прямо в мышь, читая с неё x, у, й, 1, 2 и 3 кнопки. Ни как не связано с лоулевелом, работающим в процессе. Если выхвать гет-дата из калбэка - он читает пустые х,у и кнопку, если она была нажата во время входа в калбэк, так как х и у уже выгреб процесс.
 
  • 🟠 23:06 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #8356
Ну в целом да.Я сужу по блютузу. Стек поднимает наверх ивенты через коллбэк, а там в зависимости от кода ивента и особенностей приложения void приводишь к соотвествующей структуре.
 
  • 🟠 23:06 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #8357
это все кстати (теоретически) прекрасно покрывается union'ами которые почему-то всему полуторамиллиардному индусу впадлу прописывать :D
 
  • 🟠 23:06 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #8358
это все кстати (теоретически) прекрасно покрывается union'ами которые почему-то всему полуторамиллиардному индусу впадлу прописывать :D

Смотря у кого. У Нордика все запаковано в структуры. У СТ вот тебе войд, а дальше сам разбирай че тебе надо.
 
  • 🟠 23:06 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #8359
Смотря у кого. У Нордика все запаковано в структуры. У СТ вот тебе войд, а дальше сам разбирай че тебе надо.

HAL раньше тоже всё в структурі запаковать пітался :)
Но, что-то поломалось....
 
  • 🟠 23:06 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #8360
P.S.
Выяснилось - ни кто декоды не вызывает. Они вызываются пользователем и опустошают буфер. Пока не разобрался что они делают на самом деле, не пользовался ещё таким творчеством от ST...
ae79858bc77fa302e.jpg


Тупездень с этим войдом - просто конгениальная... На самом деле, существует столько статик буферов длиной 100 - сколько классов. На класс - один буфер (да, при смене класса меняется указатель. Тупо и смешно - даже если с прошлого класса (пусть была флешка) данные ещё не прочитаны с буфера - если класс сменился, указатель будет подставлен на другой буфер из за эктивКласса).
Смысла это не имеет.
Код:
typedef struct
{
  uint8_t  *buf;
  uint16_t  head;
  uint16_t tail;
  uint16_t size;
  uint8_t  lock;
} FIFO_TypeDef;

P.S. Я молчу уже о том, что буфера длиной 100, но используются они - на 80 :D
Я думал, что там лежит, собсно, структурка FIFO_TypeDef fifo. Но нет!
Просто насрём на 20 байт, действительно, и накуя они кому...
 
Назад
Зверху Знизу