HamBook – Blame information for rev 15

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