Martijn0315
Gebruiker
- Lid geworden
- 16 mei 2016
- Berichten
- 5
Geachte mensen.
Ik ben een fervent gebruiker van een F-16 sim (BMS).
Bij de sim word een DLL (F4sharedmem) geleverd waarmee je data uit de sim kunt gebruiken, en allerlei applicaties kunt maken.
Wat ik graag zou willen bereiken, is data uit de sim te halen en over te brengen naar mijn arduino.
Nu ben ik al een aantal weken bezig, ik ben een beginner op C# gebied en heb al diverse tutorials gevolgd.
Ik krijg al het één en ander voor elkaar, maar waar de schoen wringt is het volgende.
Ik probeer uit een int bepaalde bit's te halen, als de bit 1 is moet er een ledje gaan branden en als de bit 0 is moet het ledje uitgaan.
Uiteraard moet dit over de serial port naar de arduino gestuurd worden, de serial port aanroepen is het probleem niet.
Hier is een stukje code uit de flightData.h
Lightbits is de INT
De waarde van de functie (bv. AOAAbove is 0x1000).
hier is een stuk code wat ik inmiddels geschreven heb
Ik heb het web en diverse forums afgezocht en geprobeerd zonder enig resultaat. Er is zoveel te vinden maar daardoor zie ik de bomen door het bos niet meer.Hopelijk zijn er hier mensen die mij in de juiste richting kunnen sturen.
Ik voeg de ddl en flightdata bij
https://www.dropbox.com/s/xr2o3ymwzck64df/F4SharedMem.dll?dl=0
https://www.dropbox.com/s/4rhostbbq3sv330/FlightData.h?dl=0
Alvast bedankt
Martijn
Ik ben een fervent gebruiker van een F-16 sim (BMS).
Bij de sim word een DLL (F4sharedmem) geleverd waarmee je data uit de sim kunt gebruiken, en allerlei applicaties kunt maken.
Wat ik graag zou willen bereiken, is data uit de sim te halen en over te brengen naar mijn arduino.
Nu ben ik al een aantal weken bezig, ik ben een beginner op C# gebied en heb al diverse tutorials gevolgd.
Ik krijg al het één en ander voor elkaar, maar waar de schoen wringt is het volgende.
Ik probeer uit een int bepaalde bit's te halen, als de bit 1 is moet er een ledje gaan branden en als de bit 0 is moet het ledje uitgaan.
Uiteraard moet dit over de serial port naar de arduino gestuurd worden, de serial port aanroepen is het probleem niet.
Hier is een stukje code uit de flightData.h
Code:
LightBits
{
MasterCaution = 0x1, // Left eyebrow
// Brow Lights
TF = 0x2, // Left eyebrow
OXY_BROW = 0x4, // repurposed for eyebrow OXY LOW (was OBS, unused)
EQUIP_HOT = 0x8, // Caution light; repurposed for cooling fault (was: not used)
ONGROUND = 0x10, // True if on ground: this is not a lamp bit!
ENG_FIRE = 0x20, // Right eyebrow; upper half of split face lamp
CONFIG = 0x40, // Stores config, caution panel
HYD = 0x80, // Right eyebrow; see also OIL (this lamp is not split face)
Flcs_ABCD = 0x100, // TEST panel FLCS channel lamps; repurposed, was OIL (see HYD; that lamp is not split face)
FLCS = 0x200, // Right eyebrow; was called DUAL which matches block 25, 30/32 and older 40/42
CAN = 0x400, // Right eyebrow
T_L_CFG = 0x800, // Right eyebrow
// AOA Indexers
AOAAbove = 0x1000,
AOAOn = 0x2000,
AOABelow = 0x4000,
// Refuel/NWS
RefuelRDY = 0x8000,
RefuelAR = 0x10000,
RefuelDSC = 0x20000,
// Caution Lights
FltControlSys = 0x40000,
LEFlaps = 0x80000,
EngineFault = 0x100000,
Overheat = 0x200000,
FuelLow = 0x400000,
Avionics = 0x800000,
RadarAlt = 0x1000000,
IFF = 0x2000000,
ECM = 0x4000000,
Hook = 0x8000000,
NWSFail = 0x10000000,
CabinPress = 0x20000000,
AutoPilotOn = 0x40000000, // TRUE if is AP on. NB: This is not a lamp bit!
TFR_STBY = 0x80000000, // MISC panel; lower half of split face TFR lamp
// Used with the MAL/IND light code to light up "everything"
// please update this if you add/change bits!
AllLampBitsOn = 0xBFFFFFEF
};
Lightbits is de INT
De waarde van de functie (bv. AOAAbove is 0x1000).
hier is een stuk code wat ik inmiddels geschreven heb
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using F4SharedMem;
using System.IO.Ports;
using System.Collections;
using System.Threading;
namespace test_2
{
class Program
{
static void Main(string[] args)
{
SerialPort Gate = new SerialPort("com16", 9600);
Reader BmsData = new Reader();
while (BmsData.IsFalconRunning == true)
{
FlightData lamps = BmsData.GetCurrentData();
//byte[] lights = BmsData.GetRawFlightData2();
Int32 cautionpanel = lamps.lightBits;
BitArray testbit = new BitArray(cautionpanel);
byte[] lights = new byte[16];
testbit[0] = Convert.ToBoolean(cautionpanel[12]);
//Gate.Open();
//Gate.WriteLine(lights.ToString());
Console.WriteLine(lights);e
Thread.Sleep(500);
}
Console.ReadKey();
}
}
}
Ik heb het web en diverse forums afgezocht en geprobeerd zonder enig resultaat. Er is zoveel te vinden maar daardoor zie ik de bomen door het bos niet meer.Hopelijk zijn er hier mensen die mij in de juiste richting kunnen sturen.
Ik voeg de ddl en flightdata bij
https://www.dropbox.com/s/xr2o3ymwzck64df/F4SharedMem.dll?dl=0
https://www.dropbox.com/s/4rhostbbq3sv330/FlightData.h?dl=0
Alvast bedankt
Martijn