W związku z ostatnimi pracami mam do was kilka pytań.
Na prośbę Marcina_B zająłem się w ten weekend problemem z Windows 10 i sprawa okazuje się nieco bardziej złożona:
1) ludzie od LibUSB mają problem z Win10 i zupełnie odradzają korzystania z "Filtered Mode", jak to było dotychczas
2) brak filtered mode uniemożliwia pod Windows bezpośredni kontakt z urządzeniem, ponieważ takie device'y jak mysz lub klawiatura są otwierane przez System Operacyjny w trybie wyłączności
Z tych powodów niemożliwe jest skomunikowanie się z hardwarem tak, jak to było dotychczas robione - pozostają mi dwie drogi:
a) utrzymać widoczność urządzenia jako klawiatury i dodać do niego drugie "virtualne" urządzenie do komunikacji i programowania (powinno zadziałać pod Windows, ale spożytkuje więcej zasobów więc możliwa, maksymalna konfiguracja urządzenia będzie mniejsza (krótsze sekwencje klawiszy, mniej urządzeń itp))
b) porzucić "udawanie" klawiatury przez urządzenie i stworzyć dedykowany software, który będzie się komunikował z płytką i sam generował sekwencje klawiszy w odpowiedzi na użycia fizycznych urządzeń. Wtedy będzie można definiować długie sekwencje, opóźnienia między przyciskami itp
c) przejść na inny microchip, który łatwiej udźwignie dwa urządzenia w jednym - ale wtedy posiadany aktualnie hardware będzie mniej rozwojowy

opcja A):
za:
- utrzymanie uniwersalnego interface'u klawiatury
- utrzymanie tego samego wyglądu aplikacji do konfiguracji
- brak konieczności uruchamiania dedykowanego oprogramowania na PC
przeciw:
- zmniejszy się maksymalna wielkość danych konfigurujących urządzenie (jak bardzo - nie wiadomo)
- każda płytka będzie widziana jako dwa osobne urządzenia: jedno to klawiatura a drugie to urządzenie do jej konfiguracji
- nadal nie można będzie wstawiać opóźnień między klawiszami ani tworzyć sekwencji z jednym klawiszem wciśniętym i kilkoma zwalnianymi i wciskanymi
- bardziej skomplikowany firmware
opcja b)
za:
- można będzie wstawiać opóźnienia między klawiszami, tworzyć sekwencji z jednym klawiszem wciśniętym i kilkoma zwalnianymi i wciskanymi
- ilość zaprogramowanych sekwencji będzie niemal nieograniczona
- uproszczenie firmware
- możliwość software'owego wstępnego ustawiania stanu przycisków/przełączników
przeciw:
- dodatkowy software po stronie PC, który będzie musiał być uruchomiony aby połączyć się z płytką i aby sekwencje klawiszy były generowane
- ryzyko konieczności tworzenia w/w software wraz z kolejnymi wersjami Windows
- zapewne nieco zmieniony software do konfiguracji
opcja c)
za:
- większe możliwości w nowym hardware
- lepsze (?) ADC w nowym hardware (12 bit)
przeciw:
- stary hardware pozostanie z aktualnym software
- stack firmware robiony "na nowo"
- software po stronie PC też pewnie ulegnie zmianie
Rozsądek podpowiada wariant A, ambicja wariant B, ciekawość wariant C.
Nie wiem, jak bardzo istotne są dla Was długie i skomplikowane sekwencje klawiszy?