Hirdetés

Új hozzászólás Aktív témák

  • kurta9999

    tag

    Szeretek bütykölni a dolgokkal és 2 éve elkezdtem gyakorlásképp C++ban egy alkalmazást fejleszteni, aminek az volt az eredeti célja, hogy be tudjak kötni egy második billentyűzetet a számítógépre és bármelyik gombra bármiféle makrót tudjak társítani. Sajnos hamarabb nem tudtam megvalósítani, mert nem volt meg a megfelelő szaktudásom hozzá, de végül sikerrel jártam. Mostanára ez az alkalmazás elég jól kinőtte magát, ahhoz képest, hogy csak egy dologra terveztem, így szeretném veletek megosztani, hátha valakinek valami a hasznára lesz belőle. Az alkalmazás főként Windows-on működik, de lefordítható és futtatható Linux-ra is, viszont sok a windows specifikus funkció, azok ott nem működnek.

    Link az eredeti oldalra (forráskód + letöltés bináris formában):
    [https://github.com/kurta999/CustomKeyboard]

    Második billentyűzet makrókra

    A működéshez sajnos szükség van egy külső Nucleo L495ZG hardverre, mivel egyenesen a billentyűztet a windows alapból "billentyűzetnek" kezeli és nem könnyű ezt kiiktatni, így a nucleo-n való bekötésre esett a választásom, mivel szerettem volna minél gyorsabban elkészíteni. Szükséges még egy UART-TTL convert is, ami átviszi a jelet a nucleo-ból számítógépre USB-n virtuális COM porton, innentől pedig az alkalmazás tudja dolgozni a fogadott adatot és végrehajtani a gombokhoz társított makrókat. Bármi féle billentyűzet használható, én jelenleg csak egy kis numpad-ot használok, mivel bőven elég a rajta lévő gombok száma.

    Makrók iCUE nélkül Corsair billentyűzeten

    Imádom a K95-ös billentyűzetet, de sajnos az iCUE nálam elérte azt a szintet az 500MB-os idle memória használatával, hogy képtelen voltam valamit kitalálni, így a fogadott HID adatok alapján a billentyűzettől végrehajtom a társított makrókat a gombokhoz és az 500MB ramhasználhat helyett pár MB-ból bevan takarva a dolog. RGB pedig le van szrva :DD

    CAN bus <-> USB transreceiver

    Szükség volt a munkámhoz egy normális és olcsó CAN <-> USB transreceiverre, így hát csak az a választás maradt, hogy muszáj volt nekikezdenem egy sajátnak. A működéshez szükség van egy külső NUCLEO-G474RE-re Waveshare SN65HVD230 3.3v CAN Transreceiver-el és UART->USB TTL adapterre, vagy LAWICEL CAN USB berendezésre, én ezt javasolnám. A kész hardvert megvenni könnyebb és egyszerűbb, de drágább. Támogat 11 és 29bites framet, ISO-TP standardot (ISO 15765-2), logolást, előre definált CAN framekhez való bindelést bitek alapján (végezetül GUI-n keresztül állíthatóak az egyes frame bitmezőjei a bedefinált hossz alapján)

    C struktúra elemeinek az offsetjének kigenerálása
    A beillsztett C structúrának az alkalmazás automatikusan kikalkulálja minden egyes változónak az offset-jét, hol helyezkedik el a memóriában. Elnézést a fogalmazásért :DD

    Parancs végrehajtó

    Egy ablakon belül lévő gombokra társítható parancsok, amire ha rákattintasz, akkor az applikáció végrehajta azt. Sokat dolgozom parancssorral, így meguntam a sok másolgatást. Sokkal könnyebb kattogatni, mint mindent másolgatni, főleg ha az alias opciós se megoldható a custom linux kernel végett.

    Kép mentése .png-be a clipboardból

    Valószinűleg van már ilyen program, nem is egy, de én ezt kihívástként vettem és megcsináltam. Röviden egy előre beállított helyre és névvel letudod menteni gombnyomásra a képet a clipboard-ból.

    AntiLock

    Céges gépekre tökéletes megoldás, ha képtelenség kikapcsolni, hogy a windows ne jelentkezzen ki X tétlen perc után. Ezután már nem fog, mivel az egeret a beállított X tétlen idő után automatikusan elmozdítja, ha kell a képernyővédő is elindítható. Nincs szükség semmiféle külső hardverre, csak az alkalmazásnak kell futni.

    AntiNumLock

    Szerintem egyértelmű, ha aktiválva van, nem tudod kikapcsolni a numlock-ot.

    TerminalHotkey

    Gyorsbillentyű a parancssorra, mint ahogy a linuxon. Indítható a windows explorer-ből bárhonnan és az asztalról is, a parancssor onann fog indulni ahova az intéző mutat.

    Mappák mentése több helyre

    Előre beállított helyről mappa tartalmának másolása a megadott helyekre, pl 3 különböző HDD egy kattintással, végül pedig SHA256 chechsum ellenőrzés az összes backupon. Ignorálhatók a nem kívánt fájltípusok.

    CPU frekvencia csökkentő

    A windows-ban belehet állítani az energiagazdálkodási beállításokat, de azok nem voltak a számomra megfelelőek. Nekem az kell, ha kakaó kell akkor mindent bele, ha pedig idle vagyok, akkor nyugodtan le lehet csökkenteni a frekvenciát. Tesztjeim alapján egy túlhúzott 10700K-n így többet tudok spórolni, hogy leviszem 1200Mhz-re ha tétlen vagyok.

    Szenzor mérés adatok grafikonba

    Mindig is szerettem volna tudni, hogy milyen a levegő a szobámba, mivel régen dolgoztam egy cégben hasonló projecten, így nem volt nehéz dolgom ezt összehozni. Van egy külső berendezés, mint pl. egy arduino weather station, ami rácstlakozik a wifi-re és küldi az adatokat a beállított IP címre TCP-n keresztül, végül az alkalmazás fogadja és grafikont generál belőle. A grafikonok weben keresztül is elérhetőek a helyi hálózaton.

    Végül pedig pár kép:

    Főoldal:

    Sensorokhoz generált táblázat

    CAN transreceiver bitfield szerkesztővel

    Parancs végrehajtó

    Mappa mentő

    Makró szerkesztő

    C struktúra offset generáló

    Remélem a fogalmazás érthető, nagyon régen írtam ekkora szöveget magyarul :D Várom a véleményeket és kritikákat, ha valakinek valami megtetszik az alkalmazásból nyugodtan használja, vagy másolja ki és módosítsa saját igényei szerint. Hibák előfordulhatnak, mivel nem használom napi szinen minden részét. Az eredeti részletesebb angol leírást a fent elérhető GitHub-os linken találod.

    [ Szerkesztve ]

Új hozzászólás Aktív témák