private void StartDataFlow(Socket client)
        {
            for (; _messagesToSend != 0 && _doWorkSwitch; --_messagesToSend)
            {
                try
                {
                    if (!client.Connected)
                    {
                        client.Close( );
                        break;
                    }

                    SensorDataContract sensorData     = RandomSensorDataGenerator.Generate( );
                    string             serializedData = JsonConvert.SerializeObject(sensorData);

                    Byte[] sendBytes = Encoding.ASCII.GetBytes("<" + serializedData + ">");

                    client.Send(sendBytes);

                    Thread.Sleep(TIME_BETWEEN_DATA_MS);
                }
                catch (Exception ex)
                {
                    _logger.LogError("Exception processing data from socket: " + ex.StackTrace);
                    _logger.LogError("Continuing...");
                }
            }
        }
        public void RunSocketServer(SensorEndpoint endpoint)
        {
            IPAddress ipAddress;

            if (!IPAddress.TryParse(endpoint.Host, out ipAddress))
            {
                return;
            }

            TcpListener serverSocket = new TcpListener(ipAddress, endpoint.Port);

            serverSocket.Start( );

            TcpClient clientSocket = serverSocket.AcceptTcpClient( );

            try
            {
                for ( ; ;)
                {
                    NetworkStream networkStream = clientSocket.GetStream( );

                    //byte[] bytesFrom = new byte[10025];
                    //networkStream.Read(bytesFrom, 0, clientSocket.ReceiveBufferSize);

                    //string dataFromClient = Encoding.ASCII.GetString(bytesFrom);
                    //dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$"));

                    SensorDataContract sensorData     = RandomSensorDataGenerator.Generate( );
                    string             serializedData = JsonConvert.SerializeObject(sensorData);

                    Byte[] sendBytes = Encoding.ASCII.GetBytes("<" + serializedData + ">");

                    networkStream.Write(sendBytes, 0, sendBytes.Length);
                    networkStream.Flush( );

                    Thread.Sleep(SLEEP_TIME_MS);
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.ToString( ));
            }

            try
            {
                serverSocket.Stop( );
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.ToString( ));
            }
        }
Example #3
0
        private static void TestWebService(ILogger logger)
        {
            //////////////////////////////////////////////////////////////////////////////////////////////
            // Test Web service and core service
            //
            SensorDataContract sensorData     = RandomSensorDataGenerator.Generate( );
            string             serializedData = JsonConvert.SerializeObject(sensorData);

            WebServiceTest webServiceTest = new WebServiceTest("http://localhost:8000/GatewayService/API/Enqueue?jsonData=" + serializedData, logger);

            webServiceTest.Run( );
            Console.WriteLine(String.Format("WebService Test completed, {0} messages sent", webServiceTest.TotalMessagesSent));
        }
Example #4
0
        static void Main(string[] args)
        {
            // we do not need a tunable logger, but this is a nice way to test it...
            TunableLogger logger = TunableLogger.FromLogger(
                SafeLogger.FromLogger(TestLogger.Instance)
                );

            TunableLogger.LoggingLevel loggingLevel = TunableLogger.LevelFromString(ConfigurationManager.AppSettings.Get("LoggingLevel"));

            logger.Level = (loggingLevel != TunableLogger.LoggingLevel.Undefined) ? loggingLevel : TunableLogger.LoggingLevel.Errors;


            /////////////////////////////////////////////////////////////////////////////////////////////
            // Test core service
            //
            CoreTest t2 = new CoreTest(logger);

            t2.Run( );
            Console.WriteLine(String.Format("Core Test completed"));

            //////////////////////////////////////////////////////////////////////////////////////////////
            // Test Web service and core service
            //
            SensorDataContract sensorData     = RandomSensorDataGenerator.Generate( );
            string             serializedData = JsonConvert.SerializeObject(sensorData);

            WebServiceTest t1 = new WebServiceTest("http://localhost:8000/GatewayService/API/Enqueue?jsonData=" + serializedData, logger);

            t1.Run( );
            Console.WriteLine(String.Format("WebService Test completed, {0} messages sent", t1.TotalMessagesSent));

            /////////////////////////////////////////////////////////////////////////////////////////////
            // Test Socket
            //
            SocketTest t3 = new SocketTest(logger);

            t3.Run( );
            Console.WriteLine(String.Format("Socket Test completed"));

            // wait for logging tasks to complete
            Console.WriteLine("Press enter to exit");
            Console.ReadLine( );
        }
Example #5
0
        public void TestRun(int sleepTime)
        {
            int messagesSent = 0;

            do
            {
                SensorDataContract sensorData = RandomSensorDataGenerator.Generate( );

                string serializedData = JsonConvert.SerializeObject(sensorData);

                _enqueue(serializedData);

                if (++messagesSent % LOG_MESSAGE_RATE == 0)
                {
                    _logger.LogInfo(LOG_MESSAGE_RATE + " messages sent via DeviceAdapterTestMock.");
                }

                Thread.Sleep(sleepTime);
            } while(_doWorkSwitch);
        }