HamBook – Diff between revs 49 and 51
?pathlinks?
Rev 49 | Rev 51 | |||
---|---|---|---|---|
Line 1... | Line 1... | |||
1 | using Configuration; |
1 | using Configuration; |
|
2 | using HamBook.Properties; |
2 | using HamBook.Properties; |
|
3 | using HamBook.Radios; |
3 | using HamBook.Radios; |
|
4 | using HamBook.Radios.Generic; |
4 | using HamBook.Radios.Generic; |
|
- | 5 | using HamBook.Utilities; |
||
- | 6 | using HamBook.Utilities.Controls; |
||
5 | using HamBook.Utilities.Serialization; |
7 | using HamBook.Utilities.Serialization; |
|
6 | using Serilog; |
8 | using Serilog; |
|
7 | using System; |
9 | using System; |
|
8 | using System.Collections.Concurrent; |
10 | using System.Collections.Concurrent; |
|
9 | using System.Collections.Generic; |
11 | using System.Collections.Generic; |
|
10 | using System.ComponentModel; |
12 | using System.ComponentModel; |
|
11 | using System.Data; |
13 | using System.Data; |
|
12 | using System.Linq; |
14 | using System.Linq; |
|
- | 15 | using System.Media; |
||
- | 16 | using System.Reflection; |
||
- | 17 | using System.Runtime.Remoting.Channels; |
||
13 | using System.Threading; |
18 | using System.Threading; |
|
14 | using System.Threading.Tasks; |
19 | using System.Threading.Tasks; |
|
15 | using System.Windows.Forms; |
20 | using System.Windows.Forms; |
|
16 | using MemoryChannel = HamBook.Radios.Generic.MemoryChannel; |
21 | using MemoryChannel = HamBook.Radios.Generic.MemoryChannel; |
|
Line 196... | Line 201... | |||
196 | ); |
201 | ); |
|
197 | dataGridView1.Columns.Add(clarifierDropDownColumn); |
202 | dataGridView1.Columns.Add(clarifierDropDownColumn); |
|
198 | dataGridView1.Columns.Add(new DataGridViewTextBoxColumn() { Name = "ClarifierOffsetColumn", HeaderText = "Offset" }); |
203 | dataGridView1.Columns.Add(new DataGridViewTextBoxColumn() { Name = "ClarifierOffsetColumn", HeaderText = "Offset" }); |
|
199 | dataGridView1.Columns.Add(new DataGridViewCheckBoxColumn() { Name = "ClarColumn", HeaderText = "Clar" }); |
204 | dataGridView1.Columns.Add(new DataGridViewCheckBoxColumn() { Name = "ClarColumn", HeaderText = "Clar" }); |
|
200 | var modeComboBoxColumn = new DataGridViewComboBoxColumn() { Name = "ModeColumn", HeaderText = "Mode" }; |
205 | var modeComboBoxColumn = new DataGridViewComboBoxColumn() { Name = "ModeColumn", HeaderText = "Mode" }; |
|
201 | modeComboBoxColumn.Items.AddRange( |
206 | foreach (var name in Radios.Yaesu.FT_891.MemoryRadioMode.Names) |
|
202 | "SSB_1", |
- | ||
203 | "SSB_2", |
- | ||
204 | "CW_1", |
- | ||
205 | "FM", |
- | ||
206 | "AM", |
207 | { |
|
207 | "RTTY_1", |
- | ||
208 | "CW_2", |
208 | modeComboBoxColumn.Items.Add( |
|
209 | "DATA_1", |
- | ||
210 | "RTTY_2", |
- | ||
211 | "FM-N", |
209 | name |
|
212 | "DATA_2", |
- | ||
213 | "AM-N" |
210 | ); |
|
214 | ); |
211 | } |
|
- | 212 | |
||
215 | dataGridView1.Columns.Add(modeComboBoxColumn); |
213 | dataGridView1.Columns.Add(modeComboBoxColumn); |
|
216 | var ctcssComboBoxColumn = new DataGridViewComboBoxColumn() { Name = "CtcssColumn", HeaderText = "CTCSS" }; |
214 | var ctcssComboBoxColumn = new DataGridViewComboBoxColumn() { Name = "CtcssColumn", HeaderText = "CTCSS" }; |
|
217 | ctcssComboBoxColumn.Items.AddRange( |
215 | ctcssComboBoxColumn.Items.AddRange( |
|
218 | "Off", |
216 | "Off", |
|
219 | "Enc/Dec", |
217 | "Enc/Dec", |
|
Line 379... | Line 377... | |||
379 | private void DataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e) |
377 | private void DataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e) |
|
380 | { |
378 | { |
|
381 | // @(-.-)@ -(o.o)- @(o_o)@ |
379 | // @(-.-)@ -(o.o)- @(o_o)@ |
|
382 | } |
380 | } |
|
Line 383... | Line 381... | |||
383 | |
381 | |
|
384 | private static List<DataGridViewRow> GetSelectedDataGridViewRows(DataGridView dataGridView) |
382 | private static IEnumerable<DataGridViewRow> GetSelectedDataGridViewRows(DataGridView dataGridView) |
|
385 | { |
383 | { |
|
386 | return dataGridView.SelectedRows.OfType<DataGridViewRow>().OrderBy(row => row.Index).ToList(); |
384 | return dataGridView.SelectedRows.OfType<DataGridViewRow>().OrderBy(row => row.Index); |
|
Line 387... | Line 385... | |||
387 | } |
385 | } |
|
388 | |
386 | |
|
389 | private async Task ReadMemoryBanks(IReadOnlyList<DataGridViewRow> rows, IProgress<DataGridViewRowProgress> progress, |
387 | private async Task ReadMemoryBanks(IReadOnlyList<DataGridViewRow> rows, IProgress<DataGridViewRowProgress> progress, |
|
Line 601... | Line 599... | |||
601 | |
599 | |
|
602 | private async void readToolStripMenuItem_Click(object sender, EventArgs e) |
600 | private async void readToolStripMenuItem_Click(object sender, EventArgs e) |
|
603 | { |
601 | { |
|
Line -... | Line 602... | |||
- | 602 | var rows = GetSelectedDataGridViewRows(dataGridView1); |
||
- | 603 | |
||
- | 604 | if(!rows.Any()) |
||
- | 605 | { |
||
- | 606 | return; |
||
- | 607 | } |
||
- | 608 | |
||
604 | var rows = GetSelectedDataGridViewRows(dataGridView1); |
609 | var list = rows.ToList(); |
|
Line 605... | Line 610... | |||
605 | |
610 | |
|
606 | var count = rows.Count; |
611 | var count = list.Count; |
|
Line 607... | Line 612... | |||
607 | |
612 | |
|
Line 647... | Line 652... | |||
647 | { |
652 | { |
|
648 | Log.Error(exception, Resources.Unexpected_error_while_reading_memory_bank); |
653 | Log.Error(exception, Resources.Unexpected_error_while_reading_memory_bank); |
|
649 | } |
654 | } |
|
650 | }); |
655 | }); |
|
Line 651... | Line 656... | |||
651 | |
656 | |
|
Line 652... | Line 657... | |||
652 | await Task.Run(() => ReadMemoryBanks(rows, progress, _cancellationToken), _cancellationToken); |
657 | await Task.Run(() => ReadMemoryBanks(list, progress, _cancellationToken), _cancellationToken); |
|
653 | |
658 | |
|
654 | if (!_cancellationToken.IsCancellationRequested) |
659 | if (!_cancellationToken.IsCancellationRequested) |
|
655 | { |
660 | { |
|
Line 659... | Line 664... | |||
659 | } |
664 | } |
|
Line 660... | Line 665... | |||
660 | |
665 | |
|
661 | private async void writeToolStripMenuItem_Click(object sender, EventArgs e) |
666 | private async void writeToolStripMenuItem_Click(object sender, EventArgs e) |
|
662 | { |
667 | { |
|
- | 668 | var rows = GetSelectedDataGridViewRows(dataGridView1); |
||
- | 669 | |
||
- | 670 | if (!rows.Any()) |
||
- | 671 | { |
||
- | 672 | return; |
||
- | 673 | } |
||
- | 674 | |
||
- | 675 | var list = rows.ToList(); |
||
663 | var rows = GetSelectedDataGridViewRows(dataGridView1); |
676 | |
|
Line 664... | Line 677... | |||
664 | var count = rows.Count; |
677 | var count = list.Count; |
|
665 | |
678 | |
|
Line 666... | Line 679... | |||
666 | toolStripProgressBar1.Minimum = 0; |
679 | toolStripProgressBar1.Minimum = 0; |
|
Line 702... | Line 715... | |||
702 | Log.Error(exception, Resources.Unexpected_error_while_writing_memory_bank); |
715 | Log.Error(exception, Resources.Unexpected_error_while_writing_memory_bank); |
|
703 | } |
716 | } |
|
Line 704... | Line 717... | |||
704 | |
717 | |
|
Line 705... | Line 718... | |||
705 | }); |
718 | }); |
|
Line 706... | Line 719... | |||
706 | |
719 | |
|
707 | await Task.Run(() => WriteMemoryBanks(rows, progress, _cancellationToken), _cancellationToken); |
720 | await Task.Run(() => WriteMemoryBanks(list, progress, _cancellationToken), _cancellationToken); |
|
708 | |
721 | |
|
709 | if (!_cancellationToken.IsCancellationRequested) |
722 | if (!_cancellationToken.IsCancellationRequested) |
|
710 | { |
723 | { |
|
711 | toolStripProgressBar1.Value = toolStripProgressBar1.Maximum; |
724 | toolStripProgressBar1.Value = toolStripProgressBar1.Maximum; |
|
- | 725 | toolStripStatusLabel1.Text = "Done."; |
||
- | 726 | } |
||
- | 727 | } |
||
- | 728 | |
||
- | 729 | private async void readFromVFOAToolStripMenuItem_Click(object sender, EventArgs e) |
||
- | 730 | { |
||
- | 731 | var rows = GetSelectedDataGridViewRows(dataGridView1); |
||
- | 732 | |
||
- | 733 | if (!rows.Any()) |
||
- | 734 | { |
||
- | 735 | return; |
||
- | 736 | } |
||
- | 737 | |
||
- | 738 | var list = rows.ToList(); |
||
- | 739 | |
||
- | 740 | try |
||
- | 741 | { |
||
- | 742 | foreach (var row in list) |
||
- | 743 | { |
||
- | 744 | var fa = await _catAssemblies.CatReadAsync<int>("FA", new object[] { }, _cancellationToken); |
||
- | 745 | |
||
- | 746 | row.Cells["FrequencyColumn"].Value = $"{ fa }"; |
||
- | 747 | } |
||
- | 748 | |
||
- | 749 | } |
||
- | 750 | catch (Exception exception) |
||
- | 751 | { |
||
- | 752 | Log.Error(exception, Resources.Failed_to_read_VFO_A); |
||
- | 753 | } |
||
- | 754 | } |
||
- | 755 | |
||
- | 756 | private async void readFromVFOBToolStripMenuItem_Click(object sender, EventArgs e) |
||
- | 757 | { |
||
- | 758 | var rows = GetSelectedDataGridViewRows(dataGridView1); |
||
- | 759 | |
||
- | 760 | if (!rows.Any()) |
||
- | 761 | { |
||
- | 762 | return; |
||
- | 763 | } |
||
- | 764 | |
||
- | 765 | var list = rows.ToList(); |
||
- | 766 | |
||
- | 767 | try |
||
- | 768 | { |
||
- | 769 | foreach (var row in list) |
||
- | 770 | { |
||
- | 771 | var fb = await _catAssemblies.CatReadAsync<int>("FB", new object[] { }, _cancellationToken); |
||
- | 772 | |
||
- | 773 | row.Cells["FrequencyColumn"].Value = $"{fb}"; |
||
- | 774 | } |
||
- | 775 | |
||
- | 776 | } |
||
- | 777 | catch (Exception exception) |
||
- | 778 | { |
||
- | 779 | Log.Error(exception, Resources.Failed_to_read_VFO_B); |
||
- | 780 | } |
||
- | 781 | } |
||
- | 782 | |
||
- | 783 | private async void memoryChannelToolStripMenuItem_Click(object sender, EventArgs e) |
||
- | 784 | { |
||
- | 785 | var rows = GetSelectedDataGridViewRows(dataGridView1); |
||
- | 786 | |
||
- | 787 | if (!rows.Any()) |
||
- | 788 | { |
||
- | 789 | return; |
||
- | 790 | } |
||
- | 791 | |
||
- | 792 | var row = rows.First(); |
||
- | 793 | |
||
- | 794 | try |
||
- | 795 | { |
||
- | 796 | using (var soundPlayer = new SoundPlayer(Assembly.GetExecutingAssembly().GetManifestResourceStream("HamBook.Effects.pot.wav"))) |
||
- | 797 | { |
||
- | 798 | await _catAssemblies.CatWriteAsync<string>("MC", new object[] { row.Cells["LocationColumn"].Value }, _cancellationToken); |
||
- | 799 | |
||
- | 800 | soundPlayer.Play(); |
||
- | 801 | } |
||
- | 802 | } |
||
- | 803 | catch (Exception exception) |
||
- | 804 | { |
||
- | 805 | Log.Error(exception, Resources.Failed_to_set_memory_channel); |
||
- | 806 | } |
||
- | 807 | } |
||
- | 808 | |
||
- | 809 | private async void frequencyToolStripMenuItem_Click(object sender, EventArgs e) |
||
- | 810 | { |
||
- | 811 | var rows = GetSelectedDataGridViewRows(dataGridView1); |
||
- | 812 | |
||
- | 813 | if (!rows.Any()) |
||
- | 814 | { |
||
- | 815 | return; |
||
- | 816 | } |
||
- | 817 | |
||
- | 818 | var row = rows.First(); |
||
- | 819 | |
||
- | 820 | try |
||
- | 821 | { |
||
- | 822 | using (var soundPlayer = new SoundPlayer(Assembly.GetExecutingAssembly().GetManifestResourceStream("HamBook.Effects.pot.wav"))) |
||
- | 823 | { |
||
- | 824 | if (await _catAssemblies.CatSetAsync<int, bool>("FA", new object[] { row.Cells["FrequencyColumn"].Value }, _cancellationToken)) |
||
- | 825 | { |
||
- | 826 | if (Configuration.Navigation.MouseScrollSound) |
||
- | 827 | { |
||
- | 828 | soundPlayer.Play(); |
||
- | 829 | } |
||
- | 830 | } |
||
- | 831 | } |
||
- | 832 | } |
||
- | 833 | catch (Exception exception) |
||
- | 834 | { |
||
- | 835 | Log.Error(exception, Resources.Failed_to_set_VFO_A_frequency); |
||
- | 836 | } |
||
- | 837 | } |
||
- | 838 | |
||
- | 839 | private void dataGridView1_MouseDown(object sender, MouseEventArgs e) |
||
- | 840 | { |
||
- | 841 | var dataGridView = (DataGridView)sender; |
||
- | 842 | |
||
- | 843 | var hitTest = dataGridView.HitTest(e.X, e.Y); |
||
- | 844 | |
||
- | 845 | switch (e.Button) |
||
- | 846 | { |
||
- | 847 | case MouseButtons.Right: |
||
- | 848 | if(GetSelectedDataGridViewRows(dataGridView).Count() > 1) |
||
- | 849 | { |
||
- | 850 | return; |
||
- | 851 | } |
||
- | 852 | |
||
- | 853 | dataGridView.ClearSelection(); |
||
- | 854 | dataGridView.Rows[hitTest.RowIndex].Selected = true; |
||
712 | toolStripStatusLabel1.Text = "Done."; |
855 | break; |
|
713 | } |
856 | } |