コード例 #1
0
 /// <param name='operations'>
 /// Reference to the IOTGateway.IFieldGateway.
 /// </param>
 /// <param name='telemetry'>
 /// Required.
 /// </param>
 public static object SendTelemetryByTelemetry(this IFieldGateway operations, TelemetryData telemetry)
 {
     return Task.Factory.StartNew((object s) => 
     {
         return ((IFieldGateway)s).SendTelemetryByTelemetryAsync(telemetry);
     }
     , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult();
 }
コード例 #2
0
        public void RecordTelemetryData(TelemetryData telemetryData)
        {
            var deviceId           = telemetryData.DeviceId;
            var telemetryDataSinks = _telemetryDataSinkResolver.ResolveIncoming(deviceId);

            if (!telemetryDataSinks.Any())
            {
                throw new ArgumentException($"No incoming telemetry data sinks registered for {deviceId}");
            }

            RecordTelemetryDataWorker(telemetryDataSinks, telemetryData);
        }
コード例 #3
0
 public void TelemetryDataChanged(TelemetryData tData)
 {
     Debug.WriteLine("TelemetryDataChanged event received", "VideoForm");
     _telemetryData        = tData;
     VideoFeed.HUDSpeed    = _telemetryData.SpeedX;
     VideoFeed.HUDRoll     = _telemetryData.Roll;
     VideoFeed.HUDPitch    = _telemetryData.Pitch;
     VideoFeed.HUDAltitude = _telemetryData.Altitude;
     VideoFeed.HUDHeading  = _telemetryData.HeadingMagN;
     VideoFeed.HUDYaw      = _telemetryData.Yaw;
     Debug.WriteLine(_telemetryData.Yaw);
 }
コード例 #4
0
 public static void SetPresence(TelemetryData data)
 {
     discordClient.SetPresence(new RichPresence()
     {
         Details = VehicleDB.Instance.GetVehicle(data.CarOrdinal).GetVehicleInfo(),
         State   = $"[{data.CarClass.ToString()} | {data.CarPI}] - {data.GetMPH()} mph",
         Assets  = new Assets()
         {
             LargeImageKey = "fm"
         }
     });
 }
コード例 #5
0
ファイル: OneHUD.cs プロジェクト: cientista/OneHUD
        public void Startup()
        {
            _telemetryData = new TelemetryData();
            _timingData    = new TimingData();
            _analysisData  = new AnalysisManager();

            lsvPlugins.Items.Clear();

            _plugins = new Dictionary <string, IGame>();
            ICollection <IGame> plugins = PluginLoader <IGame> .LoadPlugins("Plugins");

            if (plugins.Count > 0)
            {
                foreach (var item in plugins)
                {
                    _plugins.Add(item.Name, item);

                    string[] lvText = new string[4];
                    lvText[0] = "";
                    lvText[1] = item.DisplayName;
                    lvText[2] = item.Version;

                    ListViewItem lvItem = new ListViewItem(lvText);

                    Bitmap pluginIcon = item.Icon;

                    if (pluginIcon != null)
                    {
                        imageListPlugins.Images.Add(item.Name, pluginIcon);
                        lvItem.ImageKey = item.Name;
                    }
                    else
                    {
                        lvItem.ImageKey = "missing";
                    }

                    lsvPlugins.Items.Add(lvItem);
                }
                _processMonitor = new ProcessMonitor(_plugins);
                _processMonitor.GameLoadedEvent += new ProcessMonitor.GameLoaded(GameLoaded);
                _processMonitor.GameClosedEvent += new ProcessMonitor.GameClosed(GameClosed);
                _processMonitor.StartProcessMonitor();

                _ipAddress = NetHelpers.GetLocalIpAddress();

                StartWebServer();
            }
            else
            {
                MessageBox.Show("No Plugins Were Found, Application will now exit", "Plugin Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.Close();
            }
        }
コード例 #6
0
 public async void SendMessage(TelemetryData telemetryData)
 {
     try
     {
         var message = JsonConvert.SerializeObject(telemetryData);
         await eventHubClient.SendAsync(new EventData(Encoding.UTF8.GetBytes(message)));
     }
     catch (Exception exception)
     {
         throw exception;
     }
 }
コード例 #7
0
        public override void Record(TelemetryData message)
        {
            var timeSeriesRepository = new GenericRepository <TimeSeriesTableEntity>(TableEntityOperation, TableName);

            var partitionKey           = message.Time.ToString("yyyy-MM-dd") + "-" + message.DeviceId;
            var rowKey                 = message.Time.Ticks.ToString(CultureInfo.InvariantCulture);
            var partitionKeyRowKeyPair = new PartionKeyRowKeyPair(partitionKey, rowKey);

            var timeSeriesTableEntity = new TimeSeriesTableEntity(partitionKeyRowKeyPair, message.Payload);

            timeSeriesRepository.Create(timeSeriesTableEntity);
        }
コード例 #8
0
        /// <summary>
        /// Performs upkeep tasks at a regular interval.
        /// </summary>
        /// <param name="sender">The object that triggered this event.</param>
        /// <param name="e">State information for processing the event.</param>
        internal static async void Tick(object sender, EventArgs e)
        {
            TelemetryData telemetry = GameConnectHandler.Telemetry;

            if (telemetry == null || client == null)
            {
                return;
            }

            DataTransfer.DatabaseExport jsonOutput = new DataTransfer.DatabaseExport(telemetry);

            MemoryStream outStream = new MemoryStream();

            using (StreamWriter streamWriter = new StreamWriter(outStream, new UTF8Encoding(false), 1024, true))
                using (JsonTextWriter jsonTextWriter = new JsonTextWriter(streamWriter))
                {
                    JsonSerializer codec = new JsonSerializer();
                    codec.Serialize(jsonTextWriter, jsonOutput);
                    jsonTextWriter.Flush();
                }

            outStream.Seek(0, SeekOrigin.Begin);

            HttpContent content = new StreamContent(outStream);

            content.Headers.ContentType = new MediaTypeHeaderValue("application/json");

            MainWindow window = (MainWindow)Application.Current.MainWindow;

            try
            {
                HttpResponseMessage response = await client.PostAsync(Properties.Settings.Default.RemotePostEndpoint, content);

                if (response.IsSuccessStatusCode)
                {
                    ++updatesSent;
                    window.UpdateCountLabel.Content      = updatesSent.ToString();
                    window.serverConnectedStoplight.Fill = (Brush)Application.Current.Resources["greenStoplight"];
                }
                else
                {
                    window.serverConnectedStoplight.Fill = (Brush)Application.Current.Resources["yellowStoplight"];
                }
            }
            catch (HttpRequestException)
            {
                window.serverConnectedStoplight.Fill = (Brush)Application.Current.Resources["yellowStoplight"];
            }
            catch (TaskCanceledException)
            {
            }
        }
コード例 #9
0
        string getTelemetryString()
        {
            bool homeOffice          = Properties.Settings.Default.IsHomeOfficeDetectionOn;
            bool deskBandIsMonthType = Properties.Settings.Default.DeskBandShowsMonthBalance;
            bool deskBandIsShown     = DeskBandFinder.FindTimeMergeDeskBandWindow() != IntPtr.Zero;

            var data = new TelemetryData();

            data.Add("HomeOffice", homeOffice ? "yes" : "no");
            data.Add("DeskBandType", deskBandIsMonthType ? "month" : "day");
            data.Add("DeskBandShown", deskBandIsShown ? "yes" : "no");
            return(data.Serialize());
        }
コード例 #10
0
ファイル: TelemetryShould.cs プロジェクト: miiitch/ainject
        public void Call_TraceTrace_with_Error_level_when_TrackError_is_called_with_single_empty_data()
        {
            var telemetry = new Telemetry(_client);

            var message = "TraceMessage";

            var errorData = new TelemetryData();

            telemetry.TrackError(message, errorData);


            _client.Received().TrackTrace(message, TraceSeverity.Error, Arg.Is <Dictionary <string, string> >(data => data != null && data.Count == 0));
        }
コード例 #11
0
        public void CreatePayload_NumberOfDaysSinceInstallation_On_InstallationDate()
        {
            var now = new DateTime(2017, 7, 25);

            var telemetryData = new TelemetryData
            {
                InstallationDate = now.Subtract(new TimeSpan(23, 59, 59)) // Less than a day
            };

            var result = TelemetryHelper.CreatePayload(telemetryData, now, isConnected: true);

            result.NumberOfDaysSinceInstallation.Should().Be(0);
        }
コード例 #12
0
        public Task <bool> PostDeviceData(int deviceId, int dataValue)
        {
            var telemetryData = new TelemetryData
            {
                DeviceConfigId = deviceId,
                DataValue      = dataValue
            };

            _dbContext.TelemetryDatas.Add(telemetryData);
            _dbContext.SaveChanges();

            return(Task.FromResult(true));
        }
コード例 #13
0
 private void _interactor_DataReceived(object sender, TelemetryData data)
 {
     // this is where the telemetry is received, the data object contais all the infos
     _model.ControlHandbrake     = data.control.handbrake;
     _model.StageDistance        = data.stage.distanceToEnd;
     _model.StageTime            = TimeSpan.FromSeconds(data.stage.raceTime).ToString("%m'.'ss'.'f");
     _model.ControlGear          = Gears[data.control.gear];
     _model.ControlThrottle      = data.control.throttle;
     _model.ControlBrakePressure = data.control.footbrakePressure;
     _model.CarSpeed             = (int)Math.Round(data.car.speed);
     _model.EngineRpm            = data.car.engine.rpm;
     _model.RpmMax = Convert.ToDecimal(10000 - data.car.engine.rpm);
 }
コード例 #14
0
        public void CreatePayload_NumberOfDaysSinceInstallation_Day_After_InstallationDate()
        {
            var now = new DateTime(2017, 7, 25);

            var telemetryData = new TelemetryData
            {
                InstallationDate = now.AddDays(-1)
            };

            var result = TelemetryHelper.CreatePayload(telemetryData, now, isConnected: true);

            result.NumberOfDaysSinceInstallation.Should().Be(1);
        }
コード例 #15
0
        public static TelemetryDataHandlerResult ProcessConnectedRequest(TelemetryData telemetry, NameValueCollection postData)
        {
            TelemetryDataHandlerResult result;

            lock (telemetry)
            {
                result = new TelemetryDataHandlerResult()
                {
                    Data = telemetry
                };
            }
            return(result);
        }
コード例 #16
0
ファイル: CommandTask.cs プロジェクト: amigo92/Americano
        /// <summary>
        /// Execute the task.
        /// </summary>
        /// <param name="Job">Information about the current job</param>
        /// <param name="BuildProducts">Set of build products produced by this node.</param>
        /// <param name="TagNameToFileSet">Mapping from tag names to the set of files they include</param>
        /// <returns>True if the task succeeded</returns>
        public override bool Execute(JobContext Job, HashSet <FileReference> BuildProducts, Dictionary <string, HashSet <FileReference> > TagNameToFileSet)
        {
            // If we're merging telemetry from the child process, get a temp filename for it
            FileReference TelemetryFile = null;

            if (Parameters.MergeTelemetryWithPrefix != null)
            {
                TelemetryFile = FileReference.Combine(CommandUtils.RootDirectory, "Engine", "Intermediate", "UAT", "Telemetry.json");
                DirectoryReference.CreateDirectory(TelemetryFile.Directory);
            }

            // Run the command
            StringBuilder CommandLine = new StringBuilder();

            if (Parameters.Arguments == null || (!Parameters.Arguments.CaseInsensitiveContains("-p4") && !Parameters.Arguments.CaseInsensitiveContains("-nop4")))
            {
                CommandLine.AppendFormat("{0} ", CommandUtils.P4Enabled ? "-p4" : "-nop4");
            }
            if (Parameters.Arguments == null || (!Parameters.Arguments.CaseInsensitiveContains("-submit") && !Parameters.Arguments.CaseInsensitiveContains("-nosubmit")))
            {
                CommandLine.AppendFormat("{0} ", CommandUtils.AllowSubmit ? "-submit" : "-nosubmit");
            }
            CommandLine.Append(Parameters.Name);
            if (!String.IsNullOrEmpty(Parameters.Arguments))
            {
                CommandLine.AppendFormat(" {0}", Parameters.Arguments);
            }
            if (TelemetryFile != null)
            {
                CommandLine.AppendFormat(" -Telemetry={0}", CommandUtils.MakePathSafeToUseWithCommandLine(TelemetryFile.FullName));
            }
            try
            {
                CommandUtils.RunUAT(CommandUtils.CmdEnv, CommandLine.ToString());
            }
            catch (CommandUtils.CommandFailedException)
            {
                return(false);
            }

            // Merge in any new telemetry data that was produced
            if (Parameters.MergeTelemetryWithPrefix != null)
            {
                TelemetryData NewTelemetry;
                if (TelemetryData.TryRead(TelemetryFile.FullName, out NewTelemetry))
                {
                    CommandUtils.Telemetry.Merge(Parameters.MergeTelemetryWithPrefix, NewTelemetry);
                }
            }
            return(true);
        }
コード例 #17
0
        public static HeartBeatDataHandlerResult ProcessConnectedRequest(TelemetryData telemetry, NameValueCollection postData)
        {
            HeartBeatDataHandlerResult result = new HeartBeatDataHandlerResult()
            {
                Game = null
            };

            if (telemetry.Game != null)
            {
                result.Game = telemetry.Game;
            }

            return(result);
        }
コード例 #18
0
        private void OnUdpReceive(IAsyncResult ar)
        {
            byte[]        data          = udpClient.EndReceive(ar, ref ep);
            TelemetryData telemetryData = CreateDataStruct(data);

            if (telemetryData.CarOrdinal != 0)
            {
                LastUpdate = telemetryData;
            }
#if DEBUG
            // System.IO.File.WriteAllText("output.json", Newtonsoft.Json.JsonConvert.SerializeObject(LastUpdate, Newtonsoft.Json.Formatting.Indented));
#endif
            udpClient.BeginReceive(new AsyncCallback(OnUdpReceive), null);
        }
コード例 #19
0
        /// <summary>
        /// 傳送溫度資訊
        /// </summary>
        public async Task SendTelemetryData(double temperature)
        {
            // 設定資料
            TelemetryData data = new TelemetryData();

            data.Temperature = temperature;
            data.DeviceId    = DeviceId;


            // 傳送訊息
            var messageString = JsonConvert.SerializeObject(data);
            var message       = new Message(Encoding.UTF8.GetBytes(messageString));
            await Client.SendEventAsync(message);
        }
コード例 #20
0
ファイル: DiscordRPC.cs プロジェクト: PiSaucer/FH4RP
 public static void SetPresence(TelemetryData data)
 {
     discordClient.SetPresence(new RichPresence()
     {
         Details    = VehicleDB.Instance.GetVehicle(data.CarOrdinal).GetVehicleInfo(),
         State      = $"[{data.CarClass.ToString()} | {data.CarPI}] - {data.GetMPH()} mph",
         Timestamps = elapsedTime,
         Assets     = new Assets()
         {
             LargeImageKey = "forza-horizon-4-1024",
             SmallImageKey = "h4-small"
         }
     });
 }
コード例 #21
0
        public void CreatePayload_NumberOfDaysSinceInstallation_On_InstallationDate()
        {
            var now = new DateTime(2017, 7, 25);

            var telemetryData = new TelemetryData
            {
                InstallationDate = now.Subtract(new TimeSpan(23, 59, 59)) // Less than a day
            };

            var binding = CreateConfiguration(SonarLintMode.LegacyConnected, "http://localhost");

            var result = TelemetryHelper.CreatePayload(telemetryData, now, binding);

            result.NumberOfDaysSinceInstallation.Should().Be(0);
        }
コード例 #22
0
ファイル: SampleConnector.cs プロジェクト: lulzzz/SmartWorld
        public Task <object> ReceiveAsync(Action <IList <object> > onSuccess = null, Action <IList <object>, Exception> onError = null, Dictionary <string, object> args = null)
        {
            Task.Delay(5000);

            return(Task <object> .Run(() =>
            {
                TelemetryData sensorEvent = new TelemetryData()
                {
                    Device = "DEVICE001",
                    Temperature = DateTime.Now.Minute,
                };

                return (object)sensorEvent;
            }));
        }
コード例 #23
0
        private void CollectSensorData()
        {
            var measurements = new List<SensorData>();
            var tasks = _sensors.ToList().Select(async sensor =>
            {
                var measurement = await sensor.TakeMeasurement();
                measurements.Add(measurement);

                measurement.Measurements.ToList().ForEach(kvp => _logger.Log($"{kvp.Key}: {kvp.Value}\n\n"));
            }).ToList();

            Task.WhenAll(tasks).Wait();
            var telemetry = new TelemetryData("testDevice", measurements.ToArray());
            _database.AddTelemetryData(telemetry);
        }
コード例 #24
0
        public static void TraceData(TelemetryData data)
        {
            var time = data.TimestampsNanos;

            for (int i = 0; i < data.Parameters.Length; i++)
            {
                Trace.WriteLine($"Parameter[{i}]:");
                var vCar = data.Parameters[i].AvgValues;
                for (var j = 0; j < time.Length; j++)
                {
                    var fromMilliseconds = TimeSpan.FromMilliseconds(time[j].NanosToMillis());
                    Trace.WriteLine($"{fromMilliseconds:hh\\:mm\\:ss\\.fff}, { new string('.', (int)(50 * vCar[j])) }");
                }
            }
        }
コード例 #25
0
        public async Task <IActionResult> OnGetAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            TelemetryData = await _context.TelemetryData.FirstOrDefaultAsync(m => m.IdTelemetryData == id);

            if (TelemetryData == null)
            {
                return(NotFound());
            }
            return(Page());
        }
コード例 #26
0
        public void CreatePayload_StandaloneMode_ServerNotificationsAreNotSent()
        {
            var binding = BindingConfiguration.Standalone;

            var telemetryData = new TelemetryData
            {
                ServerNotifications = new ServerNotifications {
                    IsDisabled = false
                }
            };

            var result = TelemetryHelper.CreatePayload(telemetryData, new DateTimeOffset(), binding, null);

            result.ServerNotifications.Should().BeNull();
        }
コード例 #27
0
        public void CreatePayload_NumberOfDaysSinceInstallation_Day_After_InstallationDate()
        {
            var now = new DateTime(2017, 7, 25);

            var telemetryData = new TelemetryData
            {
                InstallationDate = now.AddDays(-1)
            };

            var binding = CreateConfiguration(SonarLintMode.Connected, "http://localhost");

            var result = TelemetryHelper.CreatePayload(telemetryData, now, binding);

            result.NumberOfDaysSinceInstallation.Should().Be(1);
        }
コード例 #28
0
        private void Telemetry_DataReady(object sender, TelemetryEventArgs e)
        {
            DisplaySensorReadings(e);

            var telemetryData = new TelemetryData()
            {
                DeviceId    = deviceId,
                Temperature = e.Temperature,
                Humidity    = e.Humidity
            };

            var telemetryMessage = MessageHelper.Serialize(telemetryData);

            deviceClient.SendEventAsync(telemetryMessage);
        }
コード例 #29
0
        public static ConnectedDataHandlerResult ProcessConnectedRequest(TelemetryData telemetry, NameValueCollection postData)
        {
            ConnectedDataHandlerResult result = new ConnectedDataHandlerResult()
            {
                Result = false
            };

            if (telemetry.Game != null)
            {
                result.Connected   = true;
                result.Name        = telemetry.Game;
                result.Description = telemetry.Description;
            }

            return(result);
        }
コード例 #30
0
ファイル: TelemetryShould.cs プロジェクト: miiitch/ainject
        public void Call_TraceTrace_with_Error_level_when_TrackError_is_called_with_single_one_data()
        {
            var telemetry = new Telemetry(_client);

            var message = "TraceMessage";

            var errorDataA = new TelemetryData();

            errorDataA["A"] = "X";
            var errorDataB = new TelemetryData();

            errorDataA["B"] = "Y";
            telemetry.TrackError(message, errorDataA, errorDataB);

            _client.Received().TrackTrace(message, TraceSeverity.Error, Arg.Is <Dictionary <string, string> >(data => data != null && data.Count == 2 && data["A"] == "X" && data["B"] == "Y"));
        }
コード例 #31
0
        public void SetCurrentFrame(int frameIdx)
        {
            if (_selectedFrameIdx != frameIdx)
            {
                var frameCountForLap = TelemetryData.GetLapFrameCount(_selectedLapIdx);
                _selectedFramePercent = (float)frameIdx / (float)frameCountForLap;
                _selectedFrameX       = (int)(graphPanel.Width * _selectedFramePercent);

                UpdateSeriesListValues(frameIdx);

                _selectedFrameIdx = frameIdx;

                // to refresh the selected frame indicator
                RedrawGraph();
            }
        }
コード例 #32
0
ファイル: Program.cs プロジェクト: michael-chi/Azure-IOTHub
 static TelemetryData GenerateMessage(int seq, string message)
 {
     TelemetryData msg = new TelemetryData();
     msg.Random(deviceId, string.Format("{0}{1}", DateTime.UtcNow.ToString("yyyymmdd"), seq.ToString("0000000")), message, min, max);
     return msg;
 }
コード例 #33
0
 public static byte[] WrapData(TelemetryData data)
 {
     throw new NotImplementedException();
 }
コード例 #34
0
 /// <param name='operations'>
 /// Reference to the IOTGateway.IFieldGateway.
 /// </param>
 /// <param name='telemetry'>
 /// Required.
 /// </param>
 /// <param name='cancellationToken'>
 /// Cancellation token.
 /// </param>
 public static async Task<object> SendTelemetryByTelemetryAsync(this IFieldGateway operations, TelemetryData telemetry, CancellationToken cancellationToken = default(System.Threading.CancellationToken))
 {
     Microsoft.Rest.HttpOperationResponse<object> result = await operations.SendTelemetryByTelemetryWithOperationResponseAsync(telemetry, cancellationToken).ConfigureAwait(false);
     return result.Body;
 }
コード例 #35
0
        private void ReceiveAllImpl()
        {
            log.Info("Input stream parsing has began.");
            Byte[] buffer = new Byte[2048];
            Int32 readed = socket.Receive(buffer);

            while (readed > 0)
            {
                String receivedString = Encoding.ASCII.GetString(buffer, 0, readed);

                // Ищем тип сообщения. Должен быть первой буквой.
                Char messageType = receivedString[0];
                receivedString = receivedString.Substring(2);

                switch (messageType)
                {
                    case 'I':
                        InitData initData = new InitData(receivedString);
                        log.InfoFormat("Init: {0}", initData);
                        break;
                    case 'T':
                        TelemetryData teleData = new TelemetryData(receivedString);
                        log.InfoFormat("Telemetry: {0}", teleData);
                        break;
                    case 'E':
                        break;
                    case 'B':
                        break;
                    case 'C':
                        break;
                    case 'K':
                        break;
                    case 'S':
                        break;
                    default:
                        throw new ArgumentException("Illegal message type " + messageType + ".");
                }

                readed = socket.Receive(buffer);
            }

            log.Info("Input stream parsing has finished.");
        }
        private async void sendDeviceTelemetryData()
        {
            TelemetryData data = new TelemetryData();
            data.DeviceId = deviceId;
            data.Temperature = Temperature + 0.55;
            data.Humidity = Humidity + 0.55;
            data.ExternalTemperature = ExternalTemperature + 0.55;

            try
            {
                var msg = new Message(Serialize(data));
                if (deviceClient != null)
                {
                    await deviceClient.SendEventAsync(msg);
                }
            }
            catch (System.Exception e)
            {
                Debug.Write("Exception while sending device telemetry data :\n" + e.Message.ToString());
            }
            Debug.Write("Sent telemetry data to IoT Suite\nTemperature=" + string.Format("{0:0.00}", Temperature) + "\nHumidity=" + string.Format("{0:0.00}", Humidity));

        }