AgOpenGPS v7 #899
Replies: 15 comments 16 replies
|
Maybe let me try to give a quick overview of what happened so far. Cross-platformOne idea that has been around, was to get AgOpenGPS to run under some other operating system than Windows. I originally posted a Potential Roadmap for AgOpenGPS in the Discourse forum, that basically outlined how it would potentially be possible to transition AgOpenGPS from the current WinForms implementation to a more modern cross-platform Avalonia UI version. However, as it turned out it was much more work than anticipated, to get that separation where it needs to be. AOG_DevBasically at the same time, @farmerbriantee and @P00qwerty started working on AOG_Dev, which aimed to fix some of the more fundamental problems in AgOpenGPS. That version of AgOpenGPS (or AOG) originated from an "older" version of AgOpenGPS and therefore differed quite a bit from the latest state of AgOpenGPS itself. The QuestionsBased on that history, there are a few questions that emerged:
|
|
Adding the improvements learned in AOG_dev to AgOpenGPS might be best, since otherwise the jump might so large as to be almost impossible by those less knowledgeable (including me). I have not tried AOG_dev so far because it got released during the farming season, and I am working on other improvements that are not done yet. |
|
On the topic of Should work continue with creating a cross-platform AgOpenGPS version? It is my opinion that
The only real tangible benefit of multi-OS is, in my opinion, the ability to use cheap Android tablets as a display. I think we can realize that benefit with an alternate approach: run AgOpenGPS on an SBC and have the UI be through a web browser. Running AgOpenGPS on an SBC with web browser control has various benefits
Again, it my opinion that AgOpenGPS does NOT need multi OS support. Keep it in Windows. And if the OS were to change, it should be to Linux on an SBC. |
|
I thought some time about how to continue.. I think the best we can do.. split the UI from the business logic.. it gives at least the opportunity to get a more stable program and we can discuss about another front end as well.. maybe webbased is one of those things. So… to me: |
|
I believe a key thing that should be answered and understood by all is a Yes or No answer to the question below Can the goodness of AOG_DEV be added to AgOpenGPS? I was under the impression that the answer is No. AgOpenGPS has fundamental flaws that cannot be fixed by adding to. Remove the flaws and there is not much left. Yet I see others suggesting this as a path forward. @farmerbriantee Can you weigh in on this? |
|
Please also consider that we do not have unlimited manpower to develop that next version of AgOpenGPS. Even though I would love to see a fully Linux compatible web-frontend solution, I am not sure that is going to happen (even with the help of AI). I think we should stick with some of the more realistic options, like continuing to improve AgOpenGPS by separating front-end from back-end logic, or bringing the ideas from AOG_Dev into AgOpenGPS (or even replacing the current version of AgOpenGPS with AOG_Dev). |
|
V7 means making breaking changes I think? Else It would just stay V6 Things that are already in AOG_dev:
Things that should (or could) be added that are not in AgOpenGPS or AOG_dev and that will also be breaking changes:
What should be the release timeline for v7? Is there any rush? Could be in a year or more I guess? Using AOG_dev (moving it in AgOpenGPS official) and playing with, looking the code for a period of time (with some PRs) seems a good option to me. Then we would see what could be improved for a release, or if it should be abandoned and AgopenGPS should be used, incorporating some AOG_dev features. Would it be in a different repository? I guess very few people already have gone though the whole AGO_dev code? |
|
If we decide to continue with AgOpenGPS rather than migrating to AOG_Dev, I suggest the following approach:
For me, the purpose and benefits of some AOG_Dev features aren't clear, and I suspect some others may feel the same. Documenting features with clear descriptions would help ensure everyone understands what we're building and why. How to do this in practice? Good question 😄 What do you think? |
|
What if we start from scratch… |
|
Adding more code to AgOpenGPS isn't the answer. It's time to put the programming keyboard down and create an SRS. |
|
I made some Claude MD's to implement the Guidance classes and single trackfile class from AOG_Dev to AgOpenGPS. The plan is based to make it even better code-base wise. Especially by looking into the performance of the guidance control. |
|
Hey everyone, I’ve been following the discussion and wanted to throw something a little different into the mix. Over the past few evenings (maybe ~18 hours total after coming in from farming), I started drafting a new experimental branch of AOG that I’m calling AgOpenGPS-Nexus. It’s basically an experiment to see just how far we can push things with modern architecture and AI-assisted development — both in design and implementation. I started with a full SRS (drafted with some help from AI and my own background in systems engineering and software dev), and have since been moving into ADRs and source code generation. The SRS itself is already a bit behind, but the ADRs are rolling fast and Codex bots are chewing through the code layer by layer. The core idea behind Nexus is: Native Linux SBC first (think CM5-based AIOs), with Windows supported out of the box. Eventually, the same UI stack (written in .NET 8 + Avalonia) should be portable to Android and iOS — so your phone or tablet could act as a companion app, or even run simple field tasks standalone. Completely modular architecture. Even mapping is a plugin. gRPC for all inter-service communication between AgIO, Core, Frontend, and plugins. AOG-Link (based on nanopb) handles MCU-side communication, running over Ethernet, RS-485, CAN, or serial, and bridges seamlessly back to the legacy PGN world. If you want to dig deeper, this doc explains the differences from legacy V6 to the Nexus stack: And here’s the living ADR roadmap that guides how each subsystem is being redefined: This whole thing is very much an experiment — not something the community should feel obligated to rally behind yet. But if it pans out, it could really open the door for some cool new directions in AOG’s future — lighter cores, modular plugins, and native support across everything from tractors to tablets. Always open to feedback on the ADRs, architecture, or just general thoughts on where this could go. Cheers, |
|
Since its 100% all about performance and timing in a guidance project, have you any analyzing done on the performance and speed to do a full guidance loop with an incoming GNSS sentence at 10 or 20hz? |
|
Based on the last messages here.. the bot can do a lot for us, as in 80% of code. The biggest fear I have.. how do we maintain is? If you pick AgOpenGPS and let the bot do small precies of fundamental rewrites of the code. We can go to a MVVM project pretty quickly with the fundamental problems solved and keep releasing so people test and use it. It’s kind of start from scratch but multiple devs can work together using bots to do it. When the UI is fully uncoupled and all the business logic is working good, fast, with good layed out code bases.. we only need to build a new UI. To me that’s the last part. But we can keep throwing out releases from time to time without loosing functions and the whole community keeps working with it.. |
|
I see a lot of important and high level discussions going on currently. Nevertheless, I want to share (at class level) what I was doing during my refactoring work. This is a small overview of the things I started refactoring in AgOpenGps: GeoCoord, GeoDelta and GeoDir
GeoPath, GeoPolygon Field aspects Field class OpenGlWrapper GLW MVVM pattern |
Uh oh!
There was an error while loading. Please reload this page.
How do we continue?
Let’s talk here and speak for yourself about your ideas how the future will look like for AgOpenGPS.
All reactions