private static string GetDataString(
     int messageCount,
     int responseMessageId,
     ResponseAttribute responseType,
     CPDLCUplinkMessageType messageType)
 {
     return(GetDataString(messageCount, responseMessageId, responseType, getAtcMessage(messageType)));
 }
 /// <summary>
 /// Use to create a new CPDLC Message object
 /// </summary>
 /// <param name="recievedAt">When the message was recieved by the client (not when it was created or sent from the sender station)</param>
 /// <param name="from">Callsign from which the message was recieved</param>
 /// <param name="to">Callsign to which the message was addressed</param>
 /// <param name="responseType">Expected response type</param>
 /// <param name="messageCount">Message counter, increases for every new message sent</param>
 /// <param name="message">The ATC instruction</param>
 public CpdlcAcarsMessage(
     string from,
     string to,
     ResponseAttribute responseType,
     int messageCount,
     CPDLCUplinkMessageType messageType) :
     base(
         DateTime.Now,
         from,
         to,
         MessageType.CPDLC,
         GetDataString(messageCount, 0, responseType, messageType))
 {
     ResponseType      = responseType;
     MessageCount      = messageCount;
     UplinkMessageType = messageType;
     Message           = getAtcMessage(messageType);
 }
        private static string getAtcMessage(CPDLCUplinkMessageType messageType)
        {
            // / data2 / 33 / 1 / NE / UNABLE
            // / data2 / 22 / 4 / N / WILCO
            switch (messageType)
            {
            case CPDLCUplinkMessageType.RESPONSE_AFFIRM:
            case CPDLCUplinkMessageType.RESPONSE_NEGATIVE:
            case CPDLCUplinkMessageType.RESPONSE_ROGER:
            case CPDLCUplinkMessageType.RESPONSE_STANDBY:
            case CPDLCUplinkMessageType.RESPONSE_UNABLE:
            case CPDLCUplinkMessageType.RESPONSE_WILCO:
                return(messageType.ToString().Replace("RESPONSE_", ""));

            default:
                return(messageType.ToString().Replace('_', ' '));
            }
        }