HamBook – Blame information for rev 1
?pathlinks?
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 | } |