/// <summary>
        /// Converts the initialization from the config file to bytes and then sends it to the Sensor Network.
        /// </summary>
        public bool SendSensorInitialization()
        {
            bool success = false;
            var  init    = SensorNetworkConfig.GetSensorInitAsBytes();

            try
            {
                // Set up TCP client
                InitializationClient = new TcpClient(IPAddress, Port);
                NetworkStream stream = InitializationClient.GetStream();

                // Send initialization
                stream.Write(init, 0, init.Length);

                stream.Flush();
                stream.Close();
                stream.Dispose();
                InitializationClient.Close();
                InitializationClient.Dispose();

                success = true; // Successfully sent the message without any errors
            }

            // Reaching this exception will set the SensorNetworkServer's status to InitializationSendingFailed
            catch (SocketException)
            {
                logger.Info(Utilities.GetTimeStamp() + $": There was an error sending data to the Sensor Network at {IPAddress}:{Port}; " +
                            $"the address:port may be busy or no server was found. Please verify the address:port is available and restart the " +
                            $"Control Room software.");
            }

            return(success);
        }
        public void TestGetSensorInitAsBytes_AllTrue_AllBytesOne()
        {
            SensorNetworkConfig config = new SensorNetworkConfig(5);

            var bytes = config.GetSensorInitAsBytes();

            // All bytes in the array should be 1
            Assert.IsTrue(bytes.All(singleByte => singleByte == 1));
        }
        public void TestGetSensorInitAsBytes_AllTrue_AllBytesZero()
        {
            SensorNetworkConfig config = new SensorNetworkConfig(5);

            config.ElevationTemp1Init              = false;
            config.AzimuthTemp1Init                = false;
            config.ElevationAccelerometerInit      = false;
            config.AzimuthAccelerometerInit        = false;
            config.CounterbalanceAccelerometerInit = false;
            config.ElevationEncoderInit            = false;
            config.AzimuthEncoderInit              = false;

            var bytes = config.GetSensorInitAsBytes();

            // All bytes in the array should be 0
            Assert.IsTrue(bytes.All(singleByte => singleByte == 0));
        }