/// <summary>
        /// Instanciates an IvyController.
        /// </summary>
        /// <param name="name"></param>
        /// <param name="readyMessage"></param>
        /// <param name="messageFilter"></param>
        /// <param name="broadcastAddress"></param>
        /// <param name="broadcastPort"></param>
        public IvyController(string name, string readyMessage, string broadcastAddress, string broadcastPort)
        {
            IvyBus = new Ivy(name, readyMessage);
            IvyBus.Start(String.Format("{0}:{1}", broadcastAddress, broadcastPort));

            IvyBus.BindMsg(POSITION_CHANGED_REGEX_PATTERN, OnPositionChangedReceived);
            IvyBus.BindMsg(ORIENTATION_CHANGED_REGEX_PATTERN, OnOrientationChangedReceived);

            if (!IvyBus.IsRunning)
            {
                throw new Exception("Ivy bus has not been connected.");
            }
        }