HamBook – Blame information for rev 43

Subversion Repositories:
Rev:
Rev Author Line No. Line
43 office 1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Threading.Tasks;
6  
7 namespace HamBook.Radios.Yaesu.FT_891
8 {
9 [Radio("Yaesu FT-891")]
10 public class RadioMode : Generic.RadioMode
11 {
12 public override char Mode { get; }
13  
14 public RadioMode(string mode)
15 {
16 Mode = Parse(mode);
17 }
18  
19 public RadioMode(char mode)
20 {
21 Mode = Parse(mode);
22 }
23  
24 public override char AsChar(Generic.RadioMode radioMode)
25 {
26 return radioMode.Mode;
27 }
28  
29 public override Generic.RadioMode AsRadioMode(string mode)
30 {
31 return new RadioMode(mode);
32 }
33  
34 public override Generic.RadioMode AsRadioMode(char mode)
35 {
36 return new RadioMode(mode);
37 }
38  
39 public override string AsString(Generic.RadioMode radioMode)
40 {
41 switch (radioMode.Mode)
42 {
43 case '1':
44 return "SSB_1";
45 case '2':
46 return "SSB_2";
47 case '3':
48 return "CW_1";
49 case '4':
50 return "FM";
51 case '5':
52 return "AM";
53 case '6':
54 return "RTTY_1";
55 case '7':
56 return "CW_2";
57 case '8':
58 return "DATA_1";
59 case '9':
60 return "RTTY_2";
61 case 'B':
62 return "FM-N";
63 case 'C':
64 return "DATA_2";
65 case 'D':
66 return "AM-N";
67 default:
68 throw new ArgumentException();
69 }
70 }
71 public override bool TryParse(string mode, out Generic.RadioMode radioMode)
72 {
73 switch (mode)
74 {
75  
76 case "SSB_1":
77 case "SSB_2":
78 case "CW_1":
79 case "FM":
80 case "AM":
81 case "RTTY_1":
82 case "CW_2":
83 case "DATA_1":
84 case "RTTY_2":
85 case "FM-N":
86 case "DATA_2":
87 case "AM-N":
88 radioMode = new RadioMode(mode);
89 return true;
90 default:
91 radioMode = null;
92 return false;
93 }
94 }
95  
96 public override bool TryParse(char mode, out Generic.RadioMode radioMode)
97 {
98 switch (mode)
99 {
100 case '1':
101 case '2':
102 case '3':
103 case '4':
104 case '5':
105 case '6':
106 case '7':
107 case '8':
108 case '9':
109 case 'B':
110 case 'C':
111 case 'D':
112 radioMode = new RadioMode(mode);
113 return true;
114 default:
115 radioMode = null;
116 return false;
117 }
118 }
119  
120 private char Parse(string mode)
121 {
122 switch (mode)
123 {
124  
125 case "SSB_1":
126 return '1';
127 case "SSB_2":
128 return '2';
129 case "CW_1":
130 return '3';
131 case "FM":
132 return '4';
133 case "AM":
134 return '5';
135 case "RTTY_1":
136 return '6';
137 case "CW_2":
138 return '7';
139 case "DATA_1":
140 return '8';
141 case "RTTY_2":
142 return '9';
143 case "FM-N":
144 return 'B';
145 case "DATA_2":
146 return 'C';
147 case "AM-N":
148 return 'D';
149 default:
150 throw new ArgumentException();
151 }
152 }
153  
154 private char Parse(char mode)
155 {
156 switch (mode)
157 {
158 case '1':
159 case '2':
160 case '3':
161 case '4':
162 case '5':
163 case '6':
164 case '7':
165 case '8':
166 case '9':
167 case 'B':
168 case 'C':
169 case 'D':
170 return mode;
171 default:
172 throw new ArgumentException();
173 }
174 }
175 }
176 }