/// <summary>
        /// Parses a received message into an eventTable.
        /// Fires an onReceiveEventTable event if successful
        /// </summary>
        /// <param name="content">The message that should be parsed</param>
        /// <param name="type">The expected type of the eventTable</param>
        /// <returns>Whether or not parsing the eventTable was successful</returns>
        private bool ParseEventTable(byte[] content, MessageType type)
        {
            List <EventState> eventStates = new List <EventState>();

            using (BinaryReader reader = new BinaryReader(new MemoryStream(content))) {
                try {
                    do
                    {
                        EventState state = null;
                        switch (type)
                        {
                        case MessageType.EventTableValueStates:
                            state = ValueState.Parse(reader);
                            break;

                        case MessageType.EventTableTextStates:
                            state = TextState.Parse(reader);
                            break;

                        case MessageType.EventTableDaytimerStates:
                            state = DaytimerState.Parse(reader);
                            break;

                        case MessageType.EventTableWeatherStates:
                            state = WeatherState.Parse(reader);
                            break;

                        default:
                            return(false);
                        }
                        eventStates.Add(state);
                    } while (reader.BaseStream.Length - reader.BaseStream.Position > 0);
                }
                catch {
                    return(false);
                }
            }
            if (OnReceiveEventTable != null)
            {
                OnReceiveEventTable.Invoke(this, new EventStatesParsedEventArgs(type, eventStates));
                return(true);
            }
            else
            {
                return(false);
            }
        }