示例#1
0
 public static PDUClientQuery Parse(string[] fields)
 {
     if (fields.Length < 3)
     {
         throw new PDUFormatException("Invalid field count.", Reassemble(fields));
     }
     try {
         ClientQueryType queryType = ClientQueryType.Unknown;
         List <string>   payload   = new List <string>();
         if (fields.Length > 3)
         {
             for (int i = 3; i < fields.Length; i++)
             {
                 payload.Add(fields[i]);
             }
         }
         return(new PDUClientQuery(
                    fields[0],
                    fields[1],
                    queryType.FromString(fields[2]),
                    payload
                    ));
     }
     catch (Exception ex) {
         throw new PDUFormatException("Parse error.", Reassemble(fields), ex);
     }
 }
示例#2
0
 public PDUClientQuery(string from, string to, ClientQueryType queryType, List <string> payload)
     : base(from, to)
 {
     QueryType = queryType;
     Payload   = payload;
 }
示例#3
0
        public static string GetQueryTypeID(this ClientQueryType cq)
        {
            switch (cq)
            {
            case ClientQueryType.IsValidATC:
                return("ATC");

            case ClientQueryType.Capabilities:
                return("CAPS");

            case ClientQueryType.COM1Freq:
                return("C?");

            case ClientQueryType.RealName:
                return("RN");

            case ClientQueryType.Server:
                return("SV");

            case ClientQueryType.ATIS:
                return("ATIS");

            case ClientQueryType.PublicIP:
                return("IP");

            case ClientQueryType.INF:
                return("INF");

            case ClientQueryType.FlightPlan:
                return("FP");

            case ClientQueryType.IPC:
                return("IPC");

            case ClientQueryType.RequestRelief:
                return("BY");

            case ClientQueryType.CancelRequestRelief:
                return("HI");

            case ClientQueryType.RequestHelp:
                return("HLP");

            case ClientQueryType.CancelRequestHelp:
                return("NOHLP");

            case ClientQueryType.WhoHas:
                return("WH");

            case ClientQueryType.InitiateTrack:
                return("IT");

            case ClientQueryType.AcceptHandoff:
                return("HT");

            case ClientQueryType.DropTrack:
                return("DR");

            case ClientQueryType.SetFinalAltitude:
                return("FA");

            case ClientQueryType.SetTempAltitude:
                return("TA");

            case ClientQueryType.SetBeaconCode:
                return("BC");

            case ClientQueryType.SetScratchpad:
                return("SC");

            case ClientQueryType.SetVoiceType:
                return("VT");

            case ClientQueryType.AircraftConfiguration:
                return("ACC");

            case ClientQueryType.NewInfo:
                return("NEWINFO");

            case ClientQueryType.NewATIS:
                return("NEWATIS");

            default:
                return("");
            }
        }
示例#4
0
 public PDUClientQuery(string from, string to, ClientQueryType queryType)
     : this(from, to, queryType, null)
 {
 }
示例#5
0
        public static ClientQueryType FromString(this ClientQueryType cq, string typeID)
        {
            switch (typeID.ToUpper())
            {
            case "ATC":
                return(ClientQueryType.IsValidATC);

            case "CAPS":
                return(ClientQueryType.Capabilities);

            case "C?":
                return(ClientQueryType.COM1Freq);

            case "RN":
                return(ClientQueryType.RealName);

            case "SV":
                return(ClientQueryType.Server);

            case "ATIS":
                return(ClientQueryType.ATIS);

            case "IP":
                return(ClientQueryType.PublicIP);

            case "INF":
                return(ClientQueryType.INF);

            case "FP":
                return(ClientQueryType.FlightPlan);

            case "IPC":
                return(ClientQueryType.IPC);

            case "BY":
                return(ClientQueryType.RequestRelief);

            case "HI":
                return(ClientQueryType.CancelRequestRelief);

            case "HLP":
                return(ClientQueryType.RequestHelp);

            case "NOHLP":
                return(ClientQueryType.CancelRequestHelp);

            case "WH":
                return(ClientQueryType.WhoHas);

            case "IT":
                return(ClientQueryType.InitiateTrack);

            case "HT":
                return(ClientQueryType.AcceptHandoff);

            case "DR":
                return(ClientQueryType.DropTrack);

            case "FA":
                return(ClientQueryType.SetFinalAltitude);

            case "TA":
                return(ClientQueryType.SetTempAltitude);

            case "BC":
                return(ClientQueryType.SetBeaconCode);

            case "SC":
                return(ClientQueryType.SetScratchpad);

            case "VT":
                return(ClientQueryType.SetVoiceType);

            case "ACC":
                return(ClientQueryType.AircraftConfiguration);

            case "NEWINFO":
                return(ClientQueryType.NewInfo);

            case "NEWATIS":
                return(ClientQueryType.NewATIS);

            default:
                return(ClientQueryType.Unknown);
            }
        }