@@ -1608,6 +1608,18 @@ enum class InterfaceConfigType : uint8_t {
16081608 * Payload format: @ref UNIXSocketType
16091609 */
16101610 UNIX_SOCKET_TYPE = 7 ,
1611+
1612+ /* *
1613+ * Configure all settings for the specified interface/transport type.
1614+ *
1615+ * Payload format depends on the @ref TransportType%:
1616+ * - @ref TransportType::SERIAL - @ref SerialConfig
1617+ * - @ref TransportType::TCP - @ref TCPConfig
1618+ * - @ref TransportType::UDP - @ref UDPConfig
1619+ * - @ref TransportType::WEBSOCKET - @ref WebsocketConfig
1620+ * - @ref TransportType::UNIX - @ref UNIXSocketConfig
1621+ */
1622+ ALL_PARAMETERS = 8 ,
16111623};
16121624
16131625/* *
@@ -1644,6 +1656,9 @@ P1_CONSTEXPR_FUNC const char* to_string(InterfaceConfigType type) {
16441656 case InterfaceConfigType::UNIX_SOCKET_TYPE:
16451657 return " UNIX Socket Type" ;
16461658
1659+ case InterfaceConfigType::ALL_PARAMETERS:
1660+ return " All Parameters" ;
1661+
16471662 default :
16481663 return " Unrecognized Configuration" ;
16491664 }
@@ -2222,6 +2237,58 @@ inline p1_ostream& operator<<(p1_ostream& stream, MessageRate val) {
22222237 return stream;
22232238}
22242239
2240+ /* *
2241+ * @param TCP client/server interface configuration parameters.
2242+ * @ingroup io_interfaces
2243+ */
2244+ struct P1_ALIGNAS (4 ) TCPConfig {
2245+ TransportDirection direction = TransportDirection::SERVER;
2246+ uint8_t reserved[1 ] = {0 };
2247+ uint16_t port = 0 ;
2248+ char remote_address[64 ] = {0 };
2249+ };
2250+
2251+ /* *
2252+ * @param UDP interface configuration parameters.
2253+ * @ingroup io_interfaces
2254+ */
2255+ struct P1_ALIGNAS (4 ) UDPConfig {
2256+ uint8_t reserved[2 ] = {0 };
2257+ uint16_t port = 0 ;
2258+ char remote_address[64 ] = {0 };
2259+ };
2260+
2261+ /* *
2262+ * @param WebSocket client/server interface configuration parameters.
2263+ * @ingroup io_interfaces
2264+ */
2265+ struct P1_ALIGNAS (4 ) WebsocketConfig {
2266+ TransportDirection direction = TransportDirection::SERVER;
2267+ uint8_t reserved[1 ] = {0 };
2268+ uint16_t port = 0 ;
2269+ char remote_address[64 ] = {0 };
2270+ };
2271+
2272+ /* *
2273+ * @param UNIX domain socket client/server interface configuration parameters.
2274+ * @ingroup io_interfaces
2275+ */
2276+ struct P1_ALIGNAS (4 ) UNIXSocketConfig {
2277+ TransportDirection direction = TransportDirection::SERVER;
2278+ UNIXSocketType socket_type = UNIXSocketType::STREAM;
2279+ uint8_t reserved[2 ] = {0 };
2280+ char path[64 ] = {0 };
2281+ };
2282+
2283+ /* *
2284+ * @param Serial port (UART) interface configuration parameters.
2285+ * @ingroup io_interfaces
2286+ */
2287+ struct P1_ALIGNAS (4 ) SerialConfig {
2288+ uint32_t baud_rate = 0 ;
2289+ char device_path[64 ] = {0 };
2290+ };
2291+
22252292/* *
22262293 * @brief I/O interface parameter configuration submessage (used when sending
22272294 * a @ref SetConfigMessage or @ref GetConfigMessage for @ref
0 commit comments