Example #1
0
        private float[] GetDistancesFromSimulator()
        {
            ValueSet valuesToSend = new ValueSet {
                { "LIDAR", "" }
            };

            ValueSet dataReceived = Task.Run(() => _simulatorCommunication.RequestDataAsync(valuesToSend)).GetAwaiter().GetResult(); //TODO: (ref. issue #4) This is a temporary hack that blocks the async method. WARNING MAY CAUSE ISSUES!. See if Read() can be rewritten to be async.  See Figure 7 "The Thread Pool Hack" on https://msdn.microsoft.com/en-us/magazine/mt238404.aspx

            return(dataReceived["DATA"] as float[]);
        }
        public VehicleDataPacket Read()
        {
            ValueSet valuesToSend = new ValueSet();

            valuesToSend.Add("ADDRESS", (int)_simulatedDevice);
            valuesToSend.Add("REQUEST", "");

            ValueSet dataReceived = Task.Run(() => _simulatorCommunication.RequestDataAsync(valuesToSend)).GetAwaiter().GetResult(); //TODO: (ref. issue #4) This is a temporary hack that blocks the async method. WARNING MAY CAUSE ISSUES!. See if Read() can be rewritten to be async.  See Figure 7 "The Thread Pool Hack" on https://msdn.microsoft.com/en-us/magazine/mt238404.aspx

            NewDataReceived?.Invoke(this, EventArgs.Empty);

            return(ConvertData(dataReceived));
        }