HamBook – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 using HamBook.Radios.Generic;
2 using System;
3 using System.Collections.Generic;
4 using System.IO.Ports;
5 using System.Linq;
6 using System.Text;
7 using System.Text.RegularExpressions;
8 using System.Threading.Tasks;
9 using static HamBook.Radios.Yaesu.FT_891.Constants;
10  
11 namespace HamBook.Radios.Yaesu.FT_891
12 {
13 [Radio("Yaesu FT-891")]
14 public class SC : Generic.SC
15 {
16 private static readonly Regex readRegex = new Regex(@"^SC(?<state>[0,1,2])$", RegexOptions.Compiled);
17  
18 public SC(SerialPort serialPort) : base(serialPort)
19 {
20 }
21  
22 public override ScanState Read()
23 {
24 SerialPort.Write($"{Name}{EOT}");
25 var result = SerialPort.ReadTo(EOT);
26 var match = readRegex.Match(result);
27 var state = char.Parse(match.Result("${state}"));
28 switch(state)
29 {
30 case '0':
31 return ScanState.OFF;
32 case '1':
33 return ScanState.UP;
34 case '2':
35 return ScanState.DOWN;
36 }
37  
38 return ScanState.NONE;
39 }
40  
41 public override void Set(ScanState state)
42 {
43 switch(state)
44 {
45 case ScanState.OFF:
46 SerialPort.Write($"{Name}0{EOT}");
47 break;
48 case ScanState.UP:
49 SerialPort.Write($"{Name}1{EOT}");
50 break;
51 case ScanState.DOWN:
52 SerialPort.Write($"{Name}2{EOT}");
53 break;
54 }
55 }
56  
57  
58 }
59 }