Cross-Platform OpenAMIP Parser Development -- 2

Job ID: 39879619

Budget: $750 – $1,500 AUD

C/C++ SW Engineer / Embedded SW Engineer / “Vibe Coding Cleaning Specialist”

I need a robust, well-documented OpenAMIP protocol parser and support package that runs natively on desktop Windows and Linux, then cross-compiles cleanly for Embedded Linux targets such as PetaLinux, YOCTO, and common RTOS distributions. My priority is a single, shared code base—ideally in C or modern C++—with CMake or an equivalent build system so I can spin up binaries or libraries for each platform from the same source tree.

Production/Industry-grade quality, 100 % fully compliant of OpenAMIP 1.7 rev F implementation, all
mandatory requirements, all optional requirements, all extensions, both Modem <--> ACU directions.
(FYI: fully compliant protocol message types already exists in code, see further down)

Short:
Regression Suit and Examples
Application / CTRL: GUI, Multi-tab interface, log window, connect, init controls, configuration controls, etc
Application / CTRL: CLI, Python API (support for both win/Linux), Python Shell
Configuration @ runtime; A configuration driven system with JSON support, hot-reload and schema versioning for operational flexibility
Logging / Diagnostic; Log Events, Error Events, Syslog, etc
Session / Reliability layer, Watchdog, message queue, exponential back-off, etc
Network / Transport; TCP/IP, UDP, platform socket, link buffers



Milestone1:
- Existing Vibe Code shared --> Assessment of the project by Consultant
- Project Definition, Project Planning, Project Acceptance Defined ( by Consultant )

Milestone 2-N (CI/CD with part releases; Design + Validation against spec):
- OpenAMIP Parser core: Implemented, tested, debugged all message types (Rev F)
- The OpenAMIP Protocol Parser Layer contains the protocol parser logic to parse, interpret,
and construct protocol messages. This layer handles syntax and semantic rules of the protocol
and integrates with higher-level application functionality. OpenAMIP Interprets plain ASCII messages, processes OpenAMIP commands, parameters, comments, and errors (Reference OpenAMIP strict validation rules per message type).
- OpenAMIP Reliability Layer / Session Layer manages protocol session state, connection lifecycle, and
controls exchanges. This include handshake, keep-alives, re-transmission logic, Retry/Queue Logic,
heartbeat, ACK/NACK, timing supervision, replay protection, etc.
- Logging / Diagnostic / Event; Log Events, Error Events, Syslog, etc
- CLI + Python API/Shell: Consistent command parser, help systems, API wrappers (expose the full API)
- Shall be able to configure 1-N instances as Modem, ACU, or both Modem/ACU
- Unit Test / QA: Regression framework in Python (Modem-to-ACU, ACU-to-Modem);
- Run a regression testing all messages types
- Run a regression with fault injection
- "Python Simulator" in Python: Setup 1-N Modem units, Setup 1-N Antenna ctrl units define
Port/IP and send messages over TCP/IP and/or UDP to the different instances on the same
computer. Validate correct behaviour, and check with wireshark.
- Run two computers connected togther over Ethernet/OpenAMIP; to talk Modem<-->Modem,
Modem <--> ACU, walk through all message types (Modem-to-ACU, ACU-to-Modem).
- GUI in Windows with multiple tabs, CLI window, logging window, load config init files, manual settings in
tabs, connect, ping, etc (Same functionality as in python - but GUI running on Windows, okay to vibe
code together something that looks good and works ).
- Complete doc (SW Architecture, API, Figures, Step-by-step instructions, user guide) ~ 200pages.

For HW Integration (We can discuss how far we take it (if it is included or not):

Step1:
Configure PetaLinux on Microblaze running on a Xilinx Spartan7 SP701 board ,
Run the OpenAMIP App (ACU / Modem) in the Embedded System, talk to Host Computer.
ERA-Lite Embedded regression agent; Port to PetaLinux/RTOS test on hardware

Step2:
Configure RTOS on Microblaze running Run the OpenAMIP App (ACU / Modem). This might
be problematic depending on support for TCP/IP or not.


Existing Resources (you will hit the floor running) / various quality:
Document: OpenAMIP 1.7 Ver F specifications (PDF exist online on iDirect webpage)
A protocol parser SW Architecture, including all OpenAMIP Protocol Message types
supported as per specified in OpenAMIP 1.7 Ver F (56pages), configured with JSON
at runtime exits - this has been Vibe Coded together. Note: The code does not
compile, it needs to be polish up / maybe some re-farm needed.
Code: ChatGPT Vibe Coded OpenAMIP Protocol parser
Code: ChatGPT Vibe Coded: Logging
Code: ChatGPT Vibe Coded: Reliability/Session Layer
Code: ChatGPT Vibe Coded: Networking Layer
Code: ChatGPT Vibe Coded: Co-compile Win/Linux

Following has been used for vibe coding;
Validate and verify these attached files, 100 % verification against every rule, table, and numeric / semantic constraint from the official OpenAMIP 1.7 Rev F specification. Check for strict compliance with OpenAMIP 1.7 Rev F. This includes Chapter 2.5, Appendix A, Antenna Status Codes (Table 2-3), Extended Antenna / Transceiver Status Fields and others. Check that the files can be compiled, and that there are no miss match of dependencies. Also run a static analysis checklist (naming consistency, complexity hot spots, maintainability issues) — similar to what Viasat’s toolchain does. Check for duplicated defines Run clang-tidy to further verify maintainability. Also Run a strict symbol cross-check. Make actual C11 compile with -Wall -Wextra.