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( )); } }
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)); }
public static SensorDataContract Generate() { int device = _Random.Next() % DEVICE_COUNT; SensorDataContract sensorData = new SensorDataContract { MeasureName = _MeasureName[device], UnitOfMeasure = _UnitOfMeasure[device], DisplayName = _DisplayName[device], Guid = _Guids[device], Value = _Random.Next() % 1000 - 500, Location = "here", Organization = "contoso", TimeCreated = DateTime.UtcNow }; return(sensorData); }
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( ); }
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); }