Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Seatalk1 interface support #2265

Merged
merged 31 commits into from
Jan 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
0d055da
Build up infrastructure for new binding
pgrawehr Dec 25, 2023
9f5d35e
More stuff for first draft
pgrawehr Dec 25, 2023
a369e7f
Doesn't compile?
pgrawehr Dec 25, 2023
eefd720
First successful parser tests
pgrawehr Dec 26, 2023
baba280
It starts to do something useful
pgrawehr Dec 26, 2023
c92423c
More messages, and high-level support
pgrawehr Dec 27, 2023
e534f9f
First messages can be sent
pgrawehr Dec 29, 2023
2629339
It works!
pgrawehr Dec 29, 2023
f579d32
The most important commands work, I can control the AP remotely!
pgrawehr Dec 30, 2023
4ecbf0c
Deadband mode selection works
pgrawehr Dec 30, 2023
68f2d9e
Lots of unit testing
pgrawehr Dec 30, 2023
1d84b44
Testing and bugfixing
pgrawehr Dec 31, 2023
65badd9
Some new messages added
pgrawehr Dec 31, 2023
15dd3e9
Apparent wind command appears to work
pgrawehr Dec 31, 2023
c5b5df5
Track message and Autopilot Track Mode work
pgrawehr Jan 1, 2024
d5e052a
Basic roundtrip for all messages fixed
pgrawehr Jan 1, 2024
bfa3c70
Add Schematic for interface
pgrawehr Jan 3, 2024
83710e2
Ignore KCad backup directory
pgrawehr Jan 3, 2024
db1237e
HTD sentence supported
pgrawehr Jan 6, 2024
4164586
Add support for $STALK message
pgrawehr Jan 6, 2024
007db2f
Raw Seatalk1 to NMEA conversion works
pgrawehr Jan 7, 2024
b95310f
More simulation stuff
pgrawehr Jan 7, 2024
96c53d0
Schema cleanup
pgrawehr Jan 7, 2024
6bb711f
Add some message translation between Seatalk and NMEA
pgrawehr Jan 7, 2024
95339ae
Various tests added and NavigationToWaypoint reversed
pgrawehr Jan 7, 2024
9bbff7f
Minor cleanup, create empty PCB
pgrawehr Jan 8, 2024
7be59bd
Schema updated, PCB drawn (unverified!)
pgrawehr Jan 13, 2024
38c4225
Documentation started
pgrawehr Jan 13, 2024
353f3d7
Finalize documentation
pgrawehr Jan 14, 2024
9b04cc9
Fix linter errors
pgrawehr Jan 14, 2024
af64d8b
Formatting fix
pgrawehr Jan 27, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -336,3 +336,4 @@ ASALocalRun/

# Ignore Mac DS_Store files
.DS_Store
/src/devices/Seatalk1/schematics/SeaTalk1/SeaTalk1-backups
14 changes: 14 additions & 0 deletions src/Iot.Device.Bindings/CompatibilitySuppressions.xml
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,13 @@
<Right>lib/net6.0/Iot.Device.Bindings.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:Iot.Device.Nmea0183.Sentences.WaterSpeedAndAngle.#ctor(UnitsNet.Angle,UnitsNet.Angle,UnitsNet.Speed)</Target>
<Left>lib/net6.0/Iot.Device.Bindings.dll</Left>
<Right>lib/net6.0/Iot.Device.Bindings.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:Iot.Device.Ssd13xx.Ssd1306.#ctor(System.Device.I2c.I2cDevice)</Target>
Expand Down Expand Up @@ -267,6 +274,13 @@
<Right>lib/netstandard2.0/Iot.Device.Bindings.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:Iot.Device.Nmea0183.Sentences.WaterSpeedAndAngle.#ctor(UnitsNet.Angle,UnitsNet.Angle,UnitsNet.Speed)</Target>
<Left>lib/netstandard2.0/Iot.Device.Bindings.dll</Left>
<Right>lib/netstandard2.0/Iot.Device.Bindings.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:Iot.Device.Ssd13xx.Ssd1306.#ctor(System.Device.I2c.I2cDevice)</Target>
Expand Down
14 changes: 14 additions & 0 deletions src/devices/Nmea0183/Nmea0183.sln
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common", "..\Common\Common.
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SimpleParser", "samples\SimpleParser\SimpleParser.csproj", "{C66E7575-9ECA-4329-A145-1DCADE028DDC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Seatalk1", "..\Seatalk1\Seatalk1.csproj", "{4C6A3828-5AC7-42AD-BE8A-111DF1D46C8E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -83,6 +85,18 @@ Global
{C66E7575-9ECA-4329-A145-1DCADE028DDC}.Windows-Debug|Any CPU.Build.0 = Debug|Any CPU
{C66E7575-9ECA-4329-A145-1DCADE028DDC}.Windows-Release|Any CPU.ActiveCfg = Release|Any CPU
{C66E7575-9ECA-4329-A145-1DCADE028DDC}.Windows-Release|Any CPU.Build.0 = Release|Any CPU
{4C6A3828-5AC7-42AD-BE8A-111DF1D46C8E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4C6A3828-5AC7-42AD-BE8A-111DF1D46C8E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4C6A3828-5AC7-42AD-BE8A-111DF1D46C8E}.Linux-Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4C6A3828-5AC7-42AD-BE8A-111DF1D46C8E}.Linux-Debug|Any CPU.Build.0 = Debug|Any CPU
{4C6A3828-5AC7-42AD-BE8A-111DF1D46C8E}.Linux-Release|Any CPU.ActiveCfg = Release|Any CPU
{4C6A3828-5AC7-42AD-BE8A-111DF1D46C8E}.Linux-Release|Any CPU.Build.0 = Release|Any CPU
{4C6A3828-5AC7-42AD-BE8A-111DF1D46C8E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4C6A3828-5AC7-42AD-BE8A-111DF1D46C8E}.Release|Any CPU.Build.0 = Release|Any CPU
{4C6A3828-5AC7-42AD-BE8A-111DF1D46C8E}.Windows-Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4C6A3828-5AC7-42AD-BE8A-111DF1D46C8E}.Windows-Debug|Any CPU.Build.0 = Debug|Any CPU
{4C6A3828-5AC7-42AD-BE8A-111DF1D46C8E}.Windows-Release|Any CPU.ActiveCfg = Release|Any CPU
{4C6A3828-5AC7-42AD-BE8A-111DF1D46C8E}.Windows-Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
67 changes: 67 additions & 0 deletions src/devices/Nmea0183/Sentences/AutopilotStatus.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Iot.Device.Nmea0183.Sentences
{
/// <summary>
/// The current state of the autopilot
/// </summary>
public enum AutopilotStatus
{
/// <summary>
/// The autopilot controller is offline or not present
/// </summary>
Offline,

/// <summary>
/// The autopilot is in standby mode (= manual steering is active)
/// </summary>
Standby,

/// <summary>
/// The autopilot is in auto mode. For most controllers, this means "desired heading" mode.
/// </summary>
Auto,

/// <summary>
/// The autopilot is in desired track mode (following a planned route)
/// </summary>
Track,

/// <summary>
/// The autopilot is in Wind mode (keeping the relative wind angle constant)
/// </summary>
Wind,

/// <summary>
/// The autopilot is in track mode, but inactive
/// </summary>
InactiveTrack,

/// <summary>
/// The autopilot is in wind mode, but inactive
/// </summary>
InactiveWind,

/// <summary>
/// The autopilot is in calibration mode
/// </summary>
Calibration,

/// <summary>
/// Direct rudder control mode
/// </summary>
RudderControl,

/// <summary>
/// The state is unknown
/// </summary>
Undefined,
}
}
Loading
Loading