private void FetchData()
        {
            //eventCount = 0;
            while (true)
            {
                if (activeCapture)
                {
                    try
                    {
                        // Get the data (this will block until we get a packet)
                        Object rawGameData = pcarsUDPreader.ReadGameData();

                        // Lock access to the shared struct
                        syncMutex.WaitOne();

                        // GameDataPacket dataPacket = new GameDataPacket(rawGameData);

                        StructHelper.pCarsAPIStruct shared = ((PCarsStructWrapper)rawGameData).data;
                        shared.timestamp = System.DateTime.UtcNow.ToString("o");
                        shared.sessionId = sessionId;


                        //WriteToConsole(dataPacket.timestamp
                        //    + " Speed: " + (dataPacket.speed).ToString()
                        //    + " Current Time: " + (dataPacket.currentTime).ToString()
                        //    );

                        // Only capture and send the data if the game is running (i.e not paused or in the menu)
                        if (shared.mGameState > 0)
                        {
                            WriteToConsole(DateTime.Now.ToString() + " Game State: " + shared.mGameState);

                            String  serializedString = JsonConvert.SerializeObject(shared);
                            Boolean result           = evHubSender.Send(serializedString);


                            if (!result)
                            {
                                WriteToConsole("EventHub send failure");
                            }
                            else
                            {
                                WriteToConsole(DateTime.Now.ToString() + " Data Sent");
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        WriteToConsole(ex.ToString());
                    }

                    // Release the lock again
                    syncMutex.ReleaseMutex();
                }
            }
        }
Exemplo n.º 2
0
        private void FetchData()
        {
            //eventCount = 0;
            while (true)
            {
                if (activeCapture)
                {
                    try
                    {
                        // Get the data (this will block until we get a packet)
                        // Byte[] receiveBytes = udpSocket.Receive(ref senderIP);
                        Object rawGameData = pcarsUDPreader.ReadGameData();

                        //(PCarsStructWrapper)data.

                        StructHelper.pCarsAPIStruct shared = ((PCarsStructWrapper)rawGameData).data;


                        Console.WriteLine("Speed: " + (shared.mSpeed).ToString());
                        Console.WriteLine("RPM: " + (shared.mRPM).ToString());
                        Console.Clear();
                        String serializedString = JsonConvert.SerializeObject(shared);



                        // Lock access to the shared struct
                        syncMutex.WaitOne();



                        // Send to the Event Hub --

                        //     EventData data = new EventData(Encoding.UTF8.GetBytes(serializedString));
                        //     eventHubClient.SendAsync(data);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.ToString());
                    }

                    // Release the lock again
                    syncMutex.ReleaseMutex();
                }
            }
        }