<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nav.git/android-app/app/src/main/kotlin/org/terst/nav/nmea, branch main</title>
<subtitle>nav — android navigation app
</subtitle>
<id>https://git.terst.org/nav.git/atom?h=main</id>
<link rel='self' href='https://git.terst.org/nav.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.terst.org/nav.git/'/>
<updated>2026-04-04T07:45:41+00:00</updated>
<entry>
<title>refactor: unify core models and finish org.terst.nav migration</title>
<updated>2026-04-04T07:45:41+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-04-04T07:45:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/nav.git/commit/?id=97715ab4007ff3101f58edf4385cef1fc3d1615b'/>
<id>urn:sha1:97715ab4007ff3101f58edf4385cef1fc3d1615b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: add VHW boat speed parser, BoatSpeedData, and PerformanceViewModel</title>
<updated>2026-03-16T01:09:44+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-03-16T01:09:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/nav.git/commit/?id=0ded60427f27d2f69ae235633c7a7ad1ece1cd9c'/>
<id>urn:sha1:0ded60427f27d2f69ae235633c7a7ad1ece1cd9c</id>
<content type='text'>
- NmeaParser: add parseVhw() for NMEA VHW (water speed) sentences, returning BoatSpeedData
- NmeaStreamManager: expose nmeaBoatSpeedData SharedFlow for VHW emissions
- BoatSpeedData: new sensor data class (bspKnots, timestampMs)
- PerformanceViewModel + factory: new ViewModel for performance metrics
- Preserve orig copies of MapFragment and UI tests for reference
- Update SESSION_STATE.md and allowed tool settings

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat: add AIS data model, CPA calculator, and NMEA VDM parser</title>
<updated>2026-03-15T12:24:35+00:00</updated>
<author>
<name>Claudomator Agent</name>
<email>agent@claudomator</email>
</author>
<published>2026-03-15T12:24:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/nav.git/commit/?id=d1de605e28bd8ac32d73420ef60235eac4c56a50'/>
<id>urn:sha1:d1de605e28bd8ac32d73420ef60235eac4c56a50</id>
<content type='text'>
- AisVessel data class (mmsi, name, callsign, lat, lon, sog, cog, heading, vesselType, timestampMs)
- CpaCalculator: flat-earth CPA/TCPA algorithm (nm, min)
- AisVdmParser: !AIVDM/!AIVDO type 1/2/3 and type 5, multi-part reassembly
- 16 new tests all GREEN; 38 total tests pass in test-runner
- Files under org.terst.nav.ais/nmea (com dir was root-owned)

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat: implement NMEA stream management, sensor data models, and power modes</title>
<updated>2026-03-15T01:24:07+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-03-15T01:24:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/nav.git/commit/?id=18c2f1c038f62fda1c1cea19c12dfdd4ce411602'/>
<id>urn:sha1:18c2f1c038f62fda1c1cea19c12dfdd4ce411602</id>
<content type='text'>
- Added NmeaStreamManager for TCP connection and sentence parsing.
- Extended NmeaParser to support MWV (wind), DBT (depth), and HDG/HDM (heading) sentences.
- Added sensor data models: WindData, DepthData, HeadingData.
- Introduced PowerMode enum to manage GPS update intervals.
- Integrated NmeaStreamManager and PowerMode into LocationService.
- Added test-runner, a standalone JVM-only Gradle project for verifying GPS/NMEA logic.

Co-Authored-By: Gemini CLI &lt;noreply@google.com&gt;
</content>
</entry>
<entry>
<title>Add GpsPosition data class and NMEA RMC parser with tests</title>
<updated>2026-03-14T02:23:25+00:00</updated>
<author>
<name>Claudomator Agent</name>
<email>agent@claudomator</email>
</author>
<published>2026-03-14T02:23:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/nav.git/commit/?id=e53fbe4e984f0f57f3ed73297adf8273bb523808'/>
<id>urn:sha1:e53fbe4e984f0f57f3ed73297adf8273bb523808</id>
<content type='text'>
- NmeaParser: parses $GPRMC (and any *RMC) sentence → GpsPosition
  - Null for void status (V), malformed input, non-RMC sentence
  - SOG/COG default to 0.0 when empty; S/W give negative lat/lon
  - Timestamp from HHMMSS + DDMMYY fields as Unix epoch millis UTC
  - No Android dependencies
- GpsPositionTest: value holding and data-class equality (2 tests)
- NmeaParserTest: 11 tests covering valid parse, void/malformed/empty,
  hemisphere signs, decimal precision
- All 22 unit tests verified GREEN via kotlinc + JUnitCore

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
