rust-xplm
rust-xplm copied to clipboard
Accessing array datarefs
I'd like to be able to read and write sim/flightmodel/weight/m_fuel, but with it being an array of floats, I'm not entirely sure how to make it work with xplm.
I've tried this:
let fuel_weights: DataRef<f64, ReadOnly> = DataRef::find("sim/flightmodel/weight/m_fuel")?;
let tanks = fuel_weights.get();
let tank1 = tanks[0];
let tank2 = tanks[1];
But it's not valid, given the f64 that .get() returns.
What's the right way to accomplish this? Is it even implemented yet?
This is not obvious and there probably should be more examples, but it should work:
- Create a
DataRef<[f32], ReadOnly>orDataRef<[f32], ReadWrite> - That implements
ArrayRead<[f32]> - Call as_vec to get a
Vec<f32>with a copy of the dataref values. If performance is important, you can instead use get with a pre-allocated buffer.