Skip to content

Commit c23a544

Browse files
committed
buildscript to outdir
1 parent d68a868 commit c23a544

File tree

3 files changed

+28
-19
lines changed

3 files changed

+28
-19
lines changed

Readme.md

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,21 @@
11
# SimConnect Bindings for Rust
2+
## Using
3+
Add this to your `Cargo.toml`
4+
```toml
5+
[dependencies]
6+
simconnect = "0.1"
7+
```
28
## Building
39
*The SimConnect binaries are included within this repository, but they may not be up to date.*
410

511
1. Install [CLang](https://clang.llvm.org/get_started.html). More information available at the [Rust Bindgen Documentation](https://rust-lang.github.io/rust-bindgen/requirements.html).
612
2. run `cargo build`
7-
3. `use simconnectsdk`
13+
3. `use simconnect`
814

915
### Sample Program
1016
*Note: You must have SimConnect.dll in your current working directory to be able to successfully use SimConnect*
1117
```rust
12-
use simconnectsdk;
18+
use simconnect;
1319
use std::time::Duration;
1420
use std::thread::sleep;
1521
use std::mem::transmute_copy;
@@ -20,16 +26,16 @@ struct DataStruct {
2026
alt: f64,
2127
}
2228

23-
let mut conn = simconnectsdk::SimConnector::new();
29+
let mut conn = simconnect::SimConnector::new();
2430
conn.connect("Simple Program"); // Intialize connection with SimConnect
25-
conn.add_data_definition(0, "PLANE LATITUDE", "Degrees", simconnectsdk::SIMCONNECT_DATATYPE_SIMCONNECT_DATATYPE_FLOAT64, u32::MAX); // Assign a sim variable to a client defined id
26-
conn.add_data_definition(0, "PLANE LONGITUDE", "Degrees", simconnectsdk::SIMCONNECT_DATATYPE_SIMCONNECT_DATATYPE_FLOAT64, u32::MAX);
27-
conn.add_data_definition(0, "PLANE ALTITUDE", "Feet", simconnectsdk::SIMCONNECT_DATATYPE_SIMCONNECT_DATATYPE_FLOAT64, u32::MAX); //define_id, units, data_type, datum_id
28-
conn.request_data_on_sim_object(0, 0, 0, simconnectsdk::SIMCONNECT_PERIOD_SIMCONNECT_PERIOD_SIM_FRAME); //request_id, define_id, object_id (user), period - tells simconnect to send data for the defined id and on the user aircraft
31+
conn.add_data_definition(0, "PLANE LATITUDE", "Degrees", simconnect::SIMCONNECT_DATATYPE_SIMCONNECT_DATATYPE_FLOAT64, u32::MAX); // Assign a sim variable to a client defined id
32+
conn.add_data_definition(0, "PLANE LONGITUDE", "Degrees", simconnect::SIMCONNECT_DATATYPE_SIMCONNECT_DATATYPE_FLOAT64, u32::MAX);
33+
conn.add_data_definition(0, "PLANE ALTITUDE", "Feet", simconnect::SIMCONNECT_DATATYPE_SIMCONNECT_DATATYPE_FLOAT64, u32::MAX); //define_id, units, data_type, datum_id
34+
conn.request_data_on_sim_object(0, 0, 0, simconnect::SIMCONNECT_PERIOD_SIMCONNECT_PERIOD_SIM_FRAME); //request_id, define_id, object_id (user), period - tells simconnect to send data for the defined id and on the user aircraft
2935

3036
loop {
3137
match conn.get_next_message() {
32-
Ok(simconnectsdk::DispatchResult::SimobjectData(data)) => {
38+
Ok(simconnect::DispatchResult::SimobjectData(data)) => {
3339
unsafe {
3440
match (*data).dwDefineID {
3541
0 => {

build.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use std::{env, path::PathBuf};
2+
13
fn main() {
24
println!("cargo:rustc-link-search=libsrc/lib");
35
println!("cargo:rustc-link-lib=static=SimConnect");
@@ -149,7 +151,8 @@ fn main() {
149151
.generate()
150152
.expect("Unable to generate bindings");
151153

154+
let out_path = PathBuf::from(env::var("OUT_DIR").unwrap());
152155
bindings
153-
.write_to_file("bindings.rs")
156+
.write_to_file(out_path.join("bindings.rs"))
154157
.expect("Couldn't write bindings!");
155158
}

src/lib.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
/*!
2-
The simconnectsdk crate provides rust bindings to retrieve and send information through SimConnect.
2+
The simconnect crate provides rust bindings to retrieve and send information through SimConnect.
33
44
Documentation for SimConnect can be found by downloading the SDK for FS2020 or using P3D/FSX SDK documentations for reference (although some of their documentation does not apply for FS2020).
55
66
# Setup
77
Add this to your `Cargo.toml`
88
```toml
99
[dependencies]
10-
simconnectsdk = "0.1"
10+
simconnect = "0.1"
1111
```
1212
1313
# Simple Example
1414
*Note: You must have SimConnect.dll in your current working directory to be able to successfully use SimConnect*
1515
```rust
16-
use simconnectsdk;
16+
use simconnect;
1717
use std::time::Duration;
1818
use std::thread::sleep;
1919
use std::mem::transmute_copy;
@@ -24,16 +24,16 @@ struct DataStruct {
2424
alt: f64,
2525
}
2626
27-
let mut conn = simconnectsdk::SimConnector::new();
27+
let mut conn = simconnect::SimConnector::new();
2828
conn.connect("Simple Program"); // Intialize connection with SimConnect
29-
conn.add_data_definition(0, "PLANE LATITUDE", "Degrees", simconnectsdk::SIMCONNECT_DATATYPE_SIMCONNECT_DATATYPE_FLOAT64, u32::MAX); // Assign a sim variable to a client defined id
30-
conn.add_data_definition(0, "PLANE LONGITUDE", "Degrees", simconnectsdk::SIMCONNECT_DATATYPE_SIMCONNECT_DATATYPE_FLOAT64, u32::MAX);
31-
conn.add_data_definition(0, "PLANE ALTITUDE", "Feet", simconnectsdk::SIMCONNECT_DATATYPE_SIMCONNECT_DATATYPE_FLOAT64, u32::MAX); //define_id, units, data_type, datum_id
32-
conn.request_data_on_sim_object(0, 0, 0, simconnectsdk::SIMCONNECT_PERIOD_SIMCONNECT_PERIOD_SIM_FRAME); //request_id, define_id, object_id (user), period - tells simconnect to send data for the defined id and on the user aircraft
29+
conn.add_data_definition(0, "PLANE LATITUDE", "Degrees", simconnect::SIMCONNECT_DATATYPE_SIMCONNECT_DATATYPE_FLOAT64, u32::MAX); // Assign a sim variable to a client defined id
30+
conn.add_data_definition(0, "PLANE LONGITUDE", "Degrees", simconnect::SIMCONNECT_DATATYPE_SIMCONNECT_DATATYPE_FLOAT64, u32::MAX);
31+
conn.add_data_definition(0, "PLANE ALTITUDE", "Feet", simconnect::SIMCONNECT_DATATYPE_SIMCONNECT_DATATYPE_FLOAT64, u32::MAX); //define_id, units, data_type, datum_id
32+
conn.request_data_on_sim_object(0, 0, 0, simconnect::SIMCONNECT_PERIOD_SIMCONNECT_PERIOD_SIM_FRAME); //request_id, define_id, object_id (user), period - tells simconnect to send data for the defined id and on the user aircraft
3333
3434
loop {
3535
match conn.get_next_message() {
36-
Ok(simconnectsdk::DispatchResult::SimobjectData(data)) => {
36+
Ok(simconnect::DispatchResult::SimobjectData(data)) => {
3737
unsafe {
3838
match (*data).dwDefineID {
3939
0 => {
@@ -59,7 +59,7 @@ loop {
5959
use std::ptr;
6060
use std::mem;
6161

62-
include!("../bindings.rs");
62+
include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
6363

6464
macro_rules! as_c_string {
6565
($target:expr) => {

0 commit comments

Comments
 (0)