HamBook – Blame information for rev 3

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  
129 public static implicit operator string(RadioMode radioMode)
130 {
131 switch (radioMode.Mode)
132 {
133 case '1':
134 return "SSB_1";
135 case '2':
136 return "SSB_2";
137 case '3':
138 return "CW_1";
139 case '4':
140 return "FM";
141 case '5':
142 return "AM";
143 case '6':
144 return "RTTY_1";
145 case '7':
146 return "CW_2";
147 case '8':
148 return "DATA_1";
149 case '9':
150 return "RTTY_2";
151 case 'B':
152 return "FM-N";
153 case 'C':
154 return "DATA_2";
155 case 'D':
156 return "AM-N";
157 default:
158 throw new ArgumentException();
159 }
160 }
161  
162 public static implicit operator RadioMode(char mode)
163 {
164 return new RadioMode(mode);
165 }
166  
167 public static implicit operator char(RadioMode radioMode)
168 {
169 return radioMode.Mode;
170 }
1 office 171 }
172 }