HamBook – Diff between revs 24 and 25
?pathlinks?
Rev 24 | Rev 25 | |||
---|---|---|---|---|
Line 26... | Line 26... | |||
26 | using Configuration; |
26 | using Configuration; |
|
27 | using System.Collections.Generic; |
27 | using System.Collections.Generic; |
|
28 | using NAudio.Utils; |
28 | using NAudio.Utils; |
|
29 | using System.Linq; |
29 | using System.Linq; |
|
30 | using static System.Net.Mime.MediaTypeNames; |
30 | using static System.Net.Mime.MediaTypeNames; |
|
- | 31 | using System.Diagnostics; |
||
- | 32 | using Newtonsoft.Json.Linq; |
||
Line 31... | Line 33... | |||
31 | |
33 | |
|
32 | namespace HamBook |
34 | namespace HamBook |
|
33 | { |
35 | { |
|
34 | public partial class Form1 : Form |
36 | public partial class Form1 : Form |
|
35 | { |
37 | { |
|
- | 38 | private ScheduledContinuation _changedConfigurationContinuation; |
||
- | 39 | private ScheduledContinuation _squelchScheduledContinuation; |
||
- | 40 | private ScheduledContinuation _powerScheduledContinuation; |
||
36 | private ScheduledContinuation _changedConfigurationContinuation; |
41 | |
|
37 | private Configuration.Configuration Configuration { get; set; } |
42 | private Configuration.Configuration Configuration { get; set; } |
|
38 | private SerialPortStream _serialPort; |
43 | private SerialPortStream _serialPort; |
|
39 | private LogMemorySink _memorySink; |
44 | private LogMemorySink _memorySink; |
|
40 | private ViewLogsForm _viewLogsForm; |
45 | private ViewLogsForm _viewLogsForm; |
|
Line 63... | Line 68... | |||
63 | _cancellationTokenSource = new CancellationTokenSource(); |
68 | _cancellationTokenSource = new CancellationTokenSource(); |
|
64 | _cancellationToken = _cancellationTokenSource.Token; |
69 | _cancellationToken = _cancellationTokenSource.Token; |
|
Line 65... | Line 70... | |||
65 | |
70 | |
|
Line -... | Line 71... | |||
- | 71 | _changedConfigurationContinuation = new ScheduledContinuation(); |
||
- | 72 | |
||
- | 73 | _squelchScheduledContinuation = new ScheduledContinuation(); |
||
66 | _changedConfigurationContinuation = new ScheduledContinuation(); |
74 | _powerScheduledContinuation = new ScheduledContinuation(); |
|
Line 67... | Line 75... | |||
67 | |
75 | |
|
68 | } |
76 | } |
|
69 | |
77 | |
|
Line 641... | Line 649... | |||
641 | |
649 | |
|
642 | }); |
650 | }); |
|
643 | } |
651 | } |
|
644 | catch (Exception exception) |
652 | catch (Exception exception) |
|
645 | { |
653 | { |
|
646 | Log.Error(exception, Resources.Failed_to_read_memory_channel); |
654 | Log.Error(exception, Resources.Failed_to_read_power_state); |
|
647 | } |
655 | } |
|
648 | }, _cancellationToken); |
656 | }, _cancellationToken); |
|
Line 649... | Line 657... | |||
649 | } |
657 | } |
|
Line 810... | Line 818... | |||
810 | { |
818 | { |
|
811 | Log.Error(exception, Resources.Error_while_cycling_text); |
819 | Log.Error(exception, Resources.Error_while_cycling_text); |
|
812 | } |
820 | } |
|
813 | } |
821 | } |
|
Line 814... | Line 822... | |||
814 | |
822 | |
|
815 | private async void scrollableToolStripComboBox5_MouseWheel(object sender, MouseEventArgs e) |
823 | private void scrollableToolStripComboBox5_MouseWheel(object sender, MouseEventArgs e) |
|
- | 824 | { |
||
816 | { |
825 | var toolStripComboBox = (ScrollableToolStripComboBox)sender; |
|
817 | using (var soundPlayer = new SoundPlayer(Assembly.GetExecutingAssembly().GetManifestResourceStream("HamBook.Effects.pot.wav"))) |
826 | if (int.TryParse(toolStripComboBox.Text, out var memoryChannel)) |
|
818 | { |
- | ||
819 | var toolStripComboBox = (ScrollableToolStripComboBox)sender; |
827 | { |
|
820 | if (int.TryParse(toolStripComboBox.Text, out var memoryChannel)) |
828 | switch (Math.Sign(e.Delta)) |
|
821 | { |
- | ||
822 | switch (Math.Sign(e.Delta)) |
- | ||
823 | { |
829 | { |
|
824 | case -1: |
830 | case -1: |
|
825 | memoryChannel = memoryChannel - 1; |
831 | memoryChannel = memoryChannel - 1; |
|
826 | break; |
832 | break; |
|
827 | case 1: |
833 | case 1: |
|
828 | memoryChannel = memoryChannel + 1; |
834 | memoryChannel = memoryChannel + 1; |
|
829 | break; |
- | ||
830 | } |
- | ||
831 | |
- | ||
832 | |
- | ||
833 | if (memoryChannel < 0) |
- | ||
834 | { |
- | ||
835 | memoryChannel = 0; |
835 | break; |
|
Line 836... | Line -... | |||
836 | } |
- | ||
Line 837... | Line 836... | |||
837 | |
836 | } |
|
838 | soundPlayer.Play(); |
837 | |
|
839 | |
838 | |
|
- | 839 | if (memoryChannel < 0) |
||
Line 840... | Line 840... | |||
840 | try |
840 | { |
|
Line 841... | Line 841... | |||
841 | { |
841 | memoryChannel = 0; |
|
842 | await _catAssemblies.CatWriteAsync<int>("MC", new object[] { memoryChannel }, _cancellationToken); |
- | ||
843 | |
- | ||
844 | toolStripComboBox.Text = $"{memoryChannel}"; |
- | ||
845 | |
- | ||
846 | Log.Information($"{Resources.Set_VFO_A_frequency} {memoryChannel}"); |
- | ||
847 | } |
- | ||
848 | catch (Exception exception) |
842 | } |
|
849 | { |
843 | |
|
Line 850... | Line 844... | |||
850 | Log.Error(exception, Resources.Failed_to_set_memory_channel); |
844 | toolStripComboBox.Text = $"{memoryChannel}"; |
|
851 | } |
845 | |
|
Line 903... | Line 897... | |||
903 | { |
897 | { |
|
904 | Log.Error(exception, Resources.Failed_tuning_current_frequency); |
898 | Log.Error(exception, Resources.Failed_tuning_current_frequency); |
|
905 | } |
899 | } |
|
906 | } |
900 | } |
|
Line 907... | Line 901... | |||
907 | |
901 | |
|
908 | private async void scrollableToolStripComboBox7_MouseWheel(object sender, MouseEventArgs e) |
902 | private void scrollableToolStripComboBox7_MouseWheel(object sender, MouseEventArgs e) |
|
909 | { |
903 | { |
|
910 | var toolStripComboBox = (ScrollableToolStripComboBox)sender; |
- | ||
911 | if (int.TryParse(toolStripComboBox.Text, out var amplification)) |
- | ||
912 | { |
- | ||
913 | switch (Math.Sign(e.Delta)) |
- | ||
914 | { |
- | ||
915 | case -1: |
- | ||
916 | amplification = amplification - 1; |
- | ||
917 | break; |
- | ||
918 | case 1: |
- | ||
919 | amplification = amplification + 1; |
- | ||
920 | break; |
- | ||
Line -... | Line 904... | |||
- | 904 | var toolStripComboBox = (ScrollableToolStripComboBox)sender; |
||
- | 905 | |
||
921 | } |
906 | contextMenuStrip1.InvokeIfRequired(async contextMenuStrip1 => |
|
922 | |
907 | { |
|
- | 908 | if (int.TryParse(toolStripComboBox.Text, out var amplification)) |
||
- | 909 | { |
||
923 | if (amplification < 0) |
910 | switch (Math.Sign(e.Delta)) |
|
- | 911 | { |
||
- | 912 | case -1: |
||
- | 913 | amplification = amplification - 1; |
||
- | 914 | break; |
||
- | 915 | case 1: |
||
924 | { |
916 | amplification = amplification + 1; |
|
Line 925... | Line 917... | |||
925 | amplification = 0; |
917 | break; |
|
926 | } |
918 | } |
|
927 | |
919 | |
|
- | 920 | if (amplification < 0) |
||
Line 928... | Line 921... | |||
928 | try |
921 | { |
|
Line 929... | Line 922... | |||
929 | { |
922 | amplification = 0; |
|
930 | await _catAssemblies.CatWriteAsync<int>("PC", new object[] { amplification }, _cancellationToken); |
923 | } |
|
931 | |
- | ||
932 | toolStripComboBox.Text = $"{amplification}"; |
- | ||
933 | |
- | ||
934 | Log.Information($"{Resources.Amplification_set} {amplification}W"); |
- | ||
935 | } |
924 | |
|
936 | catch (Exception exception) |
- | ||
937 | { |
- | ||
938 | Log.Error(exception, Resources.Failed_to_set_amplification); |
- | ||
939 | } |
- | ||
940 | } |
- | ||
941 | } |
- | ||
942 | |
- | ||
943 | private async void scrollableToolStripComboBox7_TextChanged(object sender, EventArgs e) |
- | ||
944 | { |
- | ||
945 | var toolStripComboBox = (ScrollableToolStripComboBox)sender; |
- | ||
946 | if (int.TryParse(toolStripComboBox.Text, out var amplification)) |
- | ||
947 | { |
- | ||
948 | |
- | ||
Line 949... | Line -... | |||
949 | try |
- | ||
950 | { |
- | ||
951 | await _catAssemblies.CatWriteAsync<int>("PC", new object[] { amplification }, _cancellationToken); |
- | ||
952 | |
- | ||
953 | toolStripComboBox.Text = $"{amplification}"; |
- | ||
954 | |
- | ||
955 | Log.Information($"{Resources.Amplification_set} {amplification}W"); |
- | ||
956 | } |
925 | toolStripComboBox.Text = $"{amplification}"; |
|
Line 957... | Line 926... | |||
957 | catch (Exception exception) |
926 | |
|
958 | { |
927 | Log.Information($"{Resources.Amplification_set} {amplification}W"); |
|
959 | Log.Error(exception, Resources.Failed_to_set_amplification); |
928 | } |
|
960 | } |
- | ||
961 | } |
- | ||
962 | } |
- | ||
963 | |
- | ||
964 | private async void scrollableToolStripComboBox8_MouseWheel(object sender, MouseEventArgs e) |
- | ||
965 | { |
- | ||
966 | var toolStripComboBox = (ScrollableToolStripComboBox)sender; |
- | ||
967 | if (int.TryParse(toolStripComboBox.Text, out var squelch)) |
- | ||
968 | { |
- | ||
969 | var value = _catAssemblies.CatGetDefault<int>("SQ", new object[] { }); |
- | ||
970 | |
- | ||
971 | switch (Math.Sign(e.Delta)) |
- | ||
972 | { |
- | ||
973 | case -1: |
- | ||
974 | squelch = squelch - value; |
- | ||
975 | break; |
- | ||
976 | case 1: |
- | ||
977 | squelch = squelch + value; |
- | ||
978 | break; |
- | ||
979 | } |
- | ||
980 | |
- | ||
981 | if(squelch < 0) |
- | ||
982 | { |
- | ||
983 | squelch = 0; |
- | ||
984 | } |
- | ||
985 | |
- | ||
986 | try |
- | ||
987 | { |
- | ||
988 | await _catAssemblies.CatWriteAsync<int>("SQ", new object[] { squelch }, _cancellationToken); |
- | ||
989 | |
- | ||
990 | toolStripComboBox.Text = $"{squelch}"; |
- | ||
991 | |
- | ||
992 | Log.Information($"{Resources.Squelch_set} {squelch}"); |
- | ||
Line 993... | Line -... | |||
993 | } |
- | ||
994 | catch (Exception exception) |
- | ||
995 | { |
929 | }); |
|
996 | Log.Error(exception, Resources.Failed_to_set_squelch); |
- | ||
997 | } |
930 | |
|
998 | } |
- | ||
999 | } |
931 | } |
|
1000 | |
932 | |
|
1001 | private async void scrollableToolStripComboBox8_TextChanged(object sender, EventArgs e) |
933 | private void scrollableToolStripComboBox7_TextChanged(object sender, EventArgs e) |
|
- | 934 | { |
||
Line -... | Line 935... | |||
- | 935 | var toolStripComboBox = (ScrollableToolStripComboBox)sender; |
||
1002 | { |
936 | |
|
- | 937 | _powerScheduledContinuation.Schedule(TimeSpan.FromSeconds(1), () => |
||
Line -... | Line 938... | |||
- | 938 | { |
||
- | 939 | contextMenuStrip1.InvokeIfRequired(async contextMenuStrip1 => |
||
1003 | var toolStripComboBox = (ScrollableToolStripComboBox)sender; |
940 | { |
|
1004 | if (int.TryParse(toolStripComboBox.Text, out var squelch)) |
941 | if (int.TryParse(toolStripComboBox.Text, out var amplification)) |
|
1005 | { |
942 | { |
|
1006 | |
943 | |
|
1007 | try |
944 | try |
|
- | 945 | { |
||
1008 | { |
946 | await _catAssemblies.CatWriteAsync<int>("PC", new object[] { amplification }, _cancellationToken); |
|
1009 | await _catAssemblies.CatWriteAsync<int>("SQ", new object[] { squelch }, _cancellationToken); |
947 | |
|
- | 948 | toolStripComboBox.Text = $"{amplification}"; |
||
1010 | |
949 | |
|
Line 1011... | Line 950... | |||
1011 | toolStripComboBox.Text = $"{squelch}"; |
950 | Log.Information($"{Resources.Amplification_set} {amplification}W"); |
|
1012 | |
951 | } |
|
1013 | Log.Information($"{Resources.Squelch_set} {squelch}"); |
952 | catch (Exception exception) |
|
Line 1068... | Line 1007... | |||
1068 | catch(Exception exception) |
1007 | catch(Exception exception) |
|
1069 | { |
1008 | { |
|
Line 1070... | Line 1009... | |||
1070 | |
1009 | |
|
1071 | } |
1010 | } |
|
- | 1011 | } |
||
- | 1012 | |
||
- | 1013 | private void toolStripMenuItem21_DropDownOpened(object sender, EventArgs e) |
||
- | 1014 | { |
||
- | 1015 | Task.Delay(TimeSpan.FromSeconds(1), _cancellationToken).ContinueWith(async task => |
||
- | 1016 | { |
||
- | 1017 | try |
||
- | 1018 | { |
||
- | 1019 | var ac = await _catAssemblies.CatReadAsync<TunerState>("AC", new object[] { }, _cancellationToken); |
||
- | 1020 | |
||
- | 1021 | contextMenuStrip1.InvokeIfRequired(contextMenuStrip => |
||
- | 1022 | { |
||
- | 1023 | switch (ac) |
||
- | 1024 | { |
||
- | 1025 | case TunerState.TUNING_START: |
||
- | 1026 | case TunerState.TUNER_ON: |
||
- | 1027 | toolStripMenuItem23.Checked = true; |
||
- | 1028 | break; |
||
- | 1029 | case TunerState.TUNER_OFF: |
||
- | 1030 | toolStripMenuItem23.Checked = false; |
||
- | 1031 | break; |
||
- | 1032 | } |
||
- | 1033 | |
||
- | 1034 | |
||
- | 1035 | }); |
||
- | 1036 | } |
||
- | 1037 | catch (Exception exception) |
||
- | 1038 | { |
||
- | 1039 | Log.Error(exception, Resources.Failed_to_read_the_tuner_state); |
||
- | 1040 | } |
||
- | 1041 | |
||
- | 1042 | try |
||
- | 1043 | { |
||
- | 1044 | var pa = await _catAssemblies.CatReadAsync<IpoState>("PA", new object[] { }, _cancellationToken); |
||
- | 1045 | |
||
- | 1046 | contextMenuStrip1.InvokeIfRequired(contextMenuStrip => |
||
- | 1047 | { |
||
- | 1048 | switch (pa) |
||
- | 1049 | { |
||
- | 1050 | case IpoState.AMP: |
||
- | 1051 | toolStripMenuItem22.Checked = false; |
||
- | 1052 | break; |
||
- | 1053 | case IpoState.IPO: |
||
- | 1054 | toolStripMenuItem22.Checked = true; |
||
- | 1055 | break; |
||
- | 1056 | } |
||
- | 1057 | |
||
- | 1058 | |
||
- | 1059 | }); |
||
- | 1060 | } |
||
- | 1061 | catch (Exception exception) |
||
- | 1062 | { |
||
- | 1063 | Log.Error(exception, Resources.Failed_to_read_IPO); |
||
- | 1064 | } |
||
- | 1065 | }, _cancellationToken); |
||
- | 1066 | } |
||
- | 1067 | |
||
- | 1068 | private async void toolStripMenuItem19_DropDownOpened(object sender, EventArgs e) |
||
- | 1069 | { |
||
- | 1070 | try |
||
- | 1071 | { |
||
- | 1072 | var sq = await _catAssemblies.CatReadAsync<int>("SQ", new object[] { }, _cancellationToken); |
||
- | 1073 | |
||
- | 1074 | contextMenuStrip1.InvokeIfRequired(contextMenuStrip => |
||
- | 1075 | { |
||
- | 1076 | scrollableToolStripComboBox8.Text = $"{sq}"; |
||
- | 1077 | |
||
- | 1078 | }); |
||
- | 1079 | } |
||
- | 1080 | catch (Exception exception) |
||
- | 1081 | { |
||
- | 1082 | Log.Error(exception, Resources.Failed_to_read_squelch); |
||
- | 1083 | } |
||
- | 1084 | } |
||
- | 1085 | |
||
- | 1086 | private void scrollableToolStripComboBox8_MouseWheel(object sender, MouseEventArgs e) |
||
- | 1087 | { |
||
- | 1088 | var toolStripComboBox = (ScrollableToolStripComboBox)sender; |
||
- | 1089 | |
||
- | 1090 | var value = _catAssemblies.CatGetDefault<int>("SQ", new object[] { }); |
||
- | 1091 | |
||
- | 1092 | contextMenuStrip1.InvokeIfRequired(contextMenuStrip1 => |
||
- | 1093 | { |
||
- | 1094 | if (int.TryParse(toolStripComboBox.Text, out var squelch)) |
||
- | 1095 | { |
||
- | 1096 | switch (Math.Sign(e.Delta)) |
||
- | 1097 | { |
||
- | 1098 | case -1: |
||
- | 1099 | squelch = squelch - value; |
||
- | 1100 | break; |
||
- | 1101 | case 1: |
||
- | 1102 | squelch = squelch + value; |
||
- | 1103 | break; |
||
- | 1104 | } |
||
- | 1105 | |
||
- | 1106 | if (squelch < 0) |
||
- | 1107 | { |
||
- | 1108 | squelch = 0; |
||
- | 1109 | } |
||
- | 1110 | |
||
- | 1111 | toolStripComboBox.Text = $"{squelch}"; |
||
- | 1112 | |
||
- | 1113 | Log.Information($"{Resources.Squelch_set} {squelch}"); |
||
- | 1114 | } |
||
- | 1115 | }); |
||
- | 1116 | } |
||
- | 1117 | |
||
- | 1118 | private void scrollableToolStripComboBox8_TextChanged(object sender, EventArgs e) |
||
- | 1119 | { |
||
- | 1120 | var toolStripComboBox = (ScrollableToolStripComboBox)sender; |
||
- | 1121 | |
||
- | 1122 | _squelchScheduledContinuation.Schedule(TimeSpan.FromSeconds(1), () => |
||
- | 1123 | { |
||
- | 1124 | contextMenuStrip1.InvokeIfRequired(async contextMenuStrip1 => |
||
- | 1125 | { |
||
- | 1126 | if (int.TryParse(toolStripComboBox.Text, out var squelch)) |
||
- | 1127 | { |
||
- | 1128 | |
||
- | 1129 | try |
||
- | 1130 | { |
||
- | 1131 | await _catAssemblies.CatWriteAsync<int>("SQ", new object[] { squelch }, _cancellationToken); |
||
- | 1132 | |
||
- | 1133 | toolStripComboBox.Text = $"{squelch}"; |
||
- | 1134 | |
||
- | 1135 | Log.Information($"{Resources.Squelch_set} {squelch}W"); |
||
- | 1136 | } |
||
- | 1137 | catch (Exception exception) |
||
- | 1138 | { |
||
- | 1139 | Log.Error(exception, Resources.Failed_to_set_squelch); |
||
- | 1140 | } |
||
- | 1141 | } |
||
- | 1142 | }); |
||
- | 1143 | }, _cancellationToken); |
||
1072 | } |
1144 | } |
|
1073 | } |
1145 | } |