mirror of
https://github.com/whowechina/chu_pico.git
synced 2024-11-11 22:47:09 +01:00
Optimize AIME commands
This commit is contained in:
parent
f63dbe7418
commit
7c1c90d121
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,2 +1,2 @@
|
|||||||
chu_main-backups
|
*-backups
|
||||||
Production/PCB/chu_main/*
|
Production/PCB/*/*
|
||||||
|
Binary file not shown.
@ -1 +1 @@
|
|||||||
Subproject commit 75dd5c6af5bd504e10c1dd927c0283efe8a37a37
|
Subproject commit b69e562e40aa8ec944c7d31f154a7701ecfec881
|
@ -77,13 +77,14 @@ static void disp_hid()
|
|||||||
static void disp_aime()
|
static void disp_aime()
|
||||||
{
|
{
|
||||||
printf("[AIME]\n");
|
printf("[AIME]\n");
|
||||||
printf(" NFC Module: %s\n", nfc_module_name());
|
printf(" NFC Module: %s\n", nfc_module_name());
|
||||||
printf(" Virtual AIC: %s\n", chu_cfg->virtual_aic ? "ON" : "OFF");
|
printf(" Virtual AIC: %s\n", chu_cfg->aime.virtual_aic ? "ON" : "OFF");
|
||||||
|
printf(" Mode: %d\n", chu_cfg->aime.mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
void handle_display(int argc, char *argv[])
|
void handle_display(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
const char *usage = "Usage: display [colors|style|tof|sense|hid]\n";
|
const char *usage = "Usage: display [colors|style|tof|sense|hid|aime]\n";
|
||||||
if (argc > 1) {
|
if (argc > 1) {
|
||||||
printf(usage);
|
printf(usage);
|
||||||
return;
|
return;
|
||||||
@ -425,25 +426,59 @@ static void handle_nfc()
|
|||||||
printf("\n");
|
printf("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void handle_virtual(int argc, char *argv[])
|
static bool handle_aime_mode(const char *mode)
|
||||||
{
|
{
|
||||||
const char *usage = "Usage: virtual <on|off>\n";
|
if (strcmp(mode, "0") == 0) {
|
||||||
if (argc != 1) {
|
chu_cfg->aime.mode = 0;
|
||||||
printf("%s", usage);
|
} else if (strcmp(mode, "1") == 0) {
|
||||||
return;
|
chu_cfg->aime.mode = 1;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
aime_set_mode(chu_cfg->aime.mode);
|
||||||
const char *commands[] = { "on", "off" };
|
|
||||||
int match = cli_match_prefix(commands, 2, argv[0]);
|
|
||||||
if (match < 0) {
|
|
||||||
printf("%s", usage);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
chu_cfg->virtual_aic = (match == 0);
|
|
||||||
|
|
||||||
aime_virtual_aic(chu_cfg->virtual_aic);
|
|
||||||
config_changed();
|
config_changed();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool handle_aime_virtual(const char *onoff)
|
||||||
|
{
|
||||||
|
if (strcasecmp(onoff, "on") == 0) {
|
||||||
|
chu_cfg->aime.virtual_aic = 1;
|
||||||
|
} else if (strcasecmp(onoff, "off") == 0) {
|
||||||
|
chu_cfg->aime.virtual_aic = 0;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
aime_virtual_aic(chu_cfg->aime.virtual_aic);
|
||||||
|
config_changed();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void handle_aime(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
const char *usage = "Usage:\n"
|
||||||
|
" aime mode <0|1>\n"
|
||||||
|
" aime virtual <on|off>\n";
|
||||||
|
if (argc != 2) {
|
||||||
|
printf("%s", usage);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *commands[] = { "mode", "virtual" };
|
||||||
|
int match = cli_match_prefix(commands, 2, argv[0]);
|
||||||
|
|
||||||
|
bool ok = false;
|
||||||
|
if (match == 0) {
|
||||||
|
ok = handle_aime_mode(argv[1]);
|
||||||
|
} else if (match == 1) {
|
||||||
|
ok = handle_aime_virtual(argv[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ok) {
|
||||||
|
disp_aime();
|
||||||
|
} else {
|
||||||
|
printf("%s", usage);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void commands_init()
|
void commands_init()
|
||||||
@ -460,5 +495,5 @@ void commands_init()
|
|||||||
cli_register("save", handle_save, "Save config to flash.");
|
cli_register("save", handle_save, "Save config to flash.");
|
||||||
cli_register("factory", handle_factory_reset, "Reset everything to default.");
|
cli_register("factory", handle_factory_reset, "Reset everything to default.");
|
||||||
cli_register("nfc", handle_nfc, "NFC debug.");
|
cli_register("nfc", handle_nfc, "NFC debug.");
|
||||||
cli_register("virtual", handle_virtual, "Virtual AIC card.");
|
cli_register("aime", handle_aime, "AIME settings.");
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,10 @@ static chu_cfg_t default_cfg = {
|
|||||||
.joy = 1,
|
.joy = 1,
|
||||||
.nkro = 0,
|
.nkro = 0,
|
||||||
},
|
},
|
||||||
.virtual_aic = false,
|
.aime = {
|
||||||
|
.mode = 0,
|
||||||
|
.virtual_aic = 0,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
chu_runtime_t *chu_runtime;
|
chu_runtime_t *chu_runtime;
|
||||||
|
@ -38,7 +38,10 @@ typedef struct __attribute__((packed)) {
|
|||||||
uint8_t joy : 4;
|
uint8_t joy : 4;
|
||||||
uint8_t nkro : 4;
|
uint8_t nkro : 4;
|
||||||
} hid;
|
} hid;
|
||||||
bool virtual_aic;
|
struct {
|
||||||
|
uint8_t mode : 4;
|
||||||
|
uint8_t virtual_aic : 4;
|
||||||
|
} aime;
|
||||||
} chu_cfg_t;
|
} chu_cfg_t;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -220,7 +220,8 @@ void init()
|
|||||||
i2c_select(I2C_PORT, 1 << 5); // PN532 on IR1 (I2C mux chn 5)
|
i2c_select(I2C_PORT, 1 << 5); // PN532 on IR1 (I2C mux chn 5)
|
||||||
nfc_init();
|
nfc_init();
|
||||||
aime_init(cdc_aime_putc);
|
aime_init(cdc_aime_putc);
|
||||||
aime_virtual_aic(chu_cfg->virtual_aic);
|
aime_virtual_aic(chu_cfg->aime.virtual_aic);
|
||||||
|
aime_set_mode(chu_cfg->aime.mode);
|
||||||
|
|
||||||
cli_init("chu_pico>", "\n << Chu Pico Controller >>\n"
|
cli_init("chu_pico>", "\n << Chu Pico Controller >>\n"
|
||||||
" https://github.com/whowechina\n\n");
|
" https://github.com/whowechina\n\n");
|
||||||
|
Loading…
Reference in New Issue
Block a user