Files
arphy/arphy_cli.c
2022-10-24 19:13:54 +02:00

48 lines
1.2 KiB
C

/*
* https://ciapini.wiki.esiliati.org/index.php/Armando47/ArPhyCLI
*/
#include <stdint.h>
#include "../../mini-printf.h"
#include "../phy.h"
#include "arphy.h"
#include "arphy_cli.h"
#include "arphy_fec.h"
#include "arphy_interleaver.h"
/*
uint8_t arphy_cli_print_frame(net_packet net_pck, arnet_packet arnet_pck, uint8_t *Buffer) {
uint8_t q = 0;
return q;
}
*/
uint8_t arphy_cli_print_state(uint8_t *Buffer) {
uint8_t q = 0;
q += mini_snprintf((char*) (&Buffer[q]), 24, "%c%c%u%c%c%c%u", ARPHY_CLI_FEC_TYPE, ARPHY_CLI_KV_SEPARATOR, fec.type, ARPHY_CLI_ELEMENT_SEPARATOR, ARPHY_CLI_INTERLEAVER_TYPE, ARPHY_CLI_KV_SEPARATOR, interleaver.type);
return q;
}
// assegna
uint8_t arphy_cli_exec(uint8_t name, uint32_t value) {
uint8_t err = ARPHY_CLI_ERR_OK;
if (name == ARPHY_CLI_FEC_TYPE) {
if (value <= ARPHY_FEC_TYPE_MAX) fec.type = value;
else {
err = ARPHY_CLI_ERR_INVALID_VALUE;
}
} else if (name == ARPHY_CLI_INTERLEAVER_TYPE) {
if (value <= ARPHY_INTERLEAVER_TYPE_MAX) interleaver.type = value;
else {
err = ARPHY_CLI_ERR_INVALID_VALUE;
}
} else {
err = ARPHY_CLI_ERR_INVALID_NAME;
}
return err;
}