private void Poll() { while (_isPoll) { if (_typeControlElement == "Joystick") { _controlElement.UpdateRud(_deviceControlElement?.ReadData(_config.Default.DefaultControlElement.Rud.Guid)); _controlElement.UpdateRus(_deviceControlElement?.ReadData(_config.Default.DefaultControlElement.Rus.Guid)); } if (_typeControlElement == "Ethernet") { IntPtr InpControl = GetIntPtr(_cLSEControl); IntPtr OutpState = GetIntPtr(_cLSEState); Step(InpControl, OutpState); _cLSEControl = (CLSEControl)Marshal.PtrToStructure(InpControl, typeof(CLSEControl)); _cLSEState = (CLSEState)Marshal.PtrToStructure(OutpState, typeof(CLSEState)); _controlElement.UpdateRud(_ethernetControlElement); _controlElement.UpdateRus(_ethernetControlElement, _cLSEState); Marshal.FreeHGlobal(InpControl); Marshal.FreeHGlobal(OutpState); } Thread.Sleep(20); } }
private void InitObject() { _config = Config.Instance(); _udpHelper = new UdpHelper(); _deviceControlElement = DeviceControlElement.GetInstance(); _deviceControlElement.AddJoystick(_config.Default.DefaultControlElement.Rus.Guid); _deviceControlElement.AddJoystick(_config.Default.DefaultControlElement.Rud.Guid); _dynamicModelToBmpi = new DynamicModelToBmpi(); _aircraftPosition = new AircraftPosition(); _dynamicModelToVaps = new DynamicModelToVaps(); _modelState = new ModelState(); _channelRadar = new ChannelRadar(); _channelThermalEffect = new ChannelThermalEffect(); _channelTvHeadEffect = new ChannelTvHeadEffect(); _ethernetControlElement = new EthernetControlElement(); _cLSEControl = new CLSEControl(); _cLSEState = new CLSEState(); _parametersOfControl = new ParametersOfControl(); _lptp = new Lptp(); _commandPue = new CommandPue(); if (_typeModel == 0) { _controlElement = new ControlElementKa52(); _dynamicModel = new ModelKa52(); } _startPosition = new StartPosition(); _landing = new Landing(); _route = new Route(); uint version = 0; uint release = 0; uint releaseDay = 0; uint releaseMonth = 0; uint releaseYear = 0; IntPtr pversion = GetIntPtr(version); IntPtr prelease = GetIntPtr(release); IntPtr preleaseDay = GetIntPtr(releaseDay); IntPtr preleaseMonth = GetIntPtr(releaseMonth); IntPtr preleaseYear = GetIntPtr(releaseYear); GetDllVersion(pversion, prelease, preleaseDay, preleaseMonth, preleaseYear); version = (uint)Marshal.ReadInt32(pversion); release = (uint)Marshal.ReadInt32(prelease); releaseDay = (uint)Marshal.ReadInt32(preleaseDay); releaseMonth = (uint)Marshal.ReadInt32(preleaseMonth); releaseYear = (uint)Marshal.ReadInt32(preleaseYear); Init("ConfigBrunner.xml"); }