HamBook – Diff between revs 44 and 46

Subversion Repositories:
Rev:
Show entire fileIgnore whitespace
Rev 44 Rev 46
Line 22... Line 22...
22   22  
23 public MR(SerialPortStream serialPort) : base(serialPort) 23 public MR(SerialPortStream serialPort) : base(serialPort)
24 { 24 {
25 /// MTP9U026965000+0000004100001AAAAAAAAAAAA; 25 /// MTP9U026965000+0000004100001AAAAAAAAAAAA;
26 /// ^---- fixed: 0 in operation manual, but responds 1; looks like a radio bug 26 /// ^---- fixed: 0 in operation manual, but responds 1; looks like a radio bug
27 readRegex = new Regex($"^{Name}(?<currentLocation>[0-9PLU]{{3}})(?<frequency>[0-9]{{9}})(?<clarifierDirection>[\\+\\-]{{1}})(?<clarifierOffset>[0-9]{{4}})(?<clar>[01]{{1}})0(?<mode>[123456789ABCD]{{1}})[0-9]{{1}}(?<storage>[01]{{1}})(?<ctcssMode>[012]{{1}})00(?<phase>[012]{{1}}){Generic.Constants.EOT}$", RegexOptions.Compiled); 27 readRegex = new Regex($"^{Name}(?<currentLocation>[0-9PLU]{{3}})(?<frequency>[0-9]{{9}})(?<clarifierDirection>[\\+\\-]{{1}})(?<clarifierOffset>[0-9]{{4}})(?<clar>[01]{{1}})0(?<mode>[123456789ABCD]{{1}})[0-9]{{1}}(?<storage>[01]{{1}})(?<ctcssMode>[012]{{1}})00(?<phase>[012]{{1}}){Constants.EOT}$", RegexOptions.Compiled);
Line 28... Line 28...
28 } 28 }
29   29  
30 public override MemoryChannel Read(string location) 30 public override Generic.MemoryChannel Read(string location)
31 { 31 {
32 SerialPort.Write($"{Name}{location}{Generic.Constants.EOT}"); 32 SerialPort.Write($"{Name}{location}{Constants.EOT}");
33 var buffer = new byte[CatLength.Answer]; 33 var buffer = new byte[CatLength.Answer];
34 if (SerialPort.Read(buffer, 0, CatLength.Answer) != CatLength.Answer) 34 if (SerialPort.Read(buffer, 0, CatLength.Answer) != CatLength.Answer)
35 { 35 {
Line 39... Line 39...
39 var answer = Constants.Encoding.GetString(buffer); 39 var answer = Constants.Encoding.GetString(buffer);
Line 40... Line 40...
40   40  
41 return Parse(answer); 41 return Parse(answer);
Line 42... Line 42...
42 } 42 }
43   43  
44 public override async Task<MemoryChannel> ReadAsync(string location, CancellationToken cancellationToken) 44 public override async Task<Generic.MemoryChannel> ReadAsync(string location, CancellationToken cancellationToken)
45 { 45 {
46 var payload = Constants.Encoding.GetBytes($"{Name}{location}{Generic.Constants.EOT}"); 46 var payload = Constants.Encoding.GetBytes($"{Name}{location}{Constants.EOT}");
47 await SerialPort.WriteAsync(payload, 0, payload.Length); 47 await SerialPort.WriteAsync(payload, 0, payload.Length);
48 var buffer = new byte[CatLength.Answer]; 48 var buffer = new byte[CatLength.Answer];
49 if (await SerialPort.ReadAsync(buffer, 0, CatLength.Answer) != CatLength.Answer) 49 if (await SerialPort.ReadAsync(buffer, 0, CatLength.Answer) != CatLength.Answer)
Line 54... Line 54...
54 var answer = Constants.Encoding.GetString(buffer); 54 var answer = Constants.Encoding.GetString(buffer);
Line 55... Line 55...
55   55  
56 return Parse(answer); 56 return Parse(answer);
Line 57... Line 57...
57 } 57 }
58   58  
59 public override MemoryChannel Parse(string input) 59 private MemoryChannel Parse(string input)
Line 60... Line 60...
60 { 60 {
61 var match = readRegex.Match(input); 61 var match = readRegex.Match(input);
Line 69... Line 69...
69 var frequency = int.Parse(match.Result("${frequency}")); 69 var frequency = int.Parse(match.Result("${frequency}"));
70 var clarifierDirection = char.Parse(match.Result("${clarifierDirection}")); 70 var clarifierDirection = char.Parse(match.Result("${clarifierDirection}"));
71 var clarifierOffset = int.Parse(match.Result("${clarifierOffset}")); 71 var clarifierOffset = int.Parse(match.Result("${clarifierOffset}"));
72 var clar = int.Parse(match.Result("${clar}")) == 0 ? false : true; 72 var clar = int.Parse(match.Result("${clar}")) == 0 ? false : true;
73 var radioMode = char.Parse(match.Result("${mode}")); 73 var radioMode = char.Parse(match.Result("${mode}"));
74 var ctcssMode = int.Parse(match.Result("${ctcssMode}")); 74 var ctcss = int.Parse(match.Result("${ctcssMode}"));
75 var phase = int.Parse(match.Result("${phase}")); 75 var phase = int.Parse(match.Result("${phase}"));
76 var tag = int.Parse(match.Result("${tag}")) == 0 ? false : true; 76 var tag = int.Parse(match.Result("${tag}")) == 0 ? false : true;
77 var text = match.Result("${text}"); 77 var text = match.Result("${text}");
Line 78... Line 78...
78   78  
Line 82... Line 82...
82 Frequency = frequency, 82 Frequency = frequency,
83 ClarifierDirection = clarifierDirection, 83 ClarifierDirection = clarifierDirection,
84 ClarifierOffset = clarifierOffset, 84 ClarifierOffset = clarifierOffset,
85 Clar = clar, 85 Clar = clar,
86 MemoryRadioMode = new MemoryRadioMode(radioMode), 86 MemoryRadioMode = new MemoryRadioMode(radioMode),
87 CtcssMode = ctcssMode, 87 Ctcss = new Ctcss(ctcss),
88 Phase = phase, 88 Phase = new Phase(phase),
89 Tag = tag, 89 Tag = tag,
90 Text = text 90 Text = text
Line 91... Line 91...
91   91