Пример #1
0
        public unsafe DataSample GetNextDataSample(int requestedTickCount, bool logging)
        {
            var headers = accessor.AcquirePointer(ptr =>
            {
                var a = ReadHeader(ptr);
                var b = ReadVariableHeaders(a, ptr);
                return(new { Header = a, VarHeaders = b });
            });

            if ((headers.Header.status & 1) == 0)
            {
                return(DisconnectedSample());
            }

            var sessionData          = ReadSessionInfo(headers.Header);
            var variables            = ReadVariables(headers.Header, headers.VarHeaders, requestedTickCount, logging);
            var variableDescriptions = headers.VarHeaders.ToDictionary(vh => vh.name, vh => vh.desc);

            if (sessionData == null)
            {
                return(DisconnectedSample());
            }

            if (variables == null)
            {
                return(null);
            }

            variables.SessionData = sessionData;
            return(new DataSample {
                Telemetry = variables, SessionData = sessionData, TelemetryDescription = variableDescriptions, IsConnected = true
            });
        }