@brief Create a JSON-RPC ResponseSink that writes to fl:: serial output @param prefix Optional prefix to prepend to responses (default: "REMOTE: ") @return ResponseSink callback suitable for fl::Remote constructor @note Composes protocol layer (schema filtering) with transport layer (serial I/O)
| 159 | /// @return ResponseSink callback suitable for fl::Remote constructor |
| 160 | /// @note Composes protocol layer (schema filtering) with transport layer (serial I/O) |
| 161 | inline fl::function<void(const fl::json&)> |
| 162 | createSerialResponseSink(const char* prefix = "REMOTE: ") { |
| 163 | return [prefix](const fl::json& response) { |
| 164 | // Format and write to serial (no filtering needed - protocol uses flat structure) |
| 165 | SerialWriter serial; |
| 166 | fl::string formatted = formatJsonResponse(response, prefix); |
| 167 | writeSerialLine(serial, formatted); |
| 168 | }; |
| 169 | } |
| 170 | |
| 171 | /// @brief Create RequestSource and ResponseSink pair for serial I/O |
| 172 | /// @param responsePrefix Prefix for outgoing responses (default: "REMOTE: ") |
no test coverage detected