HamBook – Diff between revs 44 and 46

Subversion Repositories:
Rev:
Show entire fileIgnore whitespace
Rev 44 Rev 46
Line 23... Line 23...
23   23  
24 public MT(SerialPortStream serialPort) : base(serialPort) 24 public MT(SerialPortStream serialPort) : base(serialPort)
25 { 25 {
26 /// MTP9U026965000+0000004100001AAAAAAAAAAAA; 26 /// MTP9U026965000+0000004100001AAAAAAAAAAAA;
27 /// ^---- fixed: 0 in manual, but responds 1; looks like a radio bug 27 /// ^---- fixed: 0 in manual, but responds 1; looks like a radio bug
28 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}}(?<ctcssMode>[012]{{1}})00(?<phase>[012]{{1}})(?<tag>[01]{{1}})(?<text>[\x20-\x7E]{{0,12}}){Generic.Constants.EOT}$", RegexOptions.Compiled); 28 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}}(?<ctcss>[012]{{1}})00(?<phase>[012]{{1}})(?<tag>[01]{{1}})(?<text>[\x20-\x7E]{{0,12}}){Constants.EOT}$", RegexOptions.Compiled);
Line 29... Line 29...
29 } 29 }
30   30  
31 public override MemoryChannel Read(string location) 31 public override Generic.MemoryChannel Read(string location)
32 { 32 {
33 SerialPort.Write($"{Name}{location}{Generic.Constants.EOT}"); 33 SerialPort.Write($"{Name}{location}{Constants.EOT}");
34 var buffer = new byte[CatLength.Answer]; 34 var buffer = new byte[CatLength.Answer];
35 if (SerialPort.Read(buffer, 0, CatLength.Answer) != CatLength.Answer) 35 if (SerialPort.Read(buffer, 0, CatLength.Answer) != CatLength.Answer)
36 { 36 {
Line 40... Line 40...
40 var answer = Constants.Encoding.GetString(buffer); 40 var answer = Constants.Encoding.GetString(buffer);
Line 41... Line 41...
41   41  
42 return Parse(answer); 42 return Parse(answer);
Line 43... Line 43...
43 } 43 }
44   44  
45 public override async Task<MemoryChannel> ReadAsync(string location, CancellationToken cancellationToken) 45 public override async Task<Generic.MemoryChannel> ReadAsync(string location, CancellationToken cancellationToken)
46 { 46 {
47 var payload = Constants.Encoding.GetBytes($"{Name}{location}{Generic.Constants.EOT}"); 47 var payload = Constants.Encoding.GetBytes($"{Name}{location}{Constants.EOT}");
48 await SerialPort.WriteAsync(payload, 0, payload.Length); 48 await SerialPort.WriteAsync(payload, 0, payload.Length);
49 var buffer = new byte[CatLength.Answer]; 49 var buffer = new byte[CatLength.Answer];
50 if (await SerialPort.ReadAsync(buffer, 0, CatLength.Answer) != CatLength.Answer) 50 if (await SerialPort.ReadAsync(buffer, 0, CatLength.Answer) != CatLength.Answer)
Line 55... Line 55...
55 var answer = Constants.Encoding.GetString(buffer); 55 var answer = Constants.Encoding.GetString(buffer);
Line 56... Line 56...
56   56  
57 return Parse(answer); 57 return Parse(answer);
Line 58... Line 58...
58 } 58 }
59   59  
60 public override bool Set(MemoryChannel channel) 60 public override bool Set(Generic.MemoryChannel channel)
Line 61... Line 61...
61 { 61 {
Line 62... Line 62...
62 var payload = Constants.Encoding.GetBytes(Compose(channel)); 62 var payload = Constants.Encoding.GetBytes(Compose(new MemoryChannel(channel)));
63   63  
Line 64... Line 64...
64 SerialPort.Write(payload, 0, payload.Length); 64 SerialPort.Write(payload, 0, payload.Length);
65   65  
66 return Read(channel.CurrentLocation).Equals(channel); 66 return Read(channel.CurrentLocation).Equals(channel);
Line 67... Line 67...
67 } 67 }
Line 68... Line 68...
68   68  
Line 69... Line 69...
69 public override async Task<bool> SetAsync(MemoryChannel channel, CancellationToken cancellationToken) 69 public override async Task<bool> SetAsync(Generic.MemoryChannel channel, CancellationToken cancellationToken)
Line 70... Line 70...
70 { 70 {
71 var compose = Compose(channel); 71 var compose = Compose(new MemoryChannel(channel));
Line 72... Line 72...
72   72  
73 var payload = Constants.Encoding.GetBytes(compose); 73 var payload = Constants.Encoding.GetBytes(compose);
74   74  
75 await SerialPort.WriteAsync(payload, 0, payload.Length, cancellationToken); 75 await SerialPort.WriteAsync(payload, 0, payload.Length, cancellationToken);
Line 76... Line 76...
76   76  
77 var result = await ReadAsync(channel.CurrentLocation, cancellationToken); 77 var result = await ReadAsync(channel.CurrentLocation, cancellationToken);
78   78  
Line 79... Line 79...
79 return result.Equals(channel); 79 return result.Equals(channel);
80 } 80 }
Line 97... Line 97...
97 var frequency = int.Parse(match.Result("${frequency}")); 97 var frequency = int.Parse(match.Result("${frequency}"));
98 var clarifierDirection = char.Parse(match.Result("${clarifierDirection}")); 98 var clarifierDirection = char.Parse(match.Result("${clarifierDirection}"));
99 var clarifierOffset = int.Parse(match.Result("${clarifierOffset}")); 99 var clarifierOffset = int.Parse(match.Result("${clarifierOffset}"));
100 var clar = int.Parse(match.Result("${clar}")) == 0 ? false : true; 100 var clar = int.Parse(match.Result("${clar}")) == 0 ? false : true;
101 var radioMode = char.Parse(match.Result("${mode}")); 101 var radioMode = char.Parse(match.Result("${mode}"));
102 var ctcssMode = int.Parse(match.Result("${ctcssMode}")); 102 var ctcss = int.Parse(match.Result("${ctcss}"));
103 var phase = int.Parse(match.Result("${phase}")); 103 var phase = int.Parse(match.Result("${phase}"));
104 var tag = int.Parse(match.Result("${tag}")) == 0 ? false : true; 104 var tag = int.Parse(match.Result("${tag}")) == 0 ? false : true;
105 var text = match.Result("${text}"); 105 var text = match.Result("${text}");
Line 106... Line 106...
106   106  
Line 110... Line 110...
110 Frequency = frequency, 110 Frequency = frequency,
111 ClarifierDirection = clarifierDirection, 111 ClarifierDirection = clarifierDirection,
112 ClarifierOffset = clarifierOffset, 112 ClarifierOffset = clarifierOffset,
113 Clar = clar, 113 Clar = clar,
114 MemoryRadioMode = new MemoryRadioMode(radioMode), 114 MemoryRadioMode = new MemoryRadioMode(radioMode),
115 CtcssMode = ctcssMode, 115 Ctcss = new Ctcss(ctcss),
116 Phase = phase, 116 Phase = new Phase(phase),
117 Tag = tag, 117 Tag = tag,
118 Text = text 118 Text = text
Line 119... Line 119...
119   119  
Line 120... Line 120...
120 }; 120 };
121   121  
Line 122... Line 122...
122 return memoryChannel; 122 return memoryChannel;
123 } 123 }
124   124  
Line 125... Line 125...
125 public override void Write(MemoryChannel channel) 125 public override void Write(Generic.MemoryChannel channel)
126 { 126 {
Line 127... Line 127...
127 var payload = Constants.Encoding.GetBytes(Compose(channel)); 127 var payload = Constants.Encoding.GetBytes(Compose(new MemoryChannel(channel)));
128   128  
129 SerialPort.Write(payload, 0, payload.Length); 129 SerialPort.Write(payload, 0, payload.Length);
Line 130... Line 130...
130 } 130 }
Line 131... Line 131...
131   131  
132 public override async Task WriteAsync(MemoryChannel channel, CancellationToken cancellationToken) 132 public override async Task WriteAsync(Generic.MemoryChannel channel, CancellationToken cancellationToken)