HamBook – Rev 54

Subversion Repositories:
Rev:
using System;
using System.Xml.Serialization;

namespace HamBook.Radios.Yaesu.FT_891
{
    [Radio("Yaesu FT-891")]
    [XmlRoot(Namespace = "Yaesu FT-891")]
    public class RadioMode : Generic.RadioMode
    {
        public RadioMode()
        {
        }

        public RadioMode(string name)
        {
            Name = name;
            Code = NameToCode(name);
        }

        public RadioMode(char code)
        {
            Code = code;
            Name = CodeToName(code);
        }

        public override char Code { get; }

        public override string Name { get; }

        public override char NameToCode(string mode)
        {
            switch (mode)
            {
                case "SSB_1":
                    return '1';
                case "SSB_2":
                    return '2';
                case "CW_1":
                    return '3';
                case "FM":
                    return '4';
                case "AM":
                    return '5';
                case "RTTY_1":
                    return '6';
                case "CW_2":
                    return '7';
                case "DATA_1":
                    return '8';
                case "RTTY_2":
                    return '9';
                case "FM-N":
                    return 'B';
                case "DATA_2":
                    return 'C';
                case "AM-N":
                    return 'D';
                default:
                    throw new ArgumentException();
            }
        }

        public override string CodeToName(char code)
        {
            switch (code)
            {
                case '1':
                    return "SSB_1";
                case '2':
                    return "SSB_2";
                case '3':
                    return "CW_1";
                case '4':
                    return "FM";
                case '5':
                    return "AM";
                case '6':
                    return "RTTY_1";
                case '7':
                    return "CW_2";
                case '8':
                    return "DATA_1";
                case '9':
                    return "RTTY_2";
                case 'B':
                    return "FM-N";
                case 'C':
                    return "DATA_2";
                case 'D':
                    return "AM-N";
                default:
                    throw new ArgumentException();
            }
        }
    }
}

Generated by GNU Enscript 1.6.5.90.