Итак. Вот репо с готовым, работающим приложением: https://github.com/sinuke/xbox.led.control. Ну, как говорится, у меня на ноуте работает, проверял. В ридмишке написано как запускать, собирать. Я лично поставил .NET 10 SDK. Возможно с другими версиями тоже будет работать
Также создал ветку feature/experiments (https://github.com/sinuke/xbox.led.control/tree/feature/experiments). В этой ветке добавил папочку /experiments где сложил все файлики, относящиеся к разным проверкам, которые Claude пробовал. Также туда закинул CLAUDE.md, RESEARCH.md, MEMORY.md, а также создал папоку /claude-history в которой в ZIP-архиве лежит история чатов
Если честно - пару вечеров с Claude Code (sonnet-4.5). Все эксперименты он проводил. Я просто следил, чтобы он ничего серьезного не натворил. Ну и немного статей почитал, документации. Вся эта тема для меня очень новая:
Проект на C# - у меня ноль опыта с ним
GIP, всякие эти протоколы... темный лес
Пэтому особо рассказывать нечего. Знаний у меня в этом вопросе особых нет
ну что же... приехал ко мне донгл. подключил к нему контроллер и получилось так выключить подсветку - через донг GIP-команды на Guide кнопку доходят (уровень яркости, разные анимации мигания, on/off) через WriteFile:
Логи приложения
Получается так:
USB-провод или донгл - команды на подсветку работают и доходят
Беспровод через BLE - нет. Возможно дело в драйвере, может он как-то только HID пропускает, а до GIP не достучаться (что косвенно подтверждает приложение XBox Accessories - там устройство не видно, подключенное по BLE.
В общем, спасибо за статью, т.к. она дала направление, как можно эту бесячую кнопку выключить. А то я уже реально думал изолентой клеить, как советуют в интернетах
П.С. Если нужен будет код, дайте знать. Залью на гитхаб
ну у меня по проводу тоже получилось отключить подсветку кнопки. однако при подключении по BLE (без донгла) - GIP не доступен. ну и отключив подсветку по проводу, при переключении на BLE кнопка снова "зажигается". заказал донгл, посмотрим как с ним. возможно через него будет доступен GIP
Два часа вайб-запросинга с КлодКодом выдали в конце такой результат (для контроллера, подключенного по BLE):
Скрытый текст
Всё проверено и не работает для стандартных Xbox контроллеров
на Windows:
┌───────────────────────────────────────┬──────────────────┐
│ Метод │ Причина провала │
├───────────────────────────────────────┼──────────────────┤
│ │ xusb22.sys │
│ HID output report (USB) │ перехватывает, │
│ │ caps output=0 │
├───────────────────────────────────────┼──────────────────┤
│ │ WSA 10050, │
│ Raw L2CAP BT │ Windows │
│ │ блокирует │
├───────────────────────────────────────┼──────────────────┤
│ │ Команды │
│ BLE GATT char 0x0004 │ принимаются, LED │
│ │ не меняется │
├───────────────────────────────────────┼──────────────────┤
│ GipGameControllerProvider.SendMessage │ Нет GIP │
│ │ контроллера │
├───────────────────────────────────────┼──────────────────┤
│ INexusApi.SetTempNexusBrightness │ Только для GIP, │
│ │ BT+USB = XUSB │
├───────────────────────────────────────┼──────────────────┤
│ IMessageApi / IMessageSender │ Только для │
│ │ GIP-аксессуаров │
└───────────────────────────────────────┴──────────────────┘
Вывод: Стандартные Xbox контроллеры (One/Series X/S) на
Windows всегда используют XUSB — и по USB (xusb22.sys), и по
BT (bthxhid.sys → XUSB bridge). GIP (и все связанные API
управления LED) доступен только для GIP-аксессуаров (Elite
Controller v2, гарнитуры) через xboxgip.sys. Смена яркости LED
кнопки Guide через Windows-software для стандартных
контроллеров невозможна известными методами.
А мне очень не хватает отключения подсветки для кнопки... Играя вечером, светит прямо в глаза. На XBox, насколько знаю, отключить можно. А вот в Windows - нет
Я попробовал зарегистрироваться на тренировки по алгоритмам от Яндекса в этом году. Отвалился в первый же день =)) И вот почему:
Задачи не самые простые, я бы сказал medium+. Т.е. времени на само решение нужно потратить немало
Во многом тесты придумывать самому, что тоже время
Решение нужно оформлять практически как полноценный проект с импортами (не так как на LeetCode, где просто решаешь). В общем, это тоже время
В целом, задачи крутые, заставляют думать над решением, продумывать и контролировать свое решение. Есть чатик для обсуждений, еженедельные разборы. Но времени на это нужно прилично.
У меня примерно такой же подход - если могу быстро решить дейли - решаю. Нет - любую попавшуюся, которую могу быстро решить. Не хочется тратить более 30 минут, т.к. семья, работа, ремонт и т.д. За 350 дней - 650 задач.
Однако чувствую, что не хватает системности. Т.е. если подходить к решению более осознанно, решать по каким-то темам, постепенно повышая сложность задач, то, наверное, можно добиться лучших результатов
Я тоже думал о mATX и каком-нибудь i3 12100. Но новое оно как-то дороговато выходило, да и б/у хорошие варианты не попались на момент всех этих действий (б/у по цене +-%5 от нового - нет, спасибо). Ну а что-то постарше уже не хотелось
P.S. Ещё была похожая материнка у Асуса, но с одним SATA и ноутбучной памятью.
ASUS Prime N100I-D D4-CSM - именно один SATA и отпугнул. Плюс заявление производителя о поддержке только 16 Гб оперативы. Но "нормальный" БП можно подключить
Да, я тоже думаю, что дороговато. Понимаю, что в эти деньги можно было получить больше мощности, дисков и т.д. если собрать на б/у. Но хотелось новых железок, хотелось именно этот корпус
За совет с БП спасибо. Подумаю может над вентилятором для него небольшим
Итак. Вот репо с готовым, работающим приложением: https://github.com/sinuke/xbox.led.control. Ну, как говорится, у меня на ноуте работает, проверял. В ридмишке написано как запускать, собирать. Я лично поставил .NET 10 SDK. Возможно с другими версиями тоже будет работать
Также создал ветку feature/experiments (https://github.com/sinuke/xbox.led.control/tree/feature/experiments). В этой ветке добавил папочку
/experimentsгде сложил все файлики, относящиеся к разным проверкам, которые Claude пробовал. Также туда закинул CLAUDE.md, RESEARCH.md, MEMORY.md, а также создал папоку/claude-historyв которой в ZIP-архиве лежит история чатовНадеюсь это как-то поможет
Если честно - пару вечеров с Claude Code (sonnet-4.5). Все эксперименты он проводил. Я просто следил, чтобы он ничего серьезного не натворил. Ну и немного статей почитал, документации. Вся эта тема для меня очень новая:
Проект на C# - у меня ноль опыта с ним
GIP, всякие эти протоколы... темный лес
Пэтому особо рассказывать нечего. Знаний у меня в этом вопросе особых нет
Ну можно регулировать интенсивность подсветки, а также можно передать "паттерн":
on - вкл подсветку
off - выключить
slow blink - медленное мигание
fast blink - быстрое мигание
charging blink - мигание, как при зарядке
ramp - так и не понял
В общем тут в доке есть это: https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-gipusb/ec312389-2e05-4915-85ed-0e8fe9c3d33b. Table 42
По коду: чуть причешу и выложу
ну что же... приехал ко мне донгл. подключил к нему контроллер и получилось так выключить подсветку - через донг GIP-команды на Guide кнопку доходят (уровень яркости, разные анимации мигания, on/off) через WriteFile:
Получается так:
USB-провод или донгл - команды на подсветку работают и доходят
Беспровод через BLE - нет. Возможно дело в драйвере, может он как-то только HID пропускает, а до GIP не достучаться (что косвенно подтверждает приложение XBox Accessories - там устройство не видно, подключенное по BLE.
В общем, спасибо за статью, т.к. она дала направление, как можно эту бесячую кнопку выключить. А то я уже реально думал изолентой клеить, как советуют в интернетах
П.С. Если нужен будет код, дайте знать. Залью на гитхаб
ну у меня по проводу тоже получилось отключить подсветку кнопки.
однако при подключении по BLE (без донгла) - GIP не доступен. ну и отключив подсветку по проводу, при переключении на BLE кнопка снова "зажигается". заказал донгл, посмотрим как с ним. возможно через него будет доступен GIP
Два часа вайб-запросинга с КлодКодом выдали в конце такой результат (для контроллера, подключенного по BLE):
Скрытый текст
А мне очень не хватает отключения подсветки для кнопки... Играя вечером, светит прямо в глаза. На XBox, насколько знаю, отключить можно. А вот в Windows - нет
Я попробовал зарегистрироваться на тренировки по алгоритмам от Яндекса в этом году. Отвалился в первый же день =)) И вот почему:
Задачи не самые простые, я бы сказал medium+. Т.е. времени на само решение нужно потратить немало
Во многом тесты придумывать самому, что тоже время
Решение нужно оформлять практически как полноценный проект с импортами (не так как на LeetCode, где просто решаешь). В общем, это тоже время
В целом, задачи крутые, заставляют думать над решением, продумывать и контролировать свое решение. Есть чатик для обсуждений, еженедельные разборы. Но времени на это нужно прилично.
У меня примерно такой же подход - если могу быстро решить дейли - решаю. Нет - любую попавшуюся, которую могу быстро решить. Не хочется тратить более 30 минут, т.к. семья, работа, ремонт и т.д. За 350 дней - 650 задач.
Однако чувствую, что не хватает системности. Т.е. если подходить к решению более осознанно, решать по каким-то темам, постепенно повышая сложность задач, то, наверное, можно добиться лучших результатов
вот это косяк. исправил
спасибо что заметили. я как-то упустил
Я тоже думал о mATX и каком-нибудь i3 12100. Но новое оно как-то дороговато выходило, да и б/у хорошие варианты не попались на момент всех этих действий (б/у по цене +-%5 от нового - нет, спасибо). Ну а что-то постарше уже не хотелось
Возможно в будущем и я к этому приду =) познаю дзен, так сказать =)
ASUS Prime N100I-D D4-CSM - именно один SATA и отпугнул. Плюс заявление производителя о поддержке только 16 Гб оперативы. Но "нормальный" БП можно подключить
Кстати, на просторах Youtube встречал методы для подключения более 2х дисков к плате Asrock - https://www.youtube.com/watch?v=-DSTOUOhlc0
Думаю так и есть
Данные из приложения "Дом с Алисой" - только это там доступно
Да, я тоже думаю, что дороговато. Понимаю, что в эти деньги можно было получить больше мощности, дисков и т.д. если собрать на б/у. Но хотелось новых железок, хотелось именно этот корпус
За совет с БП спасибо. Подумаю может над вентилятором для него небольшим
Вспоминается недавняя новость о разрешении использования дисков WD и Seagate в Synology (https://habr.com/ru/news/954994/)
Хотелось чего-то руками сделать. Плюс в готовых решениях процессор попроще, памяти поменьше. А деньги те же
При еще более долгом удержании геймпад выключается
Но по мне, лучше бы ночной режим "завезли" - очень бесит светящий прямо в глаза индицатор
А еще сломаный дебаг для gradle 6.8 и 7.6 проектов (лично столкнулся, когда это заблочило работу)