BeyazBrush
Başarılı
- Katılım
- 24 Ocak 2024
- Mesajlar
- 6
- Beğeniler
- 1
Konu Başlıkları Gizle
- 1 Megalodon 360 mm AiO LCD için Sıcaklık Gösterge Uygulaması [Rust]
- 2 Neden geliştirdim?
- 3 BYMonitor DLL'leri ne işe yarıyor?
- 4 Nasıl çalışıyor?
- 5 Menü ekran görüntüleri
- 6 Kullanımı
- 7 Kurulum
- 8 Neden Megalodon'un orijinal yazılımını kullanmadım?
- 9 Orijinal yazılım ile karşılaştırma
- 10 Kaynak kodu ve derleme
- 11 İndirme bağlantısı
Megalodon 360 mm AiO LCD için Sıcaklık Gösterge Uygulaması [Rust]
Merhaba,
Megalodon'un orijinal uygulamasını kullanan biri olarak yaşadığım sorunlar nedeniyle bu projeyi geliştirdim. Electron tabanlı uygulamanın gereksiz kaynak tüketimi, arka plandaki CPU, disk ve ağ kullanımı beni rahatsız ediyordu.
Tam da bu nedenle yalnızca görevini yerine getiren, sade ve hafif bir alternatif geliştirmeye karar verdim.
Orijinal PC_Monitor.exe – 163 MB boyutundaki Electron paketi (7-Zip görünümü)
Neden geliştirdim?
Orijinal uygulama olan PC_Monitor.exe (163 MB), beraberinde birçok Electron bileşeni (chrome_100_percent.pak, vulkan-1.dll, resources.pak vb.) içeriyor.
Uygulama arka planda yaklaşık 180 MB RAM tüketiyor ve sistem kaynaklarını gereksiz yere kullanıyor. LCD ekran yalnızca işlemci sıcaklığını göstermesine rağmen uygulamanın bu kadar kapsamlı bir altyapı kullanması bana gereksiz geldi.
Bu nedenle uygulamayı Rust ile sıfırdan geliştirdim:
- Yaklaşık 3,7 MB EXE boyutu.
- Electron bağımlılığı yok.
- Ağ bağlantısı yok.
- Telemetri yok.
- Diske log yazma işlemi yok.
- RAM üzerinde log tutulmuyor.
BYMonitor DLL'leri ne işe yarıyor?
Orijinal PC_Monitor.exe – app-64.7z/lib klasöründeki BYMonitor DLL'leri
BYMonitor64.dll ve BYMonitor32.dll, orijinal Megalodon uygulamasının kullandığı HWiNFO SDK bileşenleridir.
İşlemci sıcaklığını (Tctl/Tdie) doğru şekilde okuyabilmek için bu DLL'lerden yararlanıyoruz. Bunlar olmadan gerçek işlemci paket sıcaklığına ulaşmak mümkün olmayabilir. WMI/ACPI üzerinden alınan değerler ise bazı masaüstü sistemlerde boş veya yetersiz kalabiliyor.
BYMonitor64.dll – Dosya boyutu: 2.337.704 bayt
BYMonitor32.dll – Dosya boyutu: 2.098.088 bayt
BYMonitor32.dll – Dosya boyutu: 2.098.088 bayt
Doğrulama amacıyla MD5 sağlama toplamlarını yukarıdaki görsellerde paylaştım. DLL dosyalarını EXE ile aynı klasöre yerleştirmeniz yeterlidir.
İsteyenler projeyi inceleyerek kendi uygulamalarını geliştirebilir. Temel çalışma mantığı oldukça basit:
BYMonitor → Sıcaklık → USB HID → LCD
Nasıl çalışıyor?
1. Sıcaklığın okunması:
BYMonitor64.dll üzerinden HWiNFO SDK'nın ordinal API fonksiyonları kullanılıyor. Sırasıyla hWI32_INIT, getsensorname ve getsensorvalue fonksiyonlarından yararlanılıyor.
CPU (Tctl/Tdie) sensörü başlangıçta bir kez keşfedilerek önbelleğe alınıyor. Sonrasında saniyede iki kez sensör değeri okunuyor.
2. LCD ekranına veri gönderilmesi:
Megalodon'un USB HID arayüzü (VID_5131 & PID_2007) üzerinden 65 baytlık rapor yapısı kullanılıyor.
24 baytlık veri paketinin içeriği şu şekilde:
Kod:
Byte 0 = 0x00
Byte 1 = 0x40
Byte 2 = CPU sıcaklığı (°C)
Byte 3-23 = 0x00
LCD ekranına saniyede bir kez veri gönderiliyor. Bu işlem orijinal uygulamanın çalışma mantığıyla aynı şekilde gerçekleştiriliyor.
3. Arayüz (egui):
- Ana ekranda büyük sıcaklık göstergesi.
- Menü, Başlangıç, Görünüm ve Yardım seçenekleri.
- Üç farklı tema: Sıvı, Koyu ve Açık.
- Butonların üzerine gelindiğinde açıklama baloncukları.
- Projeye özel neon CPU simgeli uygulama ikonu.
Menü ekran görüntüleri
Kullanımı
- Başlat: LCD ekranına sıcaklık verisi göndermeyi başlatır. Bu işlem tek seferliktir; sonraki oturumlarda otomatik olarak başlatılmaz.
- Pencereyi kapatma (X): Program tamamen kapanmaz, sistem tepsisinde çalışmaya devam eder. LCD'ye sıcaklık verisi gönderimi sürer.
- Windows başlangıcında çalıştırma: Bir sonraki Windows açılışında otomatik başlamasını istiyorsanız Başlangıç menüsündeki Ekle seçeneğini kullanabilirsiniz. İstemediğiniz zaman Kaldır seçeneğiyle bu özelliği devre dışı bırakabilirsiniz.
- Tamamen kapatma: Sol üstteki Menü → Çıkış seçeneğini veya sistem tepsisindeki simgeye sağ tıklayarak Programı kapat seçeneğini kullanabilirsiniz.
Kurulum
- Arşivi çıkartın.
- temp_monitor.exe, BYMonitor64.dll ve BYMonitor32.dll dosyalarını aynı klasöre yerleştirin.
- Programı çift tıklayarak çalıştırın. Yönetici izni istenirse onaylayın.
- Program açıldıktan sonra Başlat seçeneğine tıklayın. LCD ekranında işlemci sıcaklığını görebilirsiniz.
- Windows başlangıcında otomatik çalışmasını istiyorsanız Başlangıç → Ekle seçeneğini kullanın.
Sistem tepsisi kullanımı:
- Sol tık: Program penceresini öne getirir.
- Sağ tık: Programı kapat seçeneğini gösterir.
- X / Sistem tepsisine küçült: Programı görev çubuğuna düşürmeden sistem tepsisine küçültür. LCD'ye veri gönderimi devam eder.
Neden Megalodon'un orijinal yazılımını kullanmadım?
Orijinal yazılımı kullandım ve arka planda gereksiz CPU tüketimi, disk yazma işlemleri ve ağ etkinliği gözlemledim. Bu davranışlar güvenlik ve kaynak kullanımı açısından soru işaretleri oluşturdu.
Bu nedenle orijinal yazılımın çalışma mantığını inceleyerek gereksiz bileşenleri ortadan kaldırdım ve Rust ile kendi alternatifimi geliştirdim.
Orijinal yazılım ile karşılaştırma
| Özellik | Orijinal (Electron) | Bu proje (Rust) |
|---|---|---|
| EXE boyutu | ~163 MB | ~3,7 MB |
| RAM kullanımı | ~180 MB | ~100–140 MB (egui altyapısı) |
| Boşta CPU kullanımı | %2–3 | %0,5'in altında |
| Ağ etkinliği | Var | Yok |
| Disk yazma | %LOCALAPPDATA% altında log | Yok |
Kaynak kodu ve derleme
Projenin kaynak kodu da paylaşım paketine dahildir. Toplamda 9 kaynak dosyası, Build.RS, temp_monitor.Manifest ve icon.PNG bulunmaktadır.
Derlemek için:
Kod:
cargo build --release
# 32-bit derleme için:
rustup target add i686-pc-windows-msvc
cargo build --release --target i686-pc-windows-msvc
Windows 10 ve Windows 11 ile uyumludur. Hem 32-bit hem de 64-bit sistemler için derleme desteği bulunmaktadır.
Dosya yolları kullanıcı adına veya bilgisayar adına bağlı değildir; program kendi EXE konumunu current_exe üzerinden belirler.
İndirme bağlantısı
TempMonitor – OneDrive indirme bağlantısı