Skip to content

S08.03 slice 3b.2: SingleTask example with SolidSyslogUdpSender + interactive command channel #296

Description

@DavidCozens

Slice 3b.2 of S08.03 (parent: #268). Builds on #295.

Scope

Replace slice 3b.1's smoke main.c body with a real SolidSyslog-driven UDP example: SolidSyslogConfig wired with the slice-1 SolidSyslogFreeRtosDatagram and slice-3a SolidSyslogFreeRtosStaticResolver, all behind a single FreeRTOS task running Example/Common/ExampleInteractive.

What lands

  • Example/FreeRtos/SingleTask/main.c rewritten:
    • Hardcoded struct ExampleOptions (no getopt — the FreeRTOS port deliberately skips Example/Common/ExampleCommandLine.c; configuration injection is a slice-4 concern via the interactive command grammar).
    • SolidSyslogFreeRtosStaticResolver_Create({10, 0, 2, 2}), SolidSyslogFreeRtosDatagram_Create(), SolidSyslogUdpSender_Create(…).
    • SolidSyslogConfig.sender wired directly to the UDP sender — no NullSender, no SwitchingSender.
    • NullBuffer + single FreeRTOS task running ExampleInteractive (no separate ExampleServiceThread while the buffer is NullBuffer and Service is a no-op).
    • Example/FreeRtos/SingleTask/UartRx.{c,h} — minimal CMSDK UART0 RX driver wired into Syscalls.c::_read so ExampleInteractive's send N / quit commands arrive over qemu -serial stdio.

Test strategy

Same shape as 3b.1 — functional smoke. New logic is glue (calls into SolidSyslogConfig, into the slice-1 adapter, into the slice-3a resolver, all already host-TDD'd). If a real branch appears (e.g. config-injection grammar), test it.

Acceptance

  • QEMU run accepts send 1 over UART, the host nc -ul 5514 receives an RFC 5424 syslog frame.
  • quit cleanly exits the example.
  • No changes to Core/, Platform/Posix/, Platform/Windows/, or Tests/.

Out of scope (deferred to slice 4+)

  • BDD harness pointed at the FreeRTOS target.
  • Configuration injection over the interactive command channel.
  • Service-thread / non-NullBuffer FreeRTOS-side work.

Metadata

Metadata

Assignees

No one assigned

    Labels

    storyStory issue

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions