Perpustakaan sederhana untuk terhubung dan bekerja dengan SimConnect, perpustakaan yang memungkinkan untuk berkomunikasi dengan Flight Simulator (misalnya, FS2020).
Tujuan dari perpustakaan ini adalah untuk menyediakan antarmuka sederhana untuk bekerja dengan FS2020 melalui .NET/C# tanpa pengetahuan mendalam tentang SimConnect. Di sisi lain, hanya operasi dasar yang didukung. Perpustakaan ini tidak mencakup semua kemungkinan perpustakaan SimConnect asli.
Pustaka memerlukan runtime Windows .NET Core 6.0 untuk diinstal (disertakan dalam instalasi Windows 10+ secara default).
Cukup buka paket rilis yang diperlukan ke folder eksekusi proyek target dan tautkan ESimConnect.dll + pustaka lain yang disediakan ke proyek Anda. Catatan: Agar berfungsi, file SimConnect.dll
juga harus disertakan dalam direktori keluaran proyek Anda. File ini tidak akan direferensikan dalam proyek .NET Anda, namun harus ada agar dapat dimuat untuk penggunaan perpustakaan.
Contoh sederhana aplikasi ESimConnectDemo tersedia di proyek.
Saat menjalankan FS2020, mulai ESimConnectDemo.exe
. Di jendela, pilih tombol Connect/Disconnect
. Di tab SimVars
, masukkan nama SimVar dan tekan Add
. Anda akan segera melihat nilai SimVar di jendela.
Catatan: Untuk nama SimVar tertentu, lihat dokumentasi SimVar FS202. Pada awalnya, Anda dapat mencoba masuk ke PLANE ALTITUDE
SimVar.
ESimConnect.dll
dan semua rakitan dari folder DLLs
kecuali SimConnect.dll
. Namun, file SimConnect.dll
harus ada di folder output, jika tidak, kesalahan saat startup akan muncul. Untuk pembacaan SimVar sederhana (misalnya, PLANE ALTITUDE
), Anda perlu:
// create ESimConnect instance
ESimConnect.ESimConnect eSimCon = new();
// register as a listener for incoming data messages
eSimCon.DataReceived += ESimCon_DataReceived; // see below for the definition
// open a connection to FS2020
eSimCon.Open();
// register a SimVar - tell FS2020 that you are interested in this SimVar
var typeId = eSimCon.Values.Register<double>("PLANE ALTITUDE");
// and request the value once
RequestId requestId = eSimCon.Values.Request(typeId);
// or request value repeatedly every second, only when value has changed
RequestId repeatedRequestId = eSimCon.Values.RequestRepeatedly(typeId, SimConnectPeriod.SECOND, true);
// now you are ready
// once some data has arrived, the following handler is invoked:
private static void ESimCon_DataReceived(ESimConnect.ESimConnect sender, ESimConnect.ESimConnect.ESimConnectDataReceivedEventArgs e)
{
Console.WriteLine($"ESimCon - DataReceived - requestId={e.RequestId}, simVar={relatedSimVar}, type={e.Type}, data={e.Data}");
}
Untuk informasi lebih detail, lihat proyek ESimConnectDemo atau ESimConnectTest untuk mendapatkan inspirasi.
Jika ada yang tidak berhasil, jangan ragu untuk melaporkannya sebagai masalah. Harap berikan rincian sebanyak mungkin.
(belum ada)
Lihat file LISENSI.
Terima kasih kepada repo asli RandFailuresFS2020 yang telah menjadi motivasi awal dan sumber belajar.
Terima kasih kepada George Barlow atas bantuannya dalam menyelesaikan masalah pembatalan pendaftaran.
Marek Vajgl https://github.com/Engin1980/ESimConnect