Improve the bandmap window
Remove the status bar and the band name, add the 75 and 150 kHz spans, add buttons for the callsign size (saved in the settings), draw the scale in the form's text colour so it shows in the dark theme, mark the carrier on the VFO bar and place a sideband bar on its side of the carrier, and show who spotted a station, when, and the comment when the pointer is on it. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -82,14 +82,27 @@ public class BandmapLayoutTests
|
||||
Assert.Equal(14_050_000, Scale().At(50).Hertz);
|
||||
|
||||
[Fact]
|
||||
public void AReceiverBarIsAsWideAsTheModeItIsIn()
|
||||
public void ACwReceiverBarIsCentredOnTheCarrier()
|
||||
{
|
||||
VfoMarker vfo = VfoMarker.Centred(
|
||||
Frequency.FromKilohertz(14_025),
|
||||
Frequency.FromHertz(500),
|
||||
VfoRole.Receive);
|
||||
VfoMarker vfo = VfoMarker.For(Frequency.FromKilohertz(14_025), Modes.Cw, VfoRole.Receive);
|
||||
|
||||
Assert.Equal(14_024_750, vfo.Low.Hertz);
|
||||
Assert.Equal(14_025_250, vfo.High.Hertz);
|
||||
Assert.Equal((14_024_750, 14_025_250), (vfo.Low.Hertz, vfo.High.Hertz));
|
||||
Assert.Equal(14_025_000, vfo.Carrier.Hertz);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AnUpperSidebandBarStartsAtTheCarrier()
|
||||
{
|
||||
VfoMarker vfo = VfoMarker.For(Frequency.FromKilohertz(14_200), Modes.Usb, VfoRole.Receive);
|
||||
|
||||
Assert.Equal((14_200_000, 14_202_700), (vfo.Low.Hertz, vfo.High.Hertz));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ALowerSidebandBarEndsAtTheCarrier()
|
||||
{
|
||||
VfoMarker vfo = VfoMarker.For(Frequency.FromKilohertz(7_100), Modes.Lsb, VfoRole.Receive);
|
||||
|
||||
Assert.Equal((7_097_300, 7_100_000), (vfo.Low.Hertz, vfo.High.Hertz));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
using Nonemm.Core;
|
||||
|
||||
namespace Nonemm.Spotting.Tests;
|
||||
|
||||
public class SpotDescriptionTests
|
||||
{
|
||||
private static readonly DateTime At = new(2026, 5, 30, 12, 1, 0, DateTimeKind.Utc);
|
||||
|
||||
[Fact]
|
||||
public void ASpotNamesTheSpotterTheTimeAndTheComment()
|
||||
{
|
||||
Spot spot = new(
|
||||
Callsign.Parse("JA1XYZ"), Frequency.FromKilohertz(14_025), At, SpotSource.Cluster,
|
||||
"K1TTT", "CW 26 dB");
|
||||
|
||||
Assert.Equal("JA1XYZ 14025.0\nSpotted by K1TTT at 12:01Z\nCW 26 dB", SpotDescription.Of(spot));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ASpotWithoutACommentHasTwoLines()
|
||||
{
|
||||
Spot spot = new(
|
||||
Callsign.Parse("JA1XYZ"), Frequency.FromKilohertz(14_025), At, SpotSource.Log);
|
||||
|
||||
Assert.Equal("JA1XYZ 14025.0\nWorked at 12:01Z", SpotDescription.Of(spot));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user