ether2ser 0.1.0
Ethernet <-> synchronous V.24 bridge firmware for RP2040 + W5500
Loading...
Searching...
No Matches
cli_parser.h
Go to the documentation of this file.
1/*
2 * ether2ser - Ethernet <-> synchronous V.24 (RS-232/V.28) bridge
3 *
4 * File: src/system/cli_parser.h
5 * Purpose: CLI parsing API and pin metadata types.
6 *
7 * SPDX-License-Identifier: Apache-2.0
8 *
9 * Copyright (c) 2026 Florian <f.leuze@outlook.de>
10 */
11
12#ifndef CLI_PARSER_H
13#define CLI_PARSER_H
14
15// Related headers
16
17// Standard library headers
18#include <stdbool.h>
19#include <stddef.h>
20#include <stdint.h>
21
22// Project Headers
23#include "drivers/gpio_driver.h"
24#include "drivers/v24_config.h"
25#include "system/error.h"
26
27// Generated headers
28
32typedef struct
33{
35 const char* name;
37 uint8_t gpio_num;
41
45size_t get_num_pins(void);
46
56e2s_error_t cli_parse(const char* line, char* cmd, size_t cmd_cap, char* args, size_t args_cap);
64e2s_error_t parse_get_args(const char* args, char* pin_name, const pin_info_t** pin);
65
71const pin_info_t* find_pin(const char* name);
72
76const pin_info_t* get_pin_table(void);
77
85e2s_error_t parse_set_ip_args(const char* args, uint8_t ip_addr[4], uint8_t netmask[4]);
86
95e2s_error_t parse_set_gpio_args(const char* args, char* pin_name, int* value,
96 const pin_info_t** pin);
97
105e2s_error_t parse_set_net_ip_args(const char* args, uint8_t ip_addr[4], uint8_t netmask[4]);
106
113e2s_error_t parse_set_ip_remote_args(const char* args, uint8_t ip_addr[4]);
114
121e2s_error_t parse_set_gateway_args(const char* args, uint8_t ip_addr[4]);
122
129e2s_error_t parse_set_udp_port_local_args(const char* args, uint16_t* port);
130
137e2s_error_t parse_set_udp_port_remote_args(const char* args, uint16_t* port);
138
145e2s_error_t parse_set_v24_polarities(const char* args, V24_POLARITIES_T* polarities);
146
153e2s_error_t parse_set_v24_baudrate(const char* args, V24_BAUDRATE_T* baudrate);
154
161e2s_error_t parse_set_v24_clockmode(const char* args, bool* clockmode);
162
163#endif /* CLI_PARSER_H */
e2s_error_t parse_set_v24_baudrate(const char *args, V24_BAUDRATE_T *baudrate)
Parse V.24 baudrate argument.
Definition cli_parser.c:417
e2s_error_t cli_parse(const char *line, char *cmd, size_t cmd_cap, char *args, size_t args_cap)
Split one CLI line into command and argument string.
Definition cli_parser.c:531
e2s_error_t parse_set_ip_args(const char *args, uint8_t ip_addr[4], uint8_t netmask[4])
Parse ip_addr and optional netmask values.
Definition cli_parser.c:187
e2s_error_t parse_set_gateway_args(const char *args, uint8_t ip_addr[4])
Parse gateway ip_addr argument.
Definition cli_parser.c:297
e2s_error_t parse_get_args(const char *args, char *pin_name, const pin_info_t **pin)
Parse get command arguments and resolve pin metadata.
Definition cli_parser.c:515
e2s_error_t parse_set_v24_clockmode(const char *args, bool *clockmode)
Parse V.24 tx clock mode argument.
Definition cli_parser.c:462
const pin_info_t * find_pin(const char *name)
Lookup pin metadata by name.
Definition cli_parser.c:503
e2s_error_t parse_set_udp_port_remote_args(const char *args, uint16_t *port)
Parse remote UDP port argument.
Definition cli_parser.c:307
e2s_error_t parse_set_gpio_args(const char *args, char *pin_name, int *value, const pin_info_t **pin)
Parse GPIO set command arguments.
Definition cli_parser.c:231
const pin_info_t * get_pin_table(void)
Return pointer to static pin metadata table.
Definition cli_parser.c:497
e2s_error_t parse_set_net_ip_args(const char *args, uint8_t ip_addr[4], uint8_t netmask[4])
Parse network local ip_addr/subnet arguments.
Definition cli_parser.c:283
e2s_error_t parse_set_udp_port_local_args(const char *args, uint16_t *port)
Parse local UDP port argument.
Definition cli_parser.c:302
size_t get_num_pins(void)
Return number of entries in the CLI pin table.
Definition cli_parser.c:44
e2s_error_t parse_set_ip_remote_args(const char *args, uint8_t ip_addr[4])
Parse remote ip_addr argument.
Definition cli_parser.c:292
e2s_error_t parse_set_v24_polarities(const char *args, V24_POLARITIES_T *polarities)
Parse V.24 polarities argument list.
Definition cli_parser.c:312
e2s_error_t
Common error codes returned by ether2ser modules.
Definition error.h:27
Combined TX and RX polarity configuration.
Definition v24_config.h:78
Pin metadata entry used by CLI lookup and validation.
Definition cli_parser.h:33
bool is_output
Definition cli_parser.h:39
uint8_t gpio_num
Definition cli_parser.h:37
const char * name
Definition cli_parser.h:35
V24_BAUDRATE_T
Supported synchronous V.24 baudrates.
Definition v24_config.h:32