From 002d6b269391af41499dd20f45c604a3cd518f96 Mon Sep 17 00:00:00 2001 From: Matthew Brugman Date: Thu, 9 Jan 2025 22:12:05 -0800 Subject: [PATCH 1/8] Add UART based glitching command --- src/CMakeLists.txt | 2 + src/commands/uart/glitch.c | 485 +++++++++++++++++ src/commands/uart/glitch.h | 4 + src/mode/hwuart.c | 6 + src/pirate.h | 2 + src/translation/base.c | 13 +- src/translation/base.h | 1016 +++++++++++++++++++----------------- src/translation/base.ht | 5 + src/translation/bs-ba.h | 983 +++++++++++++++++----------------- src/translation/en-us.h | 27 + src/translation/en-us.json | 961 +++++++++++++++++----------------- src/translation/it-it.h | 983 +++++++++++++++++----------------- src/translation/pl-pl.h | 983 +++++++++++++++++----------------- src/translation/zh-cn.h | 983 +++++++++++++++++----------------- 14 files changed, 3576 insertions(+), 2877 deletions(-) create mode 100644 src/commands/uart/glitch.c create mode 100644 src/commands/uart/glitch.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9dd375a5..44148cbd 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -141,6 +141,8 @@ set(bp5_common lib/minmea/gps.c commands/uart/monitor.h commands/uart/monitor.c + commands/uart/glitch.h + commands/uart/glitch.c # Half duplex UART mode/hwhduart.h diff --git a/src/commands/uart/glitch.c b/src/commands/uart/glitch.c new file mode 100644 index 00000000..d76ea777 --- /dev/null +++ b/src/commands/uart/glitch.c @@ -0,0 +1,485 @@ +/************************************************************* + * commands/uart/glitch.c + ************************************************************* + * This handles interfacing to a separate device to perform + * glitching attacks on a target. + * + * In this case, the glitch is triggered by the sending of a + * character over UART. Starting at the stop bit, there will + * be a short delay (specified by user), then an output will + * be fired for a short time (again, specified by user). + * + * Typical usage: + * + The target device is in a mode where it is awaiting a + * user-entered password over serial UART. After the user + * sends a over UART, the device's firmware checks + * the password. + * + The target does the password check; if the password is + * good, the code execution flow continues to other + * functionality. If the password was wrong, the flow + * jumps back to the password prompt. + * + The goal of the glitching in this case to to cause the + * program flow to "skip over" the code jump when there's + * a bad password. + * + Two common methods to cause this "glitch": + * + Power glitching - the threat actor "shorts out" supply + * power to the microcontroller for a very, very short + * time just as that branch instruction should execute; + * this causes the microcontroller to skip over that branch + * + EMF/EMP glitching - the threat actor induces a short + * blast of electromagnetic "noise" at the microcontroller + * just as that branch instruction should execute. + * + * So, this module is used to time either of those two attacks. + ************************************************************/ + +#include +#include "pico/stdlib.h" +#include "pico/time.h" +#include +#include "hardware/uart.h" +#include "pirate.h" +#include "pirate/bio.h" +#include "pirate/storage.h" +#include "system_config.h" +#include "command_struct.h" +#include "ui/ui_term.h" +#include "ui/ui_help.h" +#include "ui/ui_cmdln.h" +#include "ui/ui_prompt.h" +#include "bytecode.h" +#include "pirate/button.h" +#include + +// uncomment below if all of the definitions in src/debug_rtt.c/h have +// been done for this +//#define BP_DEBUG_OVERRIDE_DEFAULT_CATEGORY BP_DEBUG_CAT_GLITCH +// + +#define SYSTICK_PREEMPT_PRIORITY 0 +#define SYSTICK_SUB_PRIORITY 0 + +static const char* const usage[] = { "glitch\t[-h(elp)] [-c(onfig)]", + "UART glitch generator", + "Exit: press Bus Pirate button" }; + +typedef struct _uart_glitch_config { + uint32_t glitch_trg; // character sent from BP UART to trigger the glitch + uint32_t glitch_delay; // how long (us) after trigger stop bit to fire trigger + uint32_t glitch_wander; // amount of time (us) to vary glitch timing + uint32_t glitch_recycle; // minimum time (ms) between one glitch cycle and the next + uint32_t fail_resp; // first character response from device on bad password + uint32_t retry_count; // number of times to try glitching before quitting +} _uart_glitch_config; + +static const struct ui_help_options options[] = { + { 1, "", T_HELP_UART_GLITCH }, // command help + { 0, "-t", T_HELP_UART_BRIDGE_TOOLBAR }, + { 0, "-h", T_HELP_FLAG }, // help +}; + +static const char pin_labels[][5] = { "TRG", "RDY" }; + +static struct _uart_glitch_config uart_glitch_config; + + +static repeating_timer_t ticker; +static uint32_t tick_count_ms = 0; + +/************************************************* + * CONFIGURATION PARAMETERS FOR GLITCHING * + ************************************************* + * .glitch_trg - the ASCII character code that + * starts the glitch cycle. Typcially a + * carraige return (ASCII code 13, '\n') + * .glitch_wander - the amount of time of time to + * vary the glitch timing in microseconds + * .glitch_cyc - a short delay between turning off + * the glitch output and sending the character + * again. + * .fail_char - the first ASCII character in + * the "normally bad password" response + * .retry_count - max number of glitch cycles + * before giving up + ************************************************/ +static const struct prompt_item uart_glitch_trg_menu[] = { { T_UART_GLITCH_TRG_MENU_1 } }; +static const struct prompt_item uart_glitch_dly_menu[] = { { T_UART_GLITCH_DLY_MENU_1 } }; +static const struct prompt_item uart_glitch_vry_menu[] = { { T_UART_GLITCH_VRY_MENU_1 } }; +static const struct prompt_item uart_glitch_cyc_menu[] = { { T_UART_GLITCH_CYC_MENU_1 } }; +static const struct prompt_item uart_glitch_fail_menu[] = { { T_UART_GLITCH_FAIL_MENU_1 } }; +static const struct prompt_item uart_glitch_cnt_menu[] = { { T_UART_GLITCH_CNT_MENU_1 } }; + +static const struct ui_prompt uart_menu[] = { [0] = { .description = T_UART_GLITCH_TRG_MENU, + .menu_items = uart_glitch_trg_menu, + .menu_items_count = count_of(uart_glitch_trg_menu), + .prompt_text = T_UART_GLITCH_TRG_PROMPT, + .minval = 1, + .maxval = 255, + .defval = 13, + .menu_action = 0, + .config = &prompt_int_cfg }, + [1] = { .description = T_UART_GLITCH_DLY_MENU, + .menu_items = uart_glitch_dly_menu, + .menu_items_count = count_of(uart_glitch_dly_menu), + .prompt_text = T_UART_GLITCH_DLY_PROMPT, + .minval = 1, + .maxval = 255, + .defval = 1, + .menu_action = 0, + .config = &prompt_int_cfg }, + [2] = { .description = T_UART_GLITCH_VRY_MENU, + .menu_items = uart_glitch_vry_menu, + .menu_items_count = count_of(uart_glitch_vry_menu), + .prompt_text = T_UART_GLITCH_VRY_PROMPT, + .minval = 1, + .maxval = 10, + .defval = 1, + .menu_action = 0, + .config = &prompt_int_cfg }, + [3] = { .description = T_UART_GLITCH_CYC_MENU, + .menu_items = uart_glitch_cyc_menu, + .menu_items_count = count_of(uart_glitch_cyc_menu), + .prompt_text = T_UART_GLITCH_CYC_PROMPT, + .minval = 10, + .maxval = 1000, + .defval = 10, + .menu_action = 0, + .config = &prompt_int_cfg }, + [4] = { .description = T_UART_GLITCH_FAIL_MENU, + .menu_items = uart_glitch_fail_menu, + .menu_items_count = count_of(uart_glitch_fail_menu), + .prompt_text = T_UART_GLITCH_FAIL_PROMPT, + .minval = 1, + .maxval = 255, + .defval = 35, + .menu_action = 0, + .config = &prompt_int_cfg }, + [5] = { .description = T_UART_GLITCH_CNT_MENU, + .menu_items = uart_glitch_cnt_menu, + .menu_items_count = count_of(uart_glitch_cnt_menu), + .prompt_text = T_UART_GLITCH_CNT_PROMPT, + .minval = 1, + .maxval = 10000, + .defval = 100, + .menu_action = 0, + .config = &prompt_int_cfg }, + }; + +void glitch_settings(void) { + ui_prompt_mode_settings_int(GET_T(T_UART_GLITCH_TRG_MENU), uart_glitch_config.glitch_trg, "(ASCII)"); + ui_prompt_mode_settings_int(GET_T(T_UART_GLITCH_DLY_MENU), uart_glitch_config.glitch_delay, "us"); + ui_prompt_mode_settings_int(GET_T(T_UART_GLITCH_VRY_MENU), uart_glitch_config.glitch_wander, "us"); + ui_prompt_mode_settings_int(GET_T(T_UART_GLITCH_CYC_MENU), uart_glitch_config.glitch_recycle, "ms"); + ui_prompt_mode_settings_int(GET_T(T_UART_GLITCH_FAIL_MENU), uart_glitch_config.fail_resp, "(ASCII)"); + ui_prompt_mode_settings_int(GET_T(T_UART_GLITCH_CNT_MENU), uart_glitch_config.retry_count, 0x00); +} + +uint32_t uart_glitch_setup(void) { + uint32_t temp; + prompt_result result; + + const char config_file[] = "uglitch.bp"; + const mode_config_t config_t[] = { + // clang-format off + { "$.trigger", &uart_glitch_config.glitch_trg, MODE_CONFIG_FORMAT_DECIMAL }, + { "$.delay", &uart_glitch_config.glitch_delay, MODE_CONFIG_FORMAT_DECIMAL }, + { "$.wander", &uart_glitch_config.glitch_wander, MODE_CONFIG_FORMAT_DECIMAL }, + { "$.recycle", &uart_glitch_config.glitch_recycle, MODE_CONFIG_FORMAT_DECIMAL }, + { "$.failchar", &uart_glitch_config.fail_resp, MODE_CONFIG_FORMAT_DECIMAL }, + { "$.retries", &uart_glitch_config.retry_count, MODE_CONFIG_FORMAT_DECIMAL }, + // clang-format off + }; + + if (storage_load_mode(config_file, config_t, count_of(config_t))) { + printf("\r\n\r\n%s%s%s\r\n", ui_term_color_info(), GET_T(T_USE_PREVIOUS_SETTINGS), ui_term_color_reset()); + glitch_settings(); + + bool user_value; + if (!ui_prompt_bool(&result, true, true, true, &user_value)) { + return (0); + } + if (user_value) { + return (1); // user said yes, use the saved settings + } + } + + ui_prompt_uint32(&result, &uart_menu[0], &temp); + if (result.exit) { + return 0; + } + uart_glitch_config.glitch_trg = temp; + + ui_prompt_uint32(&result, &uart_menu[1], &temp); + if (result.exit) { + return 0; + } + uart_glitch_config.glitch_delay = temp; + + ui_prompt_uint32(&result, &uart_menu[2], &temp); + if (result.exit) { + return 0; + } + uart_glitch_config.glitch_wander = temp; + + ui_prompt_uint32(&result, &uart_menu[3], &temp); + if (result.exit) { + return 0; + } + uart_glitch_config.glitch_recycle = temp; + + ui_prompt_uint32(&result, &uart_menu[4], &temp); + if (result.exit) { + return 0; + } + uart_glitch_config.fail_resp = temp; + + ui_prompt_uint32(&result, &uart_menu[5], &temp); + if (result.exit) { + return 0; + } + uart_glitch_config.retry_count = temp; + + printf("\r\n"); + + storage_save_mode(config_file, config_t, count_of(config_t)); +} + +bool tick_inc(repeating_timer_t* ticker) { + tick_count_ms++; + return (true); +} + +void ticker_init() { + tick_count_ms = 0; + add_repeating_timer_ms(-1, tick_inc, NULL, &ticker); +} + +void ticker_kill() { + cancel_repeating_timer(&ticker); +} + +static inline uint32_t get_ticks() { + return (tick_count_ms); +} + +/******************************************************** + * Bus Pirate pins 0 and 1 are used for glitchhing: + * - Pin 0 is the triggered glitch output (to be used to + * do the actual glitching by some other device) + * - Pin 1 is an input used for the external glitching + * device to indicate its readiness. For example, an + * EMP type device may need some time to recharge before + * its ready again. + *******************************************************/ +bool setup_hardware() { + PRINT_INFO("glitch::Entering setup_hardware()\r\n"); + bio_put(M_UART_RTS, 0); + + bio_set_function(M_UART_GLITCH_TRG, GPIO_FUNC_SIO); + bio_set_function(M_UART_GLITCH_RDY, GPIO_FUNC_SIO); + bio_output(M_UART_GLITCH_TRG); + bio_input(M_UART_GLITCH_RDY); + system_bio_update_purpose_and_label(true, M_UART_GLITCH_TRG, BP_PIN_MODE, pin_labels[0]); + system_bio_update_purpose_and_label(true, M_UART_GLITCH_RDY, BP_PIN_MODE, pin_labels[1]); + + // set the trigger low right away + bio_put(M_UART_GLITCH_TRG, 0); + + // set up timer + ticker_init(); + + return (true); +} + +void teardown_hardware() { + PRINT_INFO("glitch::Entering teardown_hardware()\r\n"); + bio_put(M_UART_RTS, 1); + + system_bio_update_purpose_and_label(false, M_UART_GLITCH_TRG, BP_PIN_MODE, 0); + system_bio_update_purpose_and_label(false, M_UART_GLITCH_RDY, BP_PIN_MODE, 0); + + // kill the timer + ticker_kill(); +} + +void uart_glitch_handler(struct command_result* res) { + if (ui_help_show(res->help_flag, usage, count_of(usage), &options[0], count_of(options))) { + return; + } + + if (!uart_glitch_setup()) { + printf("%s%s%s\r\n", ui_term_color_error(), GET_T(T_UART_GLITCH_SETUP_ERR), ui_term_color_reset()); + return; + } + + if (!ui_help_check_vout_vref()) { + return; + } + + bool toolbar_state = system_config.terminal_ansi_statusbar_pause; + bool pause_toolbar = !cmdln_args_find_flag('t' | 0x20); + if (pause_toolbar) { + system_config.terminal_ansi_statusbar_pause = true; + } + + // set up and enable the two hardware pins, start the PIO program + if (!setup_hardware()) + { + return; + } + + printf("\r\n%sHardware setup!%s\r\n", ui_term_color_info(), ui_term_color_reset()); + + printf("\r\n%s%s%s\r\n", ui_term_color_notice(), GET_T(T_HELP_UART_GLITCH_EXIT), ui_term_color_reset()); + + bool glitched = false; + bool tool_timeout = false; + bool cancelled = false; + bool done = false; + bool found = false; + uint32_t tries = 0; + char c; + char trigger_char = (char)uart_glitch_config.glitch_trg; + char fail_resp_char = (char)uart_glitch_config.fail_resp; + char resp_string[40]; + size_t resp_count; + uint32_t tick_start = 0; + uint32_t glitch_min_time = uart_glitch_config.glitch_delay - uart_glitch_config.glitch_wander; + uint32_t glitch_max_time = uart_glitch_config.glitch_delay + uart_glitch_config.glitch_wander; + uint32_t this_glitch_time = glitch_min_time; + + // The main glitch loop starts here + // keep going until we either: + // + succeed in glitching the device + // + user presses the BP button + // + we exceeded the max number of tries + // + glitch hardware is not ready for more than 1 second (input B01) + // Basic logic flow: + // + wait until the device ready input is high + // + serial out the glitch trigger character + // + wait for some response + // + parse that response - if it starts with the "normal bad + // password character" then assume glitch failed + // + increment/test the max retries count + // + wait for the backoff period before retrying + while (!glitched && !cancelled && !done && !tool_timeout) { + // check for external device ready; allow BP button to + // exit + tick_start = get_ticks(); + while (!bio_get(M_UART_GLITCH_RDY) && !cancelled && !tool_timeout) { + if (button_get(0)) { + cancelled = true; + break; + } + + if (get_ticks() - tick_start > 1000) { + tool_timeout = true; + } + } + + if (tool_timeout) { + break; + } + + // serial out the trigger character + PRINT_DEBUG("glitch::UART-ing char\r\n"); + uart_putc_raw(M_UART_PORT, trigger_char); + + // delay before turning on the output. Remember! The + // timer is starting right after we stuff the character + // into the buffer, not after it's actually sent + busy_wait_us(this_glitch_time); + bio_put(M_UART_GLITCH_TRG, 1); + + // wait for a char to be RX'd. Allow the button + // to break us out, if necessary + while (!uart_is_readable(M_UART_PORT) && !cancelled) { + if (button_get(0)) { + cancelled = true; + } + } + + memset(resp_string, 0, 20); + resp_count = 0; + + // start parsing the response from the device being glitched. + // Ignore return & linefeed chars until we get the first + // "real" character. If that character is not the "normally + // expected bad password character", then we consider the + // glitch successful! + tick_start = get_ticks(); + while (uart_is_readable(M_UART_PORT) && !cancelled && ((get_ticks() - tick_start) < 50)) { + c = uart_getc(M_UART_PORT); + + if (c != '\r' && c != '\n') { + resp_string[resp_count++] = c; + if (resp_count >= 19) { + break; + } + } + // short delay to wait for next character + busy_wait_us_32(100); + } + bio_put(M_UART_GLITCH_TRG, 0); + + printf("Attempt %d at %dus RX: %s\r\n", tries + 1, this_glitch_time, resp_string); + + // parse through the response. if our "normal bad password response" + // character is present, then we didn't glitch :/ + found = false; + for (size_t ii = 0; ii < strlen(resp_string); ++ii) { + if (resp_string[ii] == uart_glitch_config.fail_resp) { + found = true; + } + } + + if (!found) { + glitched = true; + break; + } + + // exit when button pressed. + if (button_get(0)) { + cancelled = true; + break; + } + + // increment glitch delay time. If we hit max, then + // reset to min and increment glitch count + if (++this_glitch_time > glitch_max_time) { + this_glitch_time = glitch_min_time; + + if (++tries >= uart_glitch_config.retry_count) { + done = true; + } + } + + // backoff wait time between cycles + busy_wait_ms(uart_glitch_config.glitch_recycle); + + // clear the rx buffer for next try + while (uart_is_readable(M_UART_PORT)) { + c = uart_getc(M_UART_PORT); + } + } + + // why did we break out of the glitch loop? + if (glitched) { + printf("%s%s%s\r\n", ui_term_color_notice(), GET_T(T_UART_GLITCH_GLITCHED), ui_term_color_reset()); + } else if (tool_timeout) { + printf("%s%s%s\r\n", ui_term_color_error(), GET_T(T_UART_TOOL_TIMEOUT), ui_term_color_reset()); + } else if (cancelled) { + printf("%s%s%s\r\n", ui_term_color_notice(), GET_T(T_UART_GLITCH_CANCELLED), ui_term_color_reset()); + } else if (done) { + printf("%s%s%s\r\n", ui_term_color_notice(), GET_T(T_UART_GLITCH_DONE), ui_term_color_reset()); + } else { + printf("%s%s%s\r\n", ui_term_color_error(), GET_T(T_UART_GLITCH_UNKNOWN), ui_term_color_reset()); + } + + // we're done, release the two hardware pins and PIO program + teardown_hardware(); + + if (pause_toolbar) { + system_config.terminal_ansi_statusbar_pause = toolbar_state; + } +} \ No newline at end of file diff --git a/src/commands/uart/glitch.h b/src/commands/uart/glitch.h new file mode 100644 index 00000000..bbf4d830 --- /dev/null +++ b/src/commands/uart/glitch.h @@ -0,0 +1,4 @@ +#ifndef UART_GLITCH +void uart_glitch_handler(struct command_result* res); +#define UART_GLITCH +#endif // UART_GLITCH \ No newline at end of file diff --git a/src/mode/hwuart.c b/src/mode/hwuart.c index 635d7e60..a4374b2c 100644 --- a/src/mode/hwuart.c +++ b/src/mode/hwuart.c @@ -18,6 +18,7 @@ #include "commands/uart/nmea.h" #include "commands/uart/bridge.h" #include "commands/uart/monitor.h" +#include "commands/uart/glitch.h" static struct _uart_mode_config mode_config; static struct command_attributes periodic_attributes; @@ -39,6 +40,11 @@ const struct _mode_command_struct hwuart_commands[] = { .description_text=T_UART_CMD_TEST, .supress_fala_capture=false }, + { .command="glitch", + .func=&uart_glitch_handler, + .description_text=T_HELP_UART_GLITCH, + .supress_fala_capture=false + }, }; const uint32_t hwuart_commands_count = count_of(hwuart_commands); diff --git a/src/pirate.h b/src/pirate.h index c4fc3ed3..a2057e78 100644 --- a/src/pirate.h +++ b/src/pirate.h @@ -116,6 +116,8 @@ void spi_busy_wait_internal(bool enable, const char *file, int line); // UART settings #define M_UART_PORT uart0 +#define M_UART_GLITCH_TRG BIO0 +#define M_UART_GLITCH_RDY BIO1 #define M_UART_TX BIO4 #define M_UART_RX BIO5 #define M_UART_CTS BIO6 diff --git a/src/translation/base.c b/src/translation/base.c index 5252d3f1..1ae879d2 100644 --- a/src/translation/base.c +++ b/src/translation/base.c @@ -98,12 +98,6 @@ void translation_set(language_idx_t language_idx) { return; } -const char* get_current_language_name(void) { - return get_language_name(current_language); -} -language_idx_t get_current_language_idx(void) { - return current_language; -} const char* get_language_name(language_idx_t language_idx) { if (language_idx == language_idx_en_us) { return GET_T(T_CONFIG_LANGUAGE_ENGLISH); @@ -118,6 +112,13 @@ const char* get_language_name(language_idx_t language_idx) { } } +const char* get_current_language_name(void) { + return get_language_name(current_language); +} +language_idx_t get_current_language_idx(void) { + return current_language; +} + const char* GET_T(enum T_translations index) { const char* result = NULL; if (index < T_LAST_ITEM_ALWAYS_AT_THE_END) { diff --git a/src/translation/base.h b/src/translation/base.h index 9cd1b152..eed8b9d3 100644 --- a/src/translation/base.h +++ b/src/translation/base.h @@ -1,493 +1,525 @@ -#ifndef _TRANSLATION_BASE -#define _TRANSLATION_BASE - -typedef enum _language_idx_t { // these are based on IETF codes for the translation - language_idx_en_us, - language_idx_pl_pl, - language_idx_bs_latn_ba, - language_idx_it_it, - // language_idx_zh_cmn_cn, - - - COUNT_OF_LANGUAGE_IDX, // leave this as the final enum value -} language_idx_t; - -enum T_translations{ - T_ON=0, - T_OFF, - T_GND, - T_INPUT, - T_OUTPUT, - T_EXIT, - T_LOADED, - T_SAVED, - T_HZ, - T_KHZ, - T_MHZ, - T_SPEED, - T_WARN_VOUT_VREF_LOW, - T_USE_PREVIOUS_SETTINGS, - T_MODE_ERROR_NO_EFFECT, - T_MODE_ERROR_NO_EFFECT_HIZ, - T_MODE_NO_HELP_AVAILABLE, - T_PRESS_ANY_KEY_TO_EXIT, - T_PRESS_ANY_KEY, - T_PRESS_BUTTON, - T_PRESS_X_TO_EXIT, - T_MODE_MODE_SELECTION, - T_MODE_MODE, - T_MODE_NUMBER_DISPLAY_FORMAT, - T_MODE_INVALID_OPTION, - T_MODE_CHOOSE_AVAILABLE_PIN, - T_MODE_ALL_PINS_IN_USE, - T_MODE_PULLUP_RESISTORS, - T_MODE_POWER_SUPPLY, - T_MODE_DISABLED, - T_MODE_DISPLAY, - T_MODE_DISPLAY_SELECTION, - T_MODE_ENABLED, - T_MODE_BITORDER, - T_MODE_BITORDER_MSB, - T_MODE_BITORDER_LSB, - T_MODE_DELAY, - T_MODE_US, - T_MODE_MS, - T_MODE_ADC_VOLTAGE, - T_MODE_ERROR_PARSING_MACRO, - T_MODE_ERROR_NO_MACROS_AVAILABLE, - T_MODE_ERROR_MACRO_NOT_DEFINED, - T_MODE_TICK_CLOCK, - T_MODE_SET_CLK, - T_MODE_SET_DAT, - T_MODE_READ_DAT, - T_MODE_NO_VOUT_VREF_ERROR, - T_MODE_NO_VOUT_VREF_HINT, - T_MODE_NO_PULLUP_ERROR, - T_MODE_NO_PULLUP_HINT, - T_MODE_PWM_GENERATE_FREQUENCY, - T_MODE_FREQ_MEASURE_FREQUENCY, - T_MODE_FREQ_FREQUENCY, - T_MODE_FREQ_DUTY_CYCLE, - T_PSU_DAC_ERROR, - T_PSU_CURRENT_LIMIT_ERROR, - T_PSU_SHORT_ERROR, - T_PSU_ALREADY_DISABLED_ERROR, - T_SYNTAX_EXCEEDS_MAX_SLOTS, - T_HWSPI_SPEED_MENU, - T_HWSPI_SPEED_MENU_1, - T_HWSPI_SPEED_PROMPT, - T_HWSPI_BITS_MENU, - T_HWSPI_BITS_MENU_1, - T_HWSPI_BITS_PROMPT, - T_HWSPI_CLOCK_POLARITY_MENU, - T_HWSPI_CLOCK_POLARITY_MENU_1, - T_HWSPI_CLOCK_POLARITY_MENU_2, - T_HWSPI_CLOCK_POLARITY_PROMPT, - T_HWSPI_CLOCK_PHASE_MENU, - T_HWSPI_CLOCK_PHASE_MENU_1, - T_HWSPI_CLOCK_PHASE_MENU_2, - T_HWSPI_CLOCK_PHASE_PROMPT, - T_HWSPI_CS_IDLE_MENU, - T_HWSPI_CS_IDLE_MENU_1, - T_HWSPI_CS_IDLE_MENU_2, - T_HWSPI_CS_IDLE_PROMPT, - T_HWSPI_ACTUAL_SPEED_KHZ, - T_HWSPI_CS_SELECT, - T_HWSPI_CS_DESELECT, - T_UART_SPEED_MENU, - T_UART_SPEED_MENU_1, - T_UART_SPEED_PROMPT, - T_UART_PARITY_MENU, - T_UART_PARITY_MENU_1, - T_UART_PARITY_MENU_2, - T_UART_PARITY_MENU_3, - T_UART_PARITY_PROMPT, - T_UART_DATA_BITS_MENU, - T_UART_DATA_BITS_MENU_1, - T_UART_DATA_BITS_PROMPT, - T_UART_STOP_BITS_MENU, - T_UART_STOP_BITS_MENU_1, - T_UART_STOP_BITS_MENU_2, - T_UART_STOP_BITS_PROMPT, - T_UART_BLOCKING_MENU, - T_UART_BLOCKING_MENU_1, - T_UART_BLOCKING_MENU_2, - T_UART_BLOCKING_PROMPT, - T_UART_FLOW_CONTROL_MENU, - T_UART_FLOW_CONTROL_MENU_1, - T_UART_FLOW_CONTROL_MENU_2, - T_UART_FLOW_CONTROL_PROMPT, - T_UART_INVERT_MENU, - T_UART_INVERT_MENU_1, - T_UART_INVERT_MENU_2, - T_UART_INVERT_PROMPT, - T_UART_ACTUAL_SPEED_BAUD, - T_UART_BAUD, - T_UART_OPEN, - T_UART_OPEN_WITH_READ, - T_UART_CLOSE, - T_UART_NO_DATA_READ, - T_UART_NO_DATA_TIMEOUT, - T_HWI2C_SPEED_MENU, - T_HWI2C_SPEED_MENU_1, - T_HWI2C_SPEED_PROMPT, - T_HWI2C_DATA_BITS_MENU, - T_HWI2C_DATA_BITS_MENU_1, - T_HWI2C_DATA_BITS_MENU_2, - T_HWI2C_DATA_BITS_PROMPT, - T_HWI2C_CLOCK_STRETCH_MENU, - T_HWI2C_CLOCK_STRETCH_PROMPT, - T_HWI2C_START, - T_HWI2C_REPEATED_START, - T_HWI2C_STOP, - T_HWI2C_ACK, - T_HWI2C_NACK, - T_HWI2C_NO_PULLUP_DETECTED, - T_HWI2C_NO_VOUT_DETECTED, - T_HWI2C_TIMEOUT, - T_HWI2C_I2C_ERROR, - T_HW2WIRE_SPEED_MENU, - T_HW2WIRE_RST_LOW, - T_HW2WIRE_RST_HIGH, - T_HW3WIRE_SPEED_MENU_1, - T_HWLED_DEVICE_MENU, - T_HWLED_DEVICE_MENU_1, - T_HWLED_DEVICE_MENU_2, - T_HWLED_DEVICE_MENU_3, - T_HWLED_DEVICE_PROMPT, - T_HWLED_NUM_LEDS_MENU, - T_HWLED_NUM_LEDS_MENU_1, - T_HWLED_NUM_LEDS_PROMPT, - T_HWLED_RESET, - T_HWLED_FRAME_START, - T_HWLED_FRAME_STOP, - T_HW1WIRE_RESET, - T_HW1WIRE_PRESENCE_DETECT, - T_HW1WIRE_NO_DEVICE, - T_IR_RX_SENSOR_MENU, - T_IR_RX_SENSOR_MENU_LEARNER, - T_IR_RX_SENSOR_MENU_BARRIER, - T_IR_RX_SENSOR_MENU_38K_DEMOD, - T_IR_RX_SENSOR_MENU_56K_DEMOD, - T_IR_TX_SPEED_MENU, - T_IR_TX_SPEED_MENU_1, - T_IR_TX_SPEED_PROMPT, - T_IR_PROTOCOL_MENU, - T_IR_PROTOCOL_MENU_RC5, - T_IR_PROTOCOL_MENU_NEC, - T_CMDLN_INVALID_COMMAND, - T_CMDLN_NO_HELP, - T_CMDLN_LS, - T_CMDLN_CD, - T_CMDLN_MKDIR, - T_CMDLN_RM, - T_CMDLN_CAT, - T_CMDLN_MODE, - T_CMDLN_PSU_EN, - T_CMDLN_RESET, - T_CMDLN_BOOTLOAD, - T_CMDLN_INT_FORMAT, - T_CMDLN_INT_INVERSE, - T_CMDLN_HELP, - T_CMDLN_CONFIG_MENU, - T_CMDLN_FREQ_ONE, - T_CMDLN_FREQ_CONT, - T_CMDLN_PWM_CONFIG, - T_CMDLN_PWM_DIS, - T_CMDLN_HELP_MODE, - T_CMDLN_HELP_DISPLAY, - T_CMDLN_INFO, - T_CMDLN_BITORDER_MSB, - T_CMDLN_BITORDER_LSB, - T_CMDLN_DISPLAY_FORMAT, - T_CMDLN_PULLUPS_EN, - T_CMDLN_PULLUPS_DIS, - T_CMDLN_PSU_DIS, - T_CMDLN_ADC_CONT, - T_CMDLN_ADC_ONE, - T_CMDLN_SELFTEST, - T_CMDLN_AUX_IN, - T_CMDLN_AUX_LOW, - T_CMDLN_AUX_HIGH, - T_CMDLN_DUMP, - T_CMDLN_LOAD, - T_CMDLN_DISPLAY, - T_CMDLN_LOGIC, - T_CMDLN_HEX, - T_HELP_TITLE, - T_HELP_GENERAL_COMMANDS, - T_HELP_BUS_SYNTAX, - T_HELP_DISK_COMMANDS, - T_HELP_BLANK, - T_HELP_SECTION_IO, - T_HELP_SECTION_CAPTURE, - T_HELP_SECTION_CONFIGURE, - T_HELP_SECTION_SYSTEM, - T_HELP_SECTION_FILES, - T_HELP_SECTION_PROGRAMS, - T_HELP_SECTION_MODE, - T_HELP_SECTION_SYNTAX, - T_HELP_SECTION_HELP, - T_HELP_GREATER_THAN, - T_HELP_SYNTAX_ADC, - T_HELP_CMD_LS, - T_HELP_CMD_CD, - T_HELP_CMD_MKDIR, - T_HELP_CMD_RM, - T_HELP_CMD_PAUSE, - T_HELP_CMD_FORMAT, - T_HELP_CMD_CAT, - T_HELP_CMD_HEX, - T_HELP_CAPTURE_SCOPE, - T_HELP_CAPTURE_LA, - T_HELP_CMD_FLASH, - T_HELP_CMD_LABEL, - T_HELP_CMD_IMAGE, - T_HELP_CMD_DUMP, - T_HELP_1_2, - T_HELP_1_3, - T_HELP_1_4, - T_HELP_1_5, - T_HELP_1_6, - T_HELP_1_7, - T_HELP_COMMAND_AUX, - T_HELP_COMMAND_DISPLAY, - T_HELP_1_9, - T_HELP_1_22, - T_HELP_1_10, - T_HELP_1_11, - T_HELP_1_23, - T_HELP_1_12, - T_HELP_HELP_GENERAL, - T_HELP_HELP_DISPLAY, - T_HELP_HELP_COMMAND, - T_HELP_1_14, - T_HELP_1_15, - T_HELP_1_16, - T_HELP_1_17, - T_HELP_1_18, - T_HELP_1_19, - T_HELP_1_20, - T_HELP_1_21, - T_HELP_2_1, - T_HELP_2_3, - T_HELP_2_4, - T_HELP_2_7, - T_HELP_2_8, - T_HELP_2_9, - T_HELP_2_10, - T_HELP_2_11, - T_HELP_SYN_CLOCK_HIGH, - T_HELP_SYN_CLOCK_LOW, - T_HELP_SYN_CLOCK_TICK, - T_HELP_SYN_DATA_HIGH, - T_HELP_SYN_DATA_LOW, - T_HELP_SYN_DATA_READ, - T_HELP_2_18, - T_HELP_2_19, - T_HELP_2_20, - T_HELP_2_21, - T_HELP_2_22, - T_HELP_HINT, - T_HELP_FLASH, - T_HELP_FLASH_ERASE, - T_HELP_FLASH_WRITE, - T_HELP_FLASH_READ, - T_HELP_FLASH_VERIFY, - T_HELP_FLASH_TEST, - T_HELP_FLASH_PROBE, - T_HELP_FLASH_INIT, - T_HELP_FLASH_FILE_FLAG, - T_HELP_FLASH_ERASE_FLAG, - T_HELP_FLASH_VERIFY_FLAG, - T_INFO_FIRMWARE, - T_INFO_BOOTLOADER, - T_INFO_WITH, - T_INFO_RAM, - T_INFO_FLASH, - T_INFO_SN, - T_INFO_WEBSITE, - T_INFO_TF_CARD, - T_INFO_FILE_SYSTEM, - T_NOT_DETECTED, - T_INFO_AVAILABLE_MODES, - T_INFO_CURRENT_MODE, - T_INFO_POWER_SUPPLY, - T_INFO_CURRENT_LIMIT, - T_INFO_PULLUP_RESISTORS, - T_INFO_FREQUENCY_GENERATORS, - T_INFO_DISPLAY_FORMAT, - T_INFO_DATA_FORMAT, - T_INFO_BITS, - T_INFO_BITORDER, - T_CONFIG_FILE, - T_CONFIG_CONFIGURATION_OPTIONS, - T_CONFIG_LANGUAGE, - T_CONFIG_ANSI_COLOR_MODE, - T_CONFIG_ANSI_COLOR_FULLCOLOR, - T_CONFIG_ANSI_COLOR_256, - T_CONFIG_ANSI_TOOLBAR_MODE, - T_CONFIG_LANGUAGE_ENGLISH, - T_CONFIG_LANGUAGE_CHINESE, - T_CONFIG_LANGUAGE_POLISH, - T_CONFIG_LANGUAGE_BOSNIAN, - T_CONFIG_LANGUAGE_ITALIAN, - T_CONFIG_DISABLE, - T_CONFIG_ENABLE, - T_CONFIG_SCREENSAVER, - T_CONFIG_SCREENSAVER_5, - T_CONFIG_SCREENSAVER_10, - T_CONFIG_SCREENSAVER_15, - T_CONFIG_LEDS_EFFECT, - T_CONFIG_LEDS_EFFECT_SOLID, - T_CONFIG_LEDS_EFFECT_ANGLEWIPE, - T_CONFIG_LEDS_EFFECT_CENTERWIPE, - T_CONFIG_LEDS_EFFECT_CLOCKWISEWIPE, - T_CONFIG_LEDS_EFFECT_TOPDOWNWIPE, - T_CONFIG_LEDS_EFFECT_SCANNER, - T_CONFIG_LEDS_EFFECT_GENTLE_GLOW, - T_CONFIG_LEDS_EFFECT_CYCLE, - T_CONFIG_LEDS_COLOR, - T_CONFIG_LEDS_COLOR_RAINBOW, - T_CONFIG_LEDS_COLOR_RED, - T_CONFIG_LEDS_COLOR_ORANGE, - T_CONFIG_LEDS_COLOR_YELLOW, - T_CONFIG_LEDS_COLOR_GREEN, - T_CONFIG_LEDS_COLOR_BLUE, - T_CONFIG_LEDS_COLOR_PURPLE, - T_CONFIG_LEDS_COLOR_PINK, - T_CONFIG_LEDS_COLOR_WHITE, - T_CONFIG_LEDS_BRIGHTNESS, - T_CONFIG_LEDS_BRIGHTNESS_10, - T_CONFIG_LEDS_BRIGHTNESS_20, - T_CONFIG_LEDS_BRIGHTNESS_30, - T_CONFIG_LEDS_BRIGHTNESS_40, - T_CONFIG_LEDS_BRIGHTNESS_50, - T_CONFIG_LEDS_BRIGHTNESS_100, - T_CONFIG_BINMODE_SELECT, - T_HELP_DUMMY_COMMANDS, - T_HELP_DUMMY_INIT, - T_HELP_DUMMY_TEST, - T_HELP_DUMMY_FLAGS, - T_HELP_DUMMY_B_FLAG, - T_HELP_DUMMY_I_FLAG, - T_HELP_DUMMY_FILE_FLAG, - T_HELP_SLE4442, - T_HELP_SLE4442_INIT, - T_HELP_SLE4442_DUMP, - T_HELP_SLE4442_UNLOCK, - T_HELP_SLE4442_WRITE, - T_HELP_SLE4442_ERASE, - T_HELP_SLE4442_PSC, - T_HELP_SLE4442_ADDRESS_FLAG, - T_HELP_SLE4442_VALUE_FLAG, - T_HELP_SLE4442_CURRENT_PSC_FLAG, - T_HELP_SLE4442_NEW_PSC_FLAG, - T_HELP_SLE4442_FILE_FLAG, - T_HELP_GCMD_W, - T_HELP_GCMD_W_DISABLE, - T_HELP_GCMD_W_ENABLE, - T_HELP_GCMD_W_VOLTS, - T_HELP_GCMD_W_CURRENT_LIMIT, - T_HELP_GCMD_P, - T_HELP_HELP, - T_HELP_SYS_COMMAND, - T_HELP_SYS_DISPLAY, - T_HELP_SYS_MODE, - T_HELP_SYS_HELP, - T_HELP_GCMD_SELFTEST, - T_HELP_GCMD_SELFTEST_CMD, - T_HELP_GCMD_SELFTEST_H_FLAG, - T_HELP_AUXIO, - T_HELP_AUXIO_LOW, - T_HELP_AUXIO_HIGH, - T_HELP_AUXIO_INPUT, - T_HELP_AUXIO_IO, - T_HELP_DISK_HEX, - T_HELP_DISK_HEX_FILE, - T_HELP_DISK_HEX_ADDR, - T_HELP_DISK_HEX_ASCII, - T_HELP_DISK_HEX_SIZE, - T_HELP_DISK_HEX_OFF, - T_HELP_DISK_HEX_PAGER_OFF, - T_HELP_DISK_CAT, - T_HELP_DISK_CAT_FILE, - T_HELP_DISK_MKDIR, - T_HELP_DISK_MKDIR_DIR, - T_HELP_DISK_CD, - T_HELP_DISK_CD_DIR, - T_HELP_DISK_RM, - T_HELP_DISK_RM_FILE, - T_HELP_DISK_RM_DIR, - T_HELP_DISK_LS, - T_HELP_DISK_LS_DIR, - T_HELP_DISK_FORMAT, - T_HELP_DISK_FORMAT_CMD, - T_HELP_DISK_LABEL, - T_HELP_DISK_LABEL_GET, - T_HELP_DISK_LABEL_SET, - T_HELP_VADC, - T_HELP_VADC_SINGLE, - T_HELP_VADC_CONTINUOUS, - T_HELP_VADC_IO, - T_HELP_I2C_SCAN, - T_HELP_I2C_SCAN_VERBOSE, - T_HELP_FLAG, - T_HELP_I2C_SI7021, - T_HELP_I2C_MS5611, - T_HELP_I2C_TSL2561, - T_HELP_1WIRE_SCAN, - T_HELP_1WIRE_DS18B20, - T_HELP_UART_BRIDGE, - T_HELP_UART_BRIDGE_EXIT, - T_HELP_UART_BRIDGE_TOOLBAR, - T_HELP_UART_BRIDGE_SUPPRESS_LOCAL_ECHO, - T_HELP_UART_NMEA, - T_HELP_SECTION_SCRIPT, - T_HELP_CMD_SCRIPT, - T_HELP_CMD_BUTTON, - T_HELP_CMD_MACRO, - T_HELP_CMD_TUTORIAL, - T_HELP_CMD_PAUSE_KEY, - T_HELP_CMD_PAUSE_BUTTON, - T_HELP_CMD_PAUSE_EXIT, - T_HELP_BUTTON, - T_HELP_BUTTON_SHORT, - T_HELP_BUTTON_LONG, - T_HELP_BUTTON_FILE, - T_HELP_BUTTON_HIDE, - T_HELP_BUTTON_EXIT, - T_HELP_LOGIC, - T_HELP_LOGIC_START, - T_HELP_LOGIC_STOP, - T_HELP_LOGIC_HIDE, - T_HELP_LOGIC_SHOW, - T_HELP_LOGIC_NAV, - T_HELP_LOGIC_INFO, - T_HELP_LOGIC_FREQUENCY, - T_HELP_LOGIC_OVERSAMPLE, - T_HELP_LOGIC_DEBUG, - T_HELP_LOGIC_SAMPLES, - T_HELP_LOGIC_TRIGGER_PIN, - T_HELP_LOGIC_TRIGGER_LEVEL, - T_HELP_LOGIC_LOW_CHAR, - T_HELP_LOGIC_HIGH_CHAR, - T_HELP_CMD_CLS, - T_HELP_SECTION_TOOLS, - T_HELP_CMD_LOGIC, - T_HELP_CMD_SMPS, - T_INFRARED_CMD_TEST, - T_UART_CMD_TEST, - T_SPI_CMD_SNIFF, - - T_LAST_ITEM_ALWAYS_AT_THE_END //LEAVE THIS ITEM AT THE END!!! It helps the compiler report errors if there are missing translations -}; - -const char * GET_T(enum T_translations index); -void translation_init(void); -void translation_set(language_idx_t language); -const char* get_current_language_name(void); -language_idx_t get_current_language_idx(void); -const char* get_language_name(language_idx_t language_idx); - +#ifndef _TRANSLATION_BASE +#define _TRANSLATION_BASE + +// WARNING -- DO NOT DIRECTLY EDIT `translation/base.h` -- WARNING +// =============================================================== +// The `base.h` header file is auto-generated based +// on `base.ht` and `en-us.h` by the `json2h.py` script. + +typedef enum _language_idx_t { // these are based on IETF codes for the translation + language_idx_en_us, + language_idx_pl_pl, + language_idx_bs_latn_ba, + language_idx_it_it, + // language_idx_zh_cmn_cn, + + + COUNT_OF_LANGUAGE_IDX, // leave this as the final enum value +} language_idx_t; + +enum T_translations{ + T_ON=0, + T_OFF, + T_GND, + T_INPUT, + T_OUTPUT, + T_EXIT, + T_LOADED, + T_SAVED, + T_HZ, + T_KHZ, + T_MHZ, + T_SPEED, + T_WARN_VOUT_VREF_LOW, + T_USE_PREVIOUS_SETTINGS, + T_MODE_ERROR_NO_EFFECT, + T_MODE_ERROR_NO_EFFECT_HIZ, + T_MODE_NO_HELP_AVAILABLE, + T_PRESS_ANY_KEY_TO_EXIT, + T_PRESS_ANY_KEY, + T_PRESS_BUTTON, + T_PRESS_X_TO_EXIT, + T_MODE_MODE_SELECTION, + T_MODE_MODE, + T_MODE_NUMBER_DISPLAY_FORMAT, + T_MODE_INVALID_OPTION, + T_MODE_CHOOSE_AVAILABLE_PIN, + T_MODE_ALL_PINS_IN_USE, + T_MODE_PULLUP_RESISTORS, + T_MODE_POWER_SUPPLY, + T_MODE_DISABLED, + T_MODE_DISPLAY, + T_MODE_DISPLAY_SELECTION, + T_MODE_ENABLED, + T_MODE_BITORDER, + T_MODE_BITORDER_MSB, + T_MODE_BITORDER_LSB, + T_MODE_DELAY, + T_MODE_US, + T_MODE_MS, + T_MODE_ADC_VOLTAGE, + T_MODE_ERROR_PARSING_MACRO, + T_MODE_ERROR_NO_MACROS_AVAILABLE, + T_MODE_ERROR_MACRO_NOT_DEFINED, + T_MODE_TICK_CLOCK, + T_MODE_SET_CLK, + T_MODE_SET_DAT, + T_MODE_READ_DAT, + T_MODE_NO_VOUT_VREF_ERROR, + T_MODE_NO_VOUT_VREF_HINT, + T_MODE_NO_PULLUP_ERROR, + T_MODE_NO_PULLUP_HINT, + T_MODE_PWM_GENERATE_FREQUENCY, + T_MODE_FREQ_MEASURE_FREQUENCY, + T_MODE_FREQ_FREQUENCY, + T_MODE_FREQ_DUTY_CYCLE, + T_PSU_DAC_ERROR, + T_PSU_CURRENT_LIMIT_ERROR, + T_PSU_SHORT_ERROR, + T_PSU_ALREADY_DISABLED_ERROR, + T_SYNTAX_EXCEEDS_MAX_SLOTS, + T_HWSPI_SPEED_MENU, + T_HWSPI_SPEED_MENU_1, + T_HWSPI_SPEED_PROMPT, + T_HWSPI_BITS_MENU, + T_HWSPI_BITS_MENU_1, + T_HWSPI_BITS_PROMPT, + T_HWSPI_CLOCK_POLARITY_MENU, + T_HWSPI_CLOCK_POLARITY_MENU_1, + T_HWSPI_CLOCK_POLARITY_MENU_2, + T_HWSPI_CLOCK_POLARITY_PROMPT, + T_HWSPI_CLOCK_PHASE_MENU, + T_HWSPI_CLOCK_PHASE_MENU_1, + T_HWSPI_CLOCK_PHASE_MENU_2, + T_HWSPI_CLOCK_PHASE_PROMPT, + T_HWSPI_CS_IDLE_MENU, + T_HWSPI_CS_IDLE_MENU_1, + T_HWSPI_CS_IDLE_MENU_2, + T_HWSPI_CS_IDLE_PROMPT, + T_HWSPI_ACTUAL_SPEED_KHZ, + T_HWSPI_CS_SELECT, + T_HWSPI_CS_DESELECT, + T_UART_SPEED_MENU, + T_UART_SPEED_MENU_1, + T_UART_SPEED_PROMPT, + T_UART_PARITY_MENU, + T_UART_PARITY_MENU_1, + T_UART_PARITY_MENU_2, + T_UART_PARITY_MENU_3, + T_UART_PARITY_PROMPT, + T_UART_DATA_BITS_MENU, + T_UART_DATA_BITS_MENU_1, + T_UART_DATA_BITS_PROMPT, + T_UART_STOP_BITS_MENU, + T_UART_STOP_BITS_MENU_1, + T_UART_STOP_BITS_MENU_2, + T_UART_STOP_BITS_PROMPT, + T_UART_BLOCKING_MENU, + T_UART_BLOCKING_MENU_1, + T_UART_BLOCKING_MENU_2, + T_UART_BLOCKING_PROMPT, + T_UART_FLOW_CONTROL_MENU, + T_UART_FLOW_CONTROL_MENU_1, + T_UART_FLOW_CONTROL_MENU_2, + T_UART_FLOW_CONTROL_PROMPT, + T_UART_INVERT_MENU, + T_UART_INVERT_MENU_1, + T_UART_INVERT_MENU_2, + T_UART_INVERT_PROMPT, + T_UART_GLITCH_TRG_MENU, + T_UART_GLITCH_TRG_MENU_1, + T_UART_GLITCH_TRG_PROMPT, + T_UART_GLITCH_DLY_MENU, + T_UART_GLITCH_DLY_MENU_1, + T_UART_GLITCH_DLY_PROMPT, + T_UART_GLITCH_VRY_MENU, + T_UART_GLITCH_VRY_MENU_1, + T_UART_GLITCH_VRY_PROMPT, + T_UART_GLITCH_CYC_MENU, + T_UART_GLITCH_CYC_MENU_1, + T_UART_GLITCH_CYC_PROMPT, + T_UART_GLITCH_FAIL_MENU, + T_UART_GLITCH_FAIL_MENU_1, + T_UART_GLITCH_FAIL_PROMPT, + T_UART_GLITCH_CNT_MENU, + T_UART_GLITCH_CNT_MENU_1, + T_UART_GLITCH_CNT_PROMPT, + T_UART_GLITCH_GLITCHED, + T_UART_GLITCH_CANCELLED, + T_UART_GLITCH_DONE, + T_UART_TOOL_TIMEOUT, + T_UART_GLITCH_UNKNOWN, + T_UART_GLITCH_SETUP_ERR, + T_UART_ACTUAL_SPEED_BAUD, + T_UART_BAUD, + T_UART_OPEN, + T_UART_OPEN_WITH_READ, + T_UART_CLOSE, + T_UART_NO_DATA_READ, + T_UART_NO_DATA_TIMEOUT, + T_HWI2C_SPEED_MENU, + T_HWI2C_SPEED_MENU_1, + T_HWI2C_SPEED_PROMPT, + T_HWI2C_DATA_BITS_MENU, + T_HWI2C_DATA_BITS_MENU_1, + T_HWI2C_DATA_BITS_MENU_2, + T_HWI2C_DATA_BITS_PROMPT, + T_HWI2C_CLOCK_STRETCH_MENU, + T_HWI2C_CLOCK_STRETCH_PROMPT, + T_HWI2C_START, + T_HWI2C_REPEATED_START, + T_HWI2C_STOP, + T_HWI2C_ACK, + T_HWI2C_NACK, + T_HWI2C_NO_PULLUP_DETECTED, + T_HWI2C_NO_VOUT_DETECTED, + T_HWI2C_TIMEOUT, + T_HWI2C_I2C_ERROR, + T_HW2WIRE_SPEED_MENU, + T_HW2WIRE_RST_LOW, + T_HW2WIRE_RST_HIGH, + T_HW3WIRE_SPEED_MENU_1, + T_HWLED_DEVICE_MENU, + T_HWLED_DEVICE_MENU_1, + T_HWLED_DEVICE_MENU_2, + T_HWLED_DEVICE_MENU_3, + T_HWLED_DEVICE_PROMPT, + T_HWLED_NUM_LEDS_MENU, + T_HWLED_NUM_LEDS_MENU_1, + T_HWLED_NUM_LEDS_PROMPT, + T_HWLED_RESET, + T_HWLED_FRAME_START, + T_HWLED_FRAME_STOP, + T_HW1WIRE_RESET, + T_HW1WIRE_PRESENCE_DETECT, + T_HW1WIRE_NO_DEVICE, + T_IR_RX_SENSOR_MENU, + T_IR_RX_SENSOR_MENU_LEARNER, + T_IR_RX_SENSOR_MENU_BARRIER, + T_IR_RX_SENSOR_MENU_38K_DEMOD, + T_IR_RX_SENSOR_MENU_56K_DEMOD, + T_IR_TX_SPEED_MENU, + T_IR_TX_SPEED_MENU_1, + T_IR_TX_SPEED_PROMPT, + T_IR_PROTOCOL_MENU, + T_IR_PROTOCOL_MENU_RC5, + T_IR_PROTOCOL_MENU_NEC, + T_CMDLN_INVALID_COMMAND, + T_CMDLN_NO_HELP, + T_CMDLN_LS, + T_CMDLN_CD, + T_CMDLN_MKDIR, + T_CMDLN_RM, + T_CMDLN_CAT, + T_CMDLN_MODE, + T_CMDLN_PSU_EN, + T_CMDLN_RESET, + T_CMDLN_BOOTLOAD, + T_CMDLN_INT_FORMAT, + T_CMDLN_INT_INVERSE, + T_CMDLN_HELP, + T_CMDLN_CONFIG_MENU, + T_CMDLN_FREQ_ONE, + T_CMDLN_FREQ_CONT, + T_CMDLN_PWM_CONFIG, + T_CMDLN_PWM_DIS, + T_CMDLN_HELP_MODE, + T_CMDLN_HELP_DISPLAY, + T_CMDLN_INFO, + T_CMDLN_BITORDER_MSB, + T_CMDLN_BITORDER_LSB, + T_CMDLN_DISPLAY_FORMAT, + T_CMDLN_PULLUPS_EN, + T_CMDLN_PULLUPS_DIS, + T_CMDLN_PSU_DIS, + T_CMDLN_ADC_CONT, + T_CMDLN_ADC_ONE, + T_CMDLN_SELFTEST, + T_CMDLN_AUX_IN, + T_CMDLN_AUX_LOW, + T_CMDLN_AUX_HIGH, + T_CMDLN_DUMP, + T_CMDLN_LOAD, + T_CMDLN_DISPLAY, + T_CMDLN_LOGIC, + T_CMDLN_HEX, + T_HELP_TITLE, + T_HELP_GENERAL_COMMANDS, + T_HELP_BUS_SYNTAX, + T_HELP_DISK_COMMANDS, + T_HELP_BLANK, + T_HELP_SECTION_IO, + T_HELP_SECTION_CAPTURE, + T_HELP_SECTION_CONFIGURE, + T_HELP_SECTION_SYSTEM, + T_HELP_SECTION_FILES, + T_HELP_SECTION_PROGRAMS, + T_HELP_SECTION_MODE, + T_HELP_SECTION_SYNTAX, + T_HELP_SECTION_HELP, + T_HELP_GREATER_THAN, + T_HELP_SYNTAX_ADC, + T_HELP_CMD_LS, + T_HELP_CMD_CD, + T_HELP_CMD_MKDIR, + T_HELP_CMD_RM, + T_HELP_CMD_PAUSE, + T_HELP_CMD_FORMAT, + T_HELP_CMD_CAT, + T_HELP_CMD_HEX, + T_HELP_CAPTURE_SCOPE, + T_HELP_CAPTURE_LA, + T_HELP_CMD_FLASH, + T_HELP_CMD_LABEL, + T_HELP_CMD_IMAGE, + T_HELP_CMD_DUMP, + T_HELP_1_2, + T_HELP_1_3, + T_HELP_1_4, + T_HELP_1_5, + T_HELP_1_6, + T_HELP_1_7, + T_HELP_COMMAND_AUX, + T_HELP_COMMAND_DISPLAY, + T_HELP_1_9, + T_HELP_1_22, + T_HELP_1_10, + T_HELP_1_11, + T_HELP_1_23, + T_HELP_1_12, + T_HELP_HELP_GENERAL, + T_HELP_HELP_DISPLAY, + T_HELP_HELP_COMMAND, + T_HELP_1_14, + T_HELP_1_15, + T_HELP_1_16, + T_HELP_1_17, + T_HELP_1_18, + T_HELP_1_19, + T_HELP_1_20, + T_HELP_1_21, + T_HELP_2_1, + T_HELP_2_3, + T_HELP_2_4, + T_HELP_2_7, + T_HELP_2_8, + T_HELP_2_9, + T_HELP_2_10, + T_HELP_2_11, + T_HELP_SYN_CLOCK_HIGH, + T_HELP_SYN_CLOCK_LOW, + T_HELP_SYN_CLOCK_TICK, + T_HELP_SYN_DATA_HIGH, + T_HELP_SYN_DATA_LOW, + T_HELP_SYN_DATA_READ, + T_HELP_2_18, + T_HELP_2_19, + T_HELP_2_20, + T_HELP_2_21, + T_HELP_2_22, + T_HELP_HINT, + T_HELP_FLASH, + T_HELP_FLASH_ERASE, + T_HELP_FLASH_WRITE, + T_HELP_FLASH_READ, + T_HELP_FLASH_VERIFY, + T_HELP_FLASH_TEST, + T_HELP_FLASH_PROBE, + T_HELP_FLASH_INIT, + T_HELP_FLASH_FILE_FLAG, + T_HELP_FLASH_ERASE_FLAG, + T_HELP_FLASH_VERIFY_FLAG, + T_INFO_FIRMWARE, + T_INFO_BOOTLOADER, + T_INFO_WITH, + T_INFO_RAM, + T_INFO_FLASH, + T_INFO_SN, + T_INFO_WEBSITE, + T_INFO_TF_CARD, + T_INFO_FILE_SYSTEM, + T_NOT_DETECTED, + T_INFO_AVAILABLE_MODES, + T_INFO_CURRENT_MODE, + T_INFO_POWER_SUPPLY, + T_INFO_CURRENT_LIMIT, + T_INFO_PULLUP_RESISTORS, + T_INFO_FREQUENCY_GENERATORS, + T_INFO_DISPLAY_FORMAT, + T_INFO_DATA_FORMAT, + T_INFO_BITS, + T_INFO_BITORDER, + T_CONFIG_FILE, + T_CONFIG_CONFIGURATION_OPTIONS, + T_CONFIG_LANGUAGE, + T_CONFIG_ANSI_COLOR_MODE, + T_CONFIG_ANSI_COLOR_FULLCOLOR, + T_CONFIG_ANSI_COLOR_256, + T_CONFIG_ANSI_TOOLBAR_MODE, + T_CONFIG_LANGUAGE_ENGLISH, + T_CONFIG_LANGUAGE_CHINESE, + T_CONFIG_LANGUAGE_POLISH, + T_CONFIG_LANGUAGE_BOSNIAN, + T_CONFIG_LANGUAGE_ITALIAN, + T_CONFIG_DISABLE, + T_CONFIG_ENABLE, + T_CONFIG_SCREENSAVER, + T_CONFIG_SCREENSAVER_5, + T_CONFIG_SCREENSAVER_10, + T_CONFIG_SCREENSAVER_15, + T_CONFIG_LEDS_EFFECT, + T_CONFIG_LEDS_EFFECT_SOLID, + T_CONFIG_LEDS_EFFECT_ANGLEWIPE, + T_CONFIG_LEDS_EFFECT_CENTERWIPE, + T_CONFIG_LEDS_EFFECT_CLOCKWISEWIPE, + T_CONFIG_LEDS_EFFECT_TOPDOWNWIPE, + T_CONFIG_LEDS_EFFECT_SCANNER, + T_CONFIG_LEDS_EFFECT_GENTLE_GLOW, + T_CONFIG_LEDS_EFFECT_CYCLE, + T_CONFIG_LEDS_COLOR, + T_CONFIG_LEDS_COLOR_RAINBOW, + T_CONFIG_LEDS_COLOR_RED, + T_CONFIG_LEDS_COLOR_ORANGE, + T_CONFIG_LEDS_COLOR_YELLOW, + T_CONFIG_LEDS_COLOR_GREEN, + T_CONFIG_LEDS_COLOR_BLUE, + T_CONFIG_LEDS_COLOR_PURPLE, + T_CONFIG_LEDS_COLOR_PINK, + T_CONFIG_LEDS_COLOR_WHITE, + T_CONFIG_LEDS_BRIGHTNESS, + T_CONFIG_LEDS_BRIGHTNESS_10, + T_CONFIG_LEDS_BRIGHTNESS_20, + T_CONFIG_LEDS_BRIGHTNESS_30, + T_CONFIG_LEDS_BRIGHTNESS_40, + T_CONFIG_LEDS_BRIGHTNESS_50, + T_CONFIG_LEDS_BRIGHTNESS_100, + T_CONFIG_BINMODE_SELECT, + T_HELP_DUMMY_COMMANDS, + T_HELP_DUMMY_INIT, + T_HELP_DUMMY_TEST, + T_HELP_DUMMY_FLAGS, + T_HELP_DUMMY_B_FLAG, + T_HELP_DUMMY_I_FLAG, + T_HELP_DUMMY_FILE_FLAG, + T_HELP_SLE4442, + T_HELP_SLE4442_INIT, + T_HELP_SLE4442_DUMP, + T_HELP_SLE4442_UNLOCK, + T_HELP_SLE4442_WRITE, + T_HELP_SLE4442_ERASE, + T_HELP_SLE4442_PSC, + T_HELP_SLE4442_ADDRESS_FLAG, + T_HELP_SLE4442_VALUE_FLAG, + T_HELP_SLE4442_CURRENT_PSC_FLAG, + T_HELP_SLE4442_NEW_PSC_FLAG, + T_HELP_SLE4442_FILE_FLAG, + T_HELP_GCMD_W, + T_HELP_GCMD_W_DISABLE, + T_HELP_GCMD_W_ENABLE, + T_HELP_GCMD_W_VOLTS, + T_HELP_GCMD_W_CURRENT_LIMIT, + T_HELP_GCMD_P, + T_HELP_HELP, + T_HELP_SYS_COMMAND, + T_HELP_SYS_DISPLAY, + T_HELP_SYS_MODE, + T_HELP_SYS_HELP, + T_HELP_GCMD_SELFTEST, + T_HELP_GCMD_SELFTEST_CMD, + T_HELP_GCMD_SELFTEST_H_FLAG, + T_HELP_AUXIO, + T_HELP_AUXIO_LOW, + T_HELP_AUXIO_HIGH, + T_HELP_AUXIO_INPUT, + T_HELP_AUXIO_IO, + T_HELP_DISK_HEX, + T_HELP_DISK_HEX_FILE, + T_HELP_DISK_HEX_ADDR, + T_HELP_DISK_HEX_ASCII, + T_HELP_DISK_HEX_SIZE, + T_HELP_DISK_HEX_OFF, + T_HELP_DISK_HEX_PAGER_OFF, + T_HELP_DISK_CAT, + T_HELP_DISK_CAT_FILE, + T_HELP_DISK_MKDIR, + T_HELP_DISK_MKDIR_DIR, + T_HELP_DISK_CD, + T_HELP_DISK_CD_DIR, + T_HELP_DISK_RM, + T_HELP_DISK_RM_FILE, + T_HELP_DISK_RM_DIR, + T_HELP_DISK_LS, + T_HELP_DISK_LS_DIR, + T_HELP_DISK_FORMAT, + T_HELP_DISK_FORMAT_CMD, + T_HELP_DISK_LABEL, + T_HELP_DISK_LABEL_GET, + T_HELP_DISK_LABEL_SET, + T_HELP_VADC, + T_HELP_VADC_SINGLE, + T_HELP_VADC_CONTINUOUS, + T_HELP_VADC_IO, + T_HELP_I2C_SCAN, + T_HELP_I2C_SCAN_VERBOSE, + T_HELP_FLAG, + T_HELP_I2C_SI7021, + T_HELP_I2C_MS5611, + T_HELP_I2C_TSL2561, + T_HELP_1WIRE_SCAN, + T_HELP_1WIRE_DS18B20, + T_HELP_UART_BRIDGE, + T_HELP_UART_BRIDGE_EXIT, + T_HELP_UART_BRIDGE_TOOLBAR, + T_HELP_UART_BRIDGE_SUPPRESS_LOCAL_ECHO, + T_HELP_UART_NMEA, + T_HELP_UART_GLITCH_EXIT, + T_HELP_SECTION_SCRIPT, + T_HELP_CMD_SCRIPT, + T_HELP_CMD_BUTTON, + T_HELP_CMD_MACRO, + T_HELP_CMD_TUTORIAL, + T_HELP_CMD_PAUSE_KEY, + T_HELP_CMD_PAUSE_BUTTON, + T_HELP_CMD_PAUSE_EXIT, + T_HELP_BUTTON, + T_HELP_BUTTON_SHORT, + T_HELP_BUTTON_LONG, + T_HELP_BUTTON_FILE, + T_HELP_BUTTON_HIDE, + T_HELP_BUTTON_EXIT, + T_HELP_LOGIC, + T_HELP_LOGIC_START, + T_HELP_LOGIC_STOP, + T_HELP_LOGIC_HIDE, + T_HELP_LOGIC_SHOW, + T_HELP_LOGIC_NAV, + T_HELP_LOGIC_INFO, + T_HELP_LOGIC_FREQUENCY, + T_HELP_LOGIC_OVERSAMPLE, + T_HELP_LOGIC_DEBUG, + T_HELP_LOGIC_SAMPLES, + T_HELP_LOGIC_TRIGGER_PIN, + T_HELP_LOGIC_TRIGGER_LEVEL, + T_HELP_LOGIC_LOW_CHAR, + T_HELP_LOGIC_HIGH_CHAR, + T_HELP_CMD_CLS, + T_HELP_SECTION_TOOLS, + T_HELP_CMD_LOGIC, + T_HELP_CMD_SMPS, + T_INFRARED_CMD_TEST, + T_UART_CMD_TEST, + T_SPI_CMD_SNIFF, + T_HELP_UART_GLITCH, + T_HELP_UART_GLITCH_CONFIG, + + T_LAST_ITEM_ALWAYS_AT_THE_END //LEAVE THIS ITEM AT THE END!!! It helps the compiler report errors if there are missing translations +}; + +const char * GET_T(enum T_translations index); +void translation_init(void); +void translation_set(language_idx_t language); +const char* get_current_language_name(void); +language_idx_t get_current_language_idx(void); +const char* get_language_name(language_idx_t language_idx); + #endif \ No newline at end of file diff --git a/src/translation/base.ht b/src/translation/base.ht index 72dd2aad..87629de6 100644 --- a/src/translation/base.ht +++ b/src/translation/base.ht @@ -1,6 +1,11 @@ #ifndef _TRANSLATION_BASE #define _TRANSLATION_BASE +// WARNING -- DO NOT DIRECTLY EDIT `translation/base.h` -- WARNING +// =============================================================== +// The `base.h` header file is auto-generated based +// on `base.ht` and `en-us.h` by the `json2h.py` script. + typedef enum _language_idx_t { // these are based on IETF codes for the translation language_idx_en_us, language_idx_pl_pl, diff --git a/src/translation/bs-ba.h b/src/translation/bs-ba.h index 8e33696d..c35614cc 100644 --- a/src/translation/bs-ba.h +++ b/src/translation/bs-ba.h @@ -1,478 +1,505 @@ -#pragma once - -// NOTE: GENERATED FILE -- DO NOT EDIT DIRECTLY -// This file is auto-generated by `json2h.py` -// Entirely new strings should be added to `en-us.h` -// Translations should be added to the language code's `.json` file - -// en-us is our base language translation file -#include "translation/base.h" -static char const * const bs_ba[T_LAST_ITEM_ALWAYS_AT_THE_END]={ - [ T_ON ] = "ON", - [ T_OFF ] = "OFF", - [ T_GND ] = "GND", - [ T_INPUT ] = "INPUT", - [ T_OUTPUT ] = "OUTPUT", - [ T_EXIT ] = "Izlaz", - [ T_LOADED ] = "Učitano", - [ T_SAVED ] = "Spremljeno", - [ T_HZ ] = "Hz", - [ T_KHZ ] = "kHz", - [ T_MHZ ] = "MHz", - [ T_SPEED ] = "Speed", - [ T_WARN_VOUT_VREF_LOW ] = "VOUT/VREF pin is not powered. Use W to enable power, or attach an external supply", - [ T_USE_PREVIOUS_SETTINGS ] = "Koristi prethodne postavke?", - [ T_MODE_ERROR_NO_EFFECT ] = "GREŠKA: naredba nema efekta ovdje", - [ T_MODE_ERROR_NO_EFFECT_HIZ ] = "Naredba nema efekta u HiZ modu, pritisnite 'm' za izabir moda", - [ T_MODE_NO_HELP_AVAILABLE ] = "Pomoć nije dostupna", - [ T_PRESS_ANY_KEY_TO_EXIT ] = "Pritisnite bilo koju tipku za izlaz", - [ T_PRESS_ANY_KEY ] = "Press any key", - [ T_PRESS_BUTTON ] = "Press button", - [ T_PRESS_X_TO_EXIT ] = "Press 'x' to exit", - [ T_MODE_MODE_SELECTION ] = "Izbor moda", - [ T_MODE_MODE ] = "Mod", - [ T_MODE_NUMBER_DISPLAY_FORMAT ] = "Format prikaza brojeva", - [ T_MODE_INVALID_OPTION ] = "Nevažeći izbor", - [ T_MODE_CHOOSE_AVAILABLE_PIN ] = "Izaberite slobodan pin:", - [ T_MODE_ALL_PINS_IN_USE ] = "Svi pinovi u upotrebi", - [ T_MODE_PULLUP_RESISTORS ] = "Pull-up otpornik", - [ T_MODE_POWER_SUPPLY ] = "Napajanje", - [ T_MODE_DISABLED ] = "Onemogućeno", - [ T_MODE_DISPLAY ] = "Display", - [ T_MODE_DISPLAY_SELECTION ] = "Display selection", - [ T_MODE_ENABLED ] = "Omogućeno", - [ T_MODE_BITORDER ] = "Bitorder", - [ T_MODE_BITORDER_MSB ] = "MSB", - [ T_MODE_BITORDER_LSB ] = "LSB", - [ T_MODE_DELAY ] = "Delay", - [ T_MODE_US ] = "us", - [ T_MODE_MS ] = "ms", - [ T_MODE_ADC_VOLTAGE ] = "Volta na", - [ T_MODE_ERROR_PARSING_MACRO ] = "Greška u parsiranju makroa", - [ T_MODE_ERROR_NO_MACROS_AVAILABLE ] = "Nema dostupnih makroa", - [ T_MODE_ERROR_MACRO_NOT_DEFINED ] = "Makro nije definisan", - [ T_MODE_TICK_CLOCK ] = "Tick clock", - [ T_MODE_SET_CLK ] = "Set clock", - [ T_MODE_SET_DAT ] = "Set data", - [ T_MODE_READ_DAT ] = "Read data", - [ T_MODE_NO_VOUT_VREF_ERROR ] = "No voltage detected on VOUT/VREF pin", - [ T_MODE_NO_VOUT_VREF_HINT ] = "Hint: Use W to enable power, or attach an external supply", - [ T_MODE_NO_PULLUP_ERROR ] = "Pull-up not detected on IO pin", - [ T_MODE_NO_PULLUP_HINT ] = "Hint: Use P to enable pull-up resistors, or use external pull-up", - [ T_MODE_PWM_GENERATE_FREQUENCY ] = "Generiši frekvenciju", - [ T_MODE_FREQ_MEASURE_FREQUENCY ] = "Mjerenje frekvencije", - [ T_MODE_FREQ_FREQUENCY ] = "Frekvencija", - [ T_MODE_FREQ_DUTY_CYCLE ] = "Radni ciklus", - [ T_PSU_DAC_ERROR ] = "PSU DAC greška, molimo pokrenite self-test", - [ T_PSU_CURRENT_LIMIT_ERROR ] = "Struja iznad granice, napajanje onemogućeno", - [ T_PSU_SHORT_ERROR ] = "Moguć kratki spoj, napajanje onemogućeno", - [ T_PSU_ALREADY_DISABLED_ERROR ] = "Napajanje već onemogućeno", - [ T_SYNTAX_EXCEEDS_MAX_SLOTS ] = "Rezultati prekoračuju dostupni prostor (%d slotova)", - [ T_HWSPI_SPEED_MENU ] = "SPI brzina", - [ T_HWSPI_SPEED_MENU_1 ] = "1 do 62500kHz", - [ T_HWSPI_SPEED_PROMPT ] = "kHz (%s%dkHz*%s)", - [ T_HWSPI_BITS_MENU ] = "Data bita", - [ T_HWSPI_BITS_MENU_1 ] = "4 do 8 bita", - [ T_HWSPI_BITS_PROMPT ] = "Bita (%s%d*%s)", - [ T_HWSPI_CLOCK_POLARITY_MENU ] = "Clock polaritet", - [ T_HWSPI_CLOCK_POLARITY_MENU_1 ] = "Prazan LOW", - [ T_HWSPI_CLOCK_POLARITY_MENU_2 ] = "Prazan HIGH", - [ T_HWSPI_CLOCK_POLARITY_PROMPT ] = "Polaritet", - [ T_HWSPI_CLOCK_PHASE_MENU ] = "Clock faza", - [ T_HWSPI_CLOCK_PHASE_MENU_1 ] = "LEADING edge", - [ T_HWSPI_CLOCK_PHASE_MENU_2 ] = "TRAILING edge", - [ T_HWSPI_CLOCK_PHASE_PROMPT ] = "Faza", - [ T_HWSPI_CS_IDLE_MENU ] = "Čip select", - [ T_HWSPI_CS_IDLE_MENU_1 ] = "Aktivan HIGH (CS)", - [ T_HWSPI_CS_IDLE_MENU_2 ] = "Aktivan LOW (/CS)", - [ T_HWSPI_CS_IDLE_PROMPT ] = "CS", - [ T_HWSPI_ACTUAL_SPEED_KHZ ] = "Stvarna brzina", - [ T_HWSPI_CS_SELECT ] = "CS Omogućen", - [ T_HWSPI_CS_DESELECT ] = "CS Onemogućen", - [ T_UART_SPEED_MENU ] = "UART brzina", - [ T_UART_SPEED_MENU_1 ] = "1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 etc", - [ T_UART_SPEED_PROMPT ] = "Baud (%s%d*%s)", - [ T_UART_PARITY_MENU ] = "Paritet", - [ T_UART_PARITY_MENU_1 ] = "None", - [ T_UART_PARITY_MENU_2 ] = "Paran", - [ T_UART_PARITY_MENU_3 ] = "Neparan", - [ T_UART_PARITY_PROMPT ] = "Paritet", - [ T_UART_DATA_BITS_MENU ] = "Data bita", - [ T_UART_DATA_BITS_MENU_1 ] = "5 do 8 bita", - [ T_UART_DATA_BITS_PROMPT ] = "Bita (%s%d*%s)", - [ T_UART_STOP_BITS_MENU ] = "Stop bita", - [ T_UART_STOP_BITS_MENU_1 ] = "1", - [ T_UART_STOP_BITS_MENU_2 ] = "2", - [ T_UART_STOP_BITS_PROMPT ] = "Bita", - [ T_UART_BLOCKING_MENU ] = "Koristite blokirajuće funkcije?", - [ T_UART_BLOCKING_MENU_1 ] = "Ne", - [ T_UART_BLOCKING_MENU_2 ] = "Da", - [ T_UART_BLOCKING_PROMPT ] = "Blokiraj", - [ T_UART_FLOW_CONTROL_MENU ] = "Hardware flow control", - [ T_UART_FLOW_CONTROL_MENU_1 ] = "None", - [ T_UART_FLOW_CONTROL_MENU_2 ] = "RTS/CTS", - [ T_UART_FLOW_CONTROL_PROMPT ] = "Flow control", - [ T_UART_INVERT_MENU ] = "Signal inversion", - [ T_UART_INVERT_MENU_1 ] = "Non-inverted (Standard)", - [ T_UART_INVERT_MENU_2 ] = "Inverted", - [ T_UART_INVERT_PROMPT ] = "Invert signals", - [ T_UART_ACTUAL_SPEED_BAUD ] = "Stvarna brzina", - [ T_UART_BAUD ] = "baud", - [ T_UART_OPEN ] = "UART OPEN", - [ T_UART_OPEN_WITH_READ ] = "UART OPEN (ASYNC READ)", - [ T_UART_CLOSE ] = "UART CLOSE", - [ T_UART_NO_DATA_READ ] = "Nema podataka za čiranje", - [ T_UART_NO_DATA_TIMEOUT ] = "Timeout čitanja podataka", - [ T_HWI2C_SPEED_MENU ] = "I2C brzina", - [ T_HWI2C_SPEED_MENU_1 ] = "1kHz do 1000kHz", - [ T_HWI2C_SPEED_PROMPT ] = "kHz (%s%dkHz*%s)", - [ T_HWI2C_DATA_BITS_MENU ] = "Data bita", - [ T_HWI2C_DATA_BITS_MENU_1 ] = "8", - [ T_HWI2C_DATA_BITS_MENU_2 ] = "10", - [ T_HWI2C_DATA_BITS_PROMPT ] = "Bita", - [ T_HWI2C_CLOCK_STRETCH_MENU ] = "Clock stretching", - [ T_HWI2C_CLOCK_STRETCH_PROMPT ] = "(OFF)", - [ T_HWI2C_START ] = "I2C START", - [ T_HWI2C_REPEATED_START ] = "I2C REPEATED START", - [ T_HWI2C_STOP ] = "I2C STOP", - [ T_HWI2C_ACK ] = "ACK", - [ T_HWI2C_NACK ] = "NACK", - [ T_HWI2C_NO_PULLUP_DETECTED ] = "pull-up nije detektovan. Koristite P da omogućite pull-up otpornike na ploči", - [ T_HWI2C_NO_VOUT_DETECTED ] = "no power detected", - [ T_HWI2C_TIMEOUT ] = "I2C timeout", - [ T_HWI2C_I2C_ERROR ] = "I2C bus greška", - [ T_HW2WIRE_SPEED_MENU ] = "2WIRE speed", - [ T_HW2WIRE_RST_LOW ] = "RST LOW", - [ T_HW2WIRE_RST_HIGH ] = "RST HIGH", - [ T_HW3WIRE_SPEED_MENU_1 ] = "1 to 3900kHz", - [ T_HWLED_DEVICE_MENU ] = "LED tip", - [ T_HWLED_DEVICE_MENU_1 ] = "WS2812/SK6812/'NeoPixel' (single wire interface)", - [ T_HWLED_DEVICE_MENU_2 ] = "APA102/SK9822 (clock i data interface)", - [ T_HWLED_DEVICE_MENU_3 ] = "LEDovi na ploči (18 SK6812s)", - [ T_HWLED_DEVICE_PROMPT ] = "Type", - [ T_HWLED_NUM_LEDS_MENU ] = "Broj LEDova u traci", - [ T_HWLED_NUM_LEDS_MENU_1 ] = "1 do 10000", - [ T_HWLED_NUM_LEDS_PROMPT ] = "LEDovi (%s%d*%s)", - [ T_HWLED_RESET ] = "RESET", - [ T_HWLED_FRAME_START ] = "START FRAME (0x00000000)", - [ T_HWLED_FRAME_STOP ] = "STOP FRAME (0xFFFFFFFF)", - [ T_HW1WIRE_RESET ] = "1-Wire RESET", - [ T_HW1WIRE_PRESENCE_DETECT ] = "Uređaj detektovan", - [ T_HW1WIRE_NO_DEVICE ] = "Nema detektovanog uređaja", - [ T_IR_RX_SENSOR_MENU ] = "RX sensor", - [ T_IR_RX_SENSOR_MENU_LEARNER ] = "20-60kHz learner", - [ T_IR_RX_SENSOR_MENU_BARRIER ] = "38kHz barrier", - [ T_IR_RX_SENSOR_MENU_38K_DEMOD ] = "36-40kHz demodulator", - [ T_IR_RX_SENSOR_MENU_56K_DEMOD ] = "56kHz demodulator", - [ T_IR_TX_SPEED_MENU ] = "TX modulation", - [ T_IR_TX_SPEED_MENU_1 ] = "20kHz to 60kHz", - [ T_IR_TX_SPEED_PROMPT ] = "kHz (%s%dkHz*%s)", - [ T_IR_PROTOCOL_MENU ] = "Protocol", - [ T_IR_PROTOCOL_MENU_RC5 ] = "RC5", - [ T_IR_PROTOCOL_MENU_NEC ] = "NEC", - [ T_CMDLN_INVALID_COMMAND ] = "Nevažeća naredba: %s. Unesite ? za pomoć.", - [ T_CMDLN_NO_HELP ] = "Pomoć trenutno nije dostupna za ovu naredbu.", - [ T_CMDLN_LS ] = "ls {direktorij} - listing datoteka u trenutnoj lokaciji ili {direktorij} lokaciji.", - [ T_CMDLN_CD ] = "cd {direktorij} - premjestite se u {direktorij} lokaciju.", - [ T_CMDLN_MKDIR ] = "mkdir {direktorij} - kreirajte {direktorij}.", - [ T_CMDLN_RM ] = "rm {datoteka/direktorij} - uklonite datoteku ili (prazan) direktorij.", - [ T_CMDLN_CAT ] = "cat {datoteka} - prikažite sadržaj {datoteka}.", - [ T_CMDLN_MODE ] = "m - promjenite protokol mod, prikažite izbornik.", - [ T_CMDLN_PSU_EN ] = "W - omogućite napojnu jedinicu na ploči, prikažite konfiguracijski izbornik.", - [ T_CMDLN_RESET ] = "# - poništite postavke i ponovno pokrenite Bus Pirate.", - [ T_CMDLN_BOOTLOAD ] = "$ - poništite postavke i otvorite bootloader mod za ažuriranje.", - [ T_CMDLN_INT_FORMAT ] = "= {vrijednost} - konvertujte {vrijednost} u BIN/DEC/HEX/ASCII.", - [ T_CMDLN_INT_INVERSE ] = "| {vrijednost} - invertirajte bite u {vrijednost}.", - [ T_CMDLN_HELP ] = "? - prikažite pomoć za naredbe i sintaksu.", - [ T_CMDLN_CONFIG_MENU ] = "c - otvorite Bus Pirate konfiguracijski izbornik.", - [ T_CMDLN_FREQ_ONE ] = "f {IOx} - izmjerite frekvenciju na {IOx} jedanput.", - [ T_CMDLN_FREQ_CONT ] = "F {IOx} - izmjerite frekvenciju na {IOx} kontinualno.", - [ T_CMDLN_PWM_CONFIG ] = "G - konfigurišite frekvencijski generator (PWM) na slobodnom IOx pinu.", - [ T_CMDLN_PWM_DIS ] = "g {IOx} - onemogućite frekvencijski generator (PWM) na pinu {IOx}.", - [ T_CMDLN_HELP_MODE ] = "h - prikažite ekran pomoći za izabrani mod.", - [ T_CMDLN_HELP_DISPLAY ] = "hd - show display mode specific help screen.", - [ T_CMDLN_INFO ] = "i - prikažite Bus Pirate informacijski i status ekran.", - [ T_CMDLN_BITORDER_MSB ] = "l - zadajte Most Significant Bit red ispisa.", - [ T_CMDLN_BITORDER_LSB ] = "L - zadajte Least Significant Bit red ispisa.", - [ T_CMDLN_DISPLAY_FORMAT ] = "o - podesite format ispisa brojeva.", - [ T_CMDLN_PULLUPS_EN ] = "P - omogućite pull-up otpornike na ploči.", - [ T_CMDLN_PULLUPS_DIS ] = "p - onemogućite pull-up otpornike na ploči.", - [ T_CMDLN_PSU_DIS ] = "w - onemogućite napojnu jedinicu na ploči.", - [ T_CMDLN_ADC_CONT ] = "V {IOx} - kontinualno mjerenje napona na pinu {IOx}. Unesite bez broja pina za mjerenje napona na svim pinovima.", - [ T_CMDLN_ADC_ONE ] = "v {IOx} - jednokratno mjerenje napona na pinu {IOx}. Unesite bez broja pina za jednokratno mjerenje napona na svim pinovima.", - [ T_CMDLN_SELFTEST ] = "~ - izvršite fabrički self-test. Odspojite sve priključene uređaje i pređite u HiZ mod prije pokretanja testa.", - [ T_CMDLN_AUX_IN ] = "@ {IOx} - postavite pin {IOx} kao ulaz, pročitajte stanje.", - [ T_CMDLN_AUX_LOW ] = "a {IOx} - postavite pin {IOx} kao izlaz i LOW.", - [ T_CMDLN_AUX_HIGH ] = "A {IOx} - postavite pin {IOx} kao izlaz i HIGH.", - [ T_CMDLN_DUMP ] = "dump {datoteka} {uređaj} - zapišite sadržaj flash {uređaj} u {datoteka}. Upozorenje: trenutno radi kao prototip samo sa 25LC020 u SPI modu.", - [ T_CMDLN_LOAD ] = "load {datoteka} {uređaj} - učitajte saržaj {datoteka} na flash {uređaj}. Upozorenje: trenutno radi kao prototip sa 25LC020 u SPI modu.", - [ T_CMDLN_DISPLAY ] = "d - change display mode, show selection menu.", - [ T_CMDLN_LOGIC ] = "logic - logic analyzer. 1kHz-62500kHz, 0:7, 0:1.", - [ T_CMDLN_HEX ] = "hex - print contents of in HEX", - [ T_HELP_TITLE ] = "Opšte naredbe\t\t\tBus sintaksa", - [ T_HELP_GENERAL_COMMANDS ] = "Opšte naredbe", - [ T_HELP_BUS_SYNTAX ] = "Bus sintaksa", - [ T_HELP_DISK_COMMANDS ] = "Disk naredbe", - [ T_HELP_BLANK ] = "\t\t\t", - [ T_HELP_SECTION_IO ] = "work with pins, input, output measurement", - [ T_HELP_SECTION_CAPTURE ] = "measure analog and digital signals", - [ T_HELP_SECTION_CONFIGURE ] = "configure the terminal, LEDs, display and mode", - [ T_HELP_SECTION_SYSTEM ] = "restart, firmware updates and diagnostic", - [ T_HELP_SECTION_FILES ] = "list files and navigate the storage", - [ T_HELP_SECTION_PROGRAMS ] = "useful commands and mini-programs", - [ T_HELP_SECTION_MODE ] = "enter a mode to use protocols", - [ T_HELP_SECTION_SYNTAX ] = "send and receive data in modes using bus syntax", - [ T_HELP_SECTION_HELP ] = "get more help", - [ T_HELP_GREATER_THAN ] = "Pokrenite Bus sintaksa (vidjeti: Bus sintaksa)", - [ T_HELP_SYNTAX_ADC ] = "Mjeri napon na IO.x\t", - [ T_HELP_CMD_LS ] = "Izlistaj datoteke", - [ T_HELP_CMD_CD ] = "Promjeni direktorij", - [ T_HELP_CMD_MKDIR ] = "Napravi direktorij", - [ T_HELP_CMD_RM ] = "Ukloni datoteku/Direktorij", - [ T_HELP_CMD_PAUSE ] = "Pause for user input, optional exit", - [ T_HELP_CMD_FORMAT ] = "Format storage disk (FAT16)", - [ T_HELP_CMD_CAT ] = "Ispiši sadržaj datoteke", - [ T_HELP_CMD_HEX ] = "Print file contents in HEX", - [ T_HELP_CAPTURE_SCOPE ] = "Oscilloscope interface", - [ T_HELP_CAPTURE_LA ] = "Logic analyzer interface", - [ T_HELP_CMD_FLASH ] = "Erase, write, read and verify SPI flash chips", - [ T_HELP_CMD_LABEL ] = "Get or set the disk label", - [ T_HELP_CMD_IMAGE ] = "Write a bitmap image on the LCD", - [ T_HELP_CMD_DUMP ] = "Repeat read command, save ouput to storage", - [ T_HELP_1_2 ] = "Konvertuj x/obrni x\t", - [ T_HELP_1_3 ] = "Selftest\t\t", - [ T_HELP_1_4 ] = "Poništi postavke na Bus Pirate\t", - [ T_HELP_1_5 ] = "Prebaci na bootloader\t", - [ T_HELP_1_6 ] = "Odloži 1 us/MS (d:4 za ponavljanje)", - [ T_HELP_1_7 ] = "Postavi IO.x stanje (low/HI/READ)", - [ T_HELP_COMMAND_AUX ] = "Postavi IO x stanje (low/HI/READ)", - [ T_HELP_COMMAND_DISPLAY ] = "Change screen display mode", - [ T_HELP_1_9 ] = "Konfiguracijski izbornik\t", - [ T_HELP_1_22 ] = "Prikaži napon na IOx (jednom/CONT)", - [ T_HELP_1_10 ] = "Prikaži napon na svim IO (jednom/CONT)", - [ T_HELP_1_11 ] = "Izmjeri frekvenciju na IOx (jednom/CONT)", - [ T_HELP_1_23 ] = "Prati frekvenciju (off/ON)\t", - [ T_HELP_1_12 ] = "Generiši frekvenciju (off/ON)", - [ T_HELP_HELP_GENERAL ] = "Global, mode and display help. Try '?', '? mode' and '? display'", - [ T_HELP_HELP_DISPLAY ] = "Help with a display mode such as the scope", - [ T_HELP_HELP_COMMAND ] = "Add -h for command help: ls -h", - [ T_HELP_1_14 ] = "Versioninfo/statusinfo\t", - [ T_HELP_1_15 ] = "Bitorder (msb/LSB)\t", - [ T_HELP_1_16 ] = "Promjeni mod\t\t", - [ T_HELP_1_17 ] = "Zadaj format prikaza brojeva", - [ T_HELP_1_18 ] = "Pull-up otpornik (off/ON)", - [ T_HELP_1_19 ] = "-\t\t\t", - [ T_HELP_1_20 ] = "Prikaži napon/stanja\t", - [ T_HELP_1_21 ] = "Napajanje (off/ON)\t", - [ T_HELP_2_1 ] = "Makro mod x/prikaži sve\t", - [ T_HELP_2_3 ] = "Start", - [ T_HELP_2_4 ] = "Stop", - [ T_HELP_2_7 ] = "Pošalji string", - [ T_HELP_2_8 ] = "", - [ T_HELP_2_9 ] = "", - [ T_HELP_2_10 ] = "Pošalji vrijednost", - [ T_HELP_2_11 ] = "Čitaj", - [ T_HELP_SYN_CLOCK_HIGH ] = "Clock high", - [ T_HELP_SYN_CLOCK_LOW ] = "Clock low", - [ T_HELP_SYN_CLOCK_TICK ] = "Clock tick", - [ T_HELP_SYN_DATA_HIGH ] = "Data high", - [ T_HELP_SYN_DATA_LOW ] = "Data low", - [ T_HELP_SYN_DATA_READ ] = "Read data pin state", - [ T_HELP_2_18 ] = "Čitaj bit", - [ T_HELP_2_19 ] = "Ponovi npr. r:10", - [ T_HELP_2_20 ] = "Pročitaj/zapiši bita npr. 0x55.2", - [ T_HELP_2_21 ] = "Korisnički makro x/izlistaj sve", - [ T_HELP_2_22 ] = "Korisnički makro dodijeli x", - [ T_HELP_HINT ] = "Uvežite više naredbi sa ; || &&.\r\n\r\nProbajte -h pomoć: ls -h", - [ T_HELP_FLASH ] = "read, write and erase flash chips using SFDP info if available", - [ T_HELP_FLASH_ERASE ] = "Erase flash chip. flash erase [-v(erify)]", - [ T_HELP_FLASH_WRITE ] = "Write file to flash chip. flash write -f [-e(rase)] [-v(erify)]", - [ T_HELP_FLASH_READ ] = "Read flash chip to file. flash read -f ", - [ T_HELP_FLASH_VERIFY ] = "Verify flash chip against file. flash verify -f ", - [ T_HELP_FLASH_TEST ] = "Erase and write full chip with dummy data, verify. flash test", - [ T_HELP_FLASH_PROBE ] = "Probe flash chip for ID and SFDP info. flash probe", - [ T_HELP_FLASH_INIT ] = "Reset and initialize flash chip. Default if no options given. flash", - [ T_HELP_FLASH_FILE_FLAG ] = "File flag. File to write, read or verify. flash verify -f ", - [ T_HELP_FLASH_ERASE_FLAG ] = "Erase flag. Add erase before write. flash write -f -e", - [ T_HELP_FLASH_VERIFY_FLAG ] = "Verify flag. Add verify after write or erase. flash write -f -v", - [ T_INFO_FIRMWARE ] = "Firmware", - [ T_INFO_BOOTLOADER ] = "Bootloader", - [ T_INFO_WITH ] = "sa", - [ T_INFO_RAM ] = "RAM", - [ T_INFO_FLASH ] = "FLASH", - [ T_INFO_SN ] = "S/N", - [ T_INFO_WEBSITE ] = "https://BusPirate.com/", - [ T_INFO_TF_CARD ] = "Storage", - [ T_INFO_FILE_SYSTEM ] = "File System", - [ T_NOT_DETECTED ] = "Not Detected", - [ T_INFO_AVAILABLE_MODES ] = "Dostupni modovi", - [ T_INFO_CURRENT_MODE ] = "Aktivni mod", - [ T_INFO_POWER_SUPPLY ] = "Napajanje", - [ T_INFO_CURRENT_LIMIT ] = "Granica struje", - [ T_INFO_PULLUP_RESISTORS ] = "Pull-up otpornik", - [ T_INFO_FREQUENCY_GENERATORS ] = "Generatori frekvencija", - [ T_INFO_DISPLAY_FORMAT ] = "Format prikaza", - [ T_INFO_DATA_FORMAT ] = "Format podataka", - [ T_INFO_BITS ] = "biti", - [ T_INFO_BITORDER ] = "bitorder", - [ T_CONFIG_FILE ] = "Konfiguracijska datoteka", - [ T_CONFIG_CONFIGURATION_OPTIONS ] = "Konfiguracijske opcije", - [ T_CONFIG_LANGUAGE ] = "Language / Jezik / Lingua / 语言", - [ T_CONFIG_ANSI_COLOR_MODE ] = "ANSI color mode", - [ T_CONFIG_ANSI_COLOR_FULLCOLOR ] = "ANSI Full-Color (16M colors)", - [ T_CONFIG_ANSI_COLOR_256 ] = "ANSI-256 color", - [ T_CONFIG_ANSI_TOOLBAR_MODE ] = "ANSI toolbar mode", - [ T_CONFIG_LANGUAGE_ENGLISH ] = "Language - English (US)", - [ T_CONFIG_LANGUAGE_CHINESE ] = "语言 - 中文(简体)", - [ T_CONFIG_LANGUAGE_POLISH ] = "Język - polski (Polska)", - [ T_CONFIG_LANGUAGE_BOSNIAN ] = "Jezik - bosanski (latinica, Bosna i Hercegovina)", - [ T_CONFIG_LANGUAGE_ITALIAN ] = "Lingua - italiano (Italia)", - [ T_CONFIG_DISABLE ] = "Onemogući", - [ T_CONFIG_ENABLE ] = "Omogući", - [ T_CONFIG_SCREENSAVER ] = "LCD screensaver", - [ T_CONFIG_SCREENSAVER_5 ] = "5 minuta", - [ T_CONFIG_SCREENSAVER_10 ] = "10 minuta", - [ T_CONFIG_SCREENSAVER_15 ] = "15 minuta", - [ T_CONFIG_LEDS_EFFECT ] = "LED efektri", - [ T_CONFIG_LEDS_EFFECT_SOLID ] = "Jednobojno", - [ T_CONFIG_LEDS_EFFECT_ANGLEWIPE ] = "Ugaono kruženje", - [ T_CONFIG_LEDS_EFFECT_CENTERWIPE ] = "Centrirano kruženje", - [ T_CONFIG_LEDS_EFFECT_CLOCKWISEWIPE ] = "Kruženje u smijeru kazaljke", - [ T_CONFIG_LEDS_EFFECT_TOPDOWNWIPE ] = "Prelaz odozgo", - [ T_CONFIG_LEDS_EFFECT_SCANNER ] = "Skener", - [ T_CONFIG_LEDS_EFFECT_GENTLE_GLOW ] = "Gentle glow", - [ T_CONFIG_LEDS_EFFECT_CYCLE ] = "Ludnica mod", - [ T_CONFIG_LEDS_COLOR ] = "LED boja", - [ T_CONFIG_LEDS_COLOR_RAINBOW ] = "Duga", - [ T_CONFIG_LEDS_COLOR_RED ] = "Crvena", - [ T_CONFIG_LEDS_COLOR_ORANGE ] = "Narandžasta", - [ T_CONFIG_LEDS_COLOR_YELLOW ] = "Žuta", - [ T_CONFIG_LEDS_COLOR_GREEN ] = "Zelena", - [ T_CONFIG_LEDS_COLOR_BLUE ] = "Plava", - [ T_CONFIG_LEDS_COLOR_PURPLE ] = "Ljubičasta", - [ T_CONFIG_LEDS_COLOR_PINK ] = "Roza", - [ T_CONFIG_LEDS_COLOR_WHITE ] = "White", - [ T_CONFIG_LEDS_BRIGHTNESS ] = "LED svjetlina", - [ T_CONFIG_LEDS_BRIGHTNESS_10 ] = "10%", - [ T_CONFIG_LEDS_BRIGHTNESS_20 ] = "20%", - [ T_CONFIG_LEDS_BRIGHTNESS_30 ] = "30%", - [ T_CONFIG_LEDS_BRIGHTNESS_40 ] = "40%", - [ T_CONFIG_LEDS_BRIGHTNESS_50 ] = "50%", - [ T_CONFIG_LEDS_BRIGHTNESS_100 ] = "100% ***UPOZORENJE: doći će do oštećenja bez vanjskog USB napajanja***", - [ T_CONFIG_BINMODE_SELECT ] = "Select binary mode", - [ T_HELP_DUMMY_COMMANDS ] = "Dummy commands valid in position 1", - [ T_HELP_DUMMY_INIT ] = "Dummy init command", - [ T_HELP_DUMMY_TEST ] = "Dummy test command", - [ T_HELP_DUMMY_FLAGS ] = "Dummy flags", - [ T_HELP_DUMMY_B_FLAG ] = "-b require Bus Pirate button to be pushed. Takes no parameters", - [ T_HELP_DUMMY_I_FLAG ] = "-i . Requires integer number parameter", - [ T_HELP_DUMMY_FILE_FLAG ] = "-f . Create/write/read . Requires file string parameter", - [ T_HELP_SLE4442 ] = "SLE4442 smart card interface", - [ T_HELP_SLE4442_INIT ] = "Initialize card with ISO7816-3 ATR. Default action", - [ T_HELP_SLE4442_DUMP ] = "Display main, security and protect memory", - [ T_HELP_SLE4442_UNLOCK ] = "Unlock card with Programmable Security Code (PSC)", - [ T_HELP_SLE4442_WRITE ] = "Write data to card (requires unlock)", - [ T_HELP_SLE4442_ERASE ] = "Erase data from range 0x32-0x255 (requires unlock)", - [ T_HELP_SLE4442_PSC ] = "Change Programmable Security Code (PSC)", - [ T_HELP_SLE4442_ADDRESS_FLAG ] = "Write address flag", - [ T_HELP_SLE4442_VALUE_FLAG ] = "Write value flag", - [ T_HELP_SLE4442_CURRENT_PSC_FLAG ] = "Current Programmable Security Code (PSC) flag", - [ T_HELP_SLE4442_NEW_PSC_FLAG ] = "New Programmable Security Code (PSC) flag", - [ T_HELP_SLE4442_FILE_FLAG ] = "Dump file name flag", - [ T_HELP_GCMD_W ] = "onboard power supply with programmable fuse", - [ T_HELP_GCMD_W_DISABLE ] = "Disable onboard power supply", - [ T_HELP_GCMD_W_ENABLE ] = "Enable onboard power supply, show configuration menu", - [ T_HELP_GCMD_W_VOLTS ] = "Voltage, 0.8-5.0volts", - [ T_HELP_GCMD_W_CURRENT_LIMIT ] = "Current limit, 0-500mA", - [ T_HELP_GCMD_P ] = "onboard pull-up resistors", - [ T_HELP_HELP ] = "help for Bus Pirate commands and modes", - [ T_HELP_SYS_COMMAND ] = "Commands to access the help system", - [ T_HELP_SYS_DISPLAY ] = "Show display mode help (such as oscilloscope)", - [ T_HELP_SYS_MODE ] = "Show mode specific commands and help", - [ T_HELP_SYS_HELP ] = "How to use the help system", - [ T_HELP_GCMD_SELFTEST ] = "run a complete system self-test", - [ T_HELP_GCMD_SELFTEST_CMD ] = "Run self-test", - [ T_HELP_GCMD_SELFTEST_H_FLAG ] = "Self-test help", - [ T_HELP_AUXIO ] = "set IO pin state, read input pins", - [ T_HELP_AUXIO_LOW ] = "Output, low/0. Reserves pin for output", - [ T_HELP_AUXIO_HIGH ] = "Output, high/1. Reserves pin for output", - [ T_HELP_AUXIO_INPUT ] = "Input, read state. Releases reserved pin", - [ T_HELP_AUXIO_IO ] = "IO pin number, 0-7", - [ T_HELP_DISK_HEX ] = "Print file contents in HEX format", - [ T_HELP_DISK_HEX_FILE ] = "Name of file in 8.3 format (example1.bin)", - [ T_HELP_DISK_HEX_ADDR ] = "Show address offset", - [ T_HELP_DISK_HEX_ASCII ] = "Show also ASCII dump", - [ T_HELP_DISK_HEX_SIZE ] = "Set line size in bytes", - [ T_HELP_DISK_HEX_OFF ] = "Set file read start offset in bytes", - [ T_HELP_DISK_HEX_PAGER_OFF ] = "Disable the pager for dumping", - [ T_HELP_DISK_CAT ] = "print file contents as text", - [ T_HELP_DISK_CAT_FILE ] = "Name of file in 8.3 format (example1.txt)", - [ T_HELP_DISK_MKDIR ] = "create directory on internal storage", - [ T_HELP_DISK_MKDIR_DIR ] = "Directory name, 8 characters max", - [ T_HELP_DISK_CD ] = "change to a directory on local storage", - [ T_HELP_DISK_CD_DIR ] = "Directory name, 8 characters max", - [ T_HELP_DISK_RM ] = "delete file or directory on local storage", - [ T_HELP_DISK_RM_FILE ] = "Name of file to delete, 8.3 format", - [ T_HELP_DISK_RM_DIR ] = "Name of directory to delete, 8 characters max", - [ T_HELP_DISK_LS ] = "list files and directories on local storage", - [ T_HELP_DISK_LS_DIR ] = "List contents of this directory, optional", - [ T_HELP_DISK_FORMAT ] = "erase and format internal storage in FAT16 format", - [ T_HELP_DISK_FORMAT_CMD ] = "All data will be lost, answer 'y' twice to continue", - [ T_HELP_DISK_LABEL ] = "get or set the disk label", - [ T_HELP_DISK_LABEL_GET ] = "returns the current label of the disk", - [ T_HELP_DISK_LABEL_SET ] = "sets the current label of the disk", - [ T_HELP_VADC ] = "measure voltage on IO pins", - [ T_HELP_VADC_SINGLE ] = "Single measurement", - [ T_HELP_VADC_CONTINUOUS ] = "Continuous measurement", - [ T_HELP_VADC_IO ] = "IO pin number, 0-7", - [ T_HELP_I2C_SCAN ] = "scan I2C addresses, with optional part number", - [ T_HELP_I2C_SCAN_VERBOSE ] = "Verbose mode, print potential part numbers", - [ T_HELP_FLAG ] = "Get additional help", - [ T_HELP_I2C_SI7021 ] = "Read temperature and humidity from SI7021/HTU21/SHT21 sensor", - [ T_HELP_I2C_MS5611 ] = "Read temperature and pressure from MS5611 sensor", - [ T_HELP_I2C_TSL2561 ] = "Read light intensity (LUX) from TSL2561 sensor", - [ T_HELP_1WIRE_SCAN ] = "scan for 1-Wire devices", - [ T_HELP_1WIRE_DS18B20 ] = "Query DS18B20 temperature sensor", - [ T_HELP_UART_BRIDGE ] = "open UART with raw data IO, usb to serial bridge mode", - [ T_HELP_UART_BRIDGE_EXIT ] = "UART bridge. Press Bus Pirate button to exit.", - [ T_HELP_UART_BRIDGE_TOOLBAR ] = "ENABLE toolbar while bridge is active (default: disabled)", - [ T_HELP_UART_BRIDGE_SUPPRESS_LOCAL_ECHO ] = "Suppress local echo, don't echo back sent data", - [ T_HELP_UART_NMEA ] = "parse NMEA GPS data", - [ T_HELP_SECTION_SCRIPT ] = "run scripts, macros and assign button functions", - [ T_HELP_CMD_SCRIPT ] = "Run script files, automation", - [ T_HELP_CMD_BUTTON ] = "Assign button functions", - [ T_HELP_CMD_MACRO ] = "Run macros, load a macro file", - [ T_HELP_CMD_TUTORIAL ] = "Run tutorial files", - [ T_HELP_CMD_PAUSE_KEY ] = "Press any key to continue (default)", - [ T_HELP_CMD_PAUSE_BUTTON ] = "Press the Bus Pirate button to continue", - [ T_HELP_CMD_PAUSE_EXIT ] = "'x' key to exit (e.g. script mode)", - [ T_HELP_BUTTON ] = "Assign script file to button press", - [ T_HELP_BUTTON_SHORT ] = "Assign script file to short button press", - [ T_HELP_BUTTON_LONG ] = "Assign script file to long button press", - [ T_HELP_BUTTON_FILE ] = "Script file to assign to button press", - [ T_HELP_BUTTON_HIDE ] = "Hide comments", - [ T_HELP_BUTTON_EXIT ] = "Exit script on error", - [ T_HELP_LOGIC ] = "logic analyzer control", - [ T_HELP_LOGIC_START ] = "start logic analyzer", - [ T_HELP_LOGIC_STOP ] = "stop logic analyzer", - [ T_HELP_LOGIC_HIDE ] = "hide logic graph", - [ T_HELP_LOGIC_SHOW ] = "show logic graph", - [ T_HELP_LOGIC_NAV ] = "navigate logic graph with arrow keys, x to exit", - [ T_HELP_LOGIC_INFO ] = "show configuration info", - [ T_HELP_LOGIC_FREQUENCY ] = "set sample frequency in Hz", - [ T_HELP_LOGIC_OVERSAMPLE ] = "set oversample rate, multiplies the sample frequency", - [ T_HELP_LOGIC_DEBUG ] = "set debug level: 0-2", - [ T_HELP_LOGIC_SAMPLES ] = "set number of samples", - [ T_HELP_LOGIC_TRIGGER_PIN ] = "set trigger pin, 0-7", - [ T_HELP_LOGIC_TRIGGER_LEVEL ] = "set trigger level, 0-1", - [ T_HELP_LOGIC_LOW_CHAR ] = "set character used for low in graph (ex:_)", - [ T_HELP_LOGIC_HIGH_CHAR ] = "set character used for high in graph (ex:*)", - [ T_HELP_CMD_CLS ] = "Clear and reset the terminal", - [ T_HELP_SECTION_TOOLS ] = "tools and utilities", - [ T_HELP_CMD_LOGIC ] = "Logic analyzer", - [ T_HELP_CMD_SMPS ] = "Switch mode power supply (plank required)", - [ T_INFRARED_CMD_TEST ] = "Test IR RX/TX Toy plank", - [ T_UART_CMD_TEST ] = "Test Dual RS232 plank", - [ T_SPI_CMD_SNIFF ] = "SPI sniffer", - -}; +#pragma once + +// NOTE: GENERATED FILE -- DO NOT EDIT DIRECTLY +// This file is auto-generated by `json2h.py` +// Entirely new strings should be added to `en-us.h` +// Translations should be added to the language code's `.json` file + +// en-us is our base language translation file +#include "translation/base.h" +static char const * const bs_ba[T_LAST_ITEM_ALWAYS_AT_THE_END]={ + [ T_ON ] = "ON", + [ T_OFF ] = "OFF", + [ T_GND ] = "GND", + [ T_INPUT ] = "INPUT", + [ T_OUTPUT ] = "OUTPUT", + [ T_EXIT ] = "Izlaz", + [ T_LOADED ] = "Učitano", + [ T_SAVED ] = "Spremljeno", + [ T_HZ ] = "Hz", + [ T_KHZ ] = "kHz", + [ T_MHZ ] = "MHz", + [ T_SPEED ] = "Speed", + [ T_WARN_VOUT_VREF_LOW ] = "VOUT/VREF pin is not powered. Use W to enable power, or attach an external supply", + [ T_USE_PREVIOUS_SETTINGS ] = "Koristi prethodne postavke?", + [ T_MODE_ERROR_NO_EFFECT ] = "GREŠKA: naredba nema efekta ovdje", + [ T_MODE_ERROR_NO_EFFECT_HIZ ] = "Naredba nema efekta u HiZ modu, pritisnite 'm' za izabir moda", + [ T_MODE_NO_HELP_AVAILABLE ] = "Pomoć nije dostupna", + [ T_PRESS_ANY_KEY_TO_EXIT ] = "Pritisnite bilo koju tipku za izlaz", + [ T_PRESS_ANY_KEY ] = "Press any key", + [ T_PRESS_BUTTON ] = "Press button", + [ T_PRESS_X_TO_EXIT ] = "Press 'x' to exit", + [ T_MODE_MODE_SELECTION ] = "Izbor moda", + [ T_MODE_MODE ] = "Mod", + [ T_MODE_NUMBER_DISPLAY_FORMAT ] = "Format prikaza brojeva", + [ T_MODE_INVALID_OPTION ] = "Nevažeći izbor", + [ T_MODE_CHOOSE_AVAILABLE_PIN ] = "Izaberite slobodan pin:", + [ T_MODE_ALL_PINS_IN_USE ] = "Svi pinovi u upotrebi", + [ T_MODE_PULLUP_RESISTORS ] = "Pull-up otpornik", + [ T_MODE_POWER_SUPPLY ] = "Napajanje", + [ T_MODE_DISABLED ] = "Onemogućeno", + [ T_MODE_DISPLAY ] = "Display", + [ T_MODE_DISPLAY_SELECTION ] = "Display selection", + [ T_MODE_ENABLED ] = "Omogućeno", + [ T_MODE_BITORDER ] = "Bitorder", + [ T_MODE_BITORDER_MSB ] = "MSB", + [ T_MODE_BITORDER_LSB ] = "LSB", + [ T_MODE_DELAY ] = "Delay", + [ T_MODE_US ] = "us", + [ T_MODE_MS ] = "ms", + [ T_MODE_ADC_VOLTAGE ] = "Volta na", + [ T_MODE_ERROR_PARSING_MACRO ] = "Greška u parsiranju makroa", + [ T_MODE_ERROR_NO_MACROS_AVAILABLE ] = "Nema dostupnih makroa", + [ T_MODE_ERROR_MACRO_NOT_DEFINED ] = "Makro nije definisan", + [ T_MODE_TICK_CLOCK ] = "Tick clock", + [ T_MODE_SET_CLK ] = "Set clock", + [ T_MODE_SET_DAT ] = "Set data", + [ T_MODE_READ_DAT ] = "Read data", + [ T_MODE_NO_VOUT_VREF_ERROR ] = "No voltage detected on VOUT/VREF pin", + [ T_MODE_NO_VOUT_VREF_HINT ] = "Hint: Use W to enable power, or attach an external supply", + [ T_MODE_NO_PULLUP_ERROR ] = "Pull-up not detected on IO pin", + [ T_MODE_NO_PULLUP_HINT ] = "Hint: Use P to enable pull-up resistors, or use external pull-up", + [ T_MODE_PWM_GENERATE_FREQUENCY ] = "Generiši frekvenciju", + [ T_MODE_FREQ_MEASURE_FREQUENCY ] = "Mjerenje frekvencije", + [ T_MODE_FREQ_FREQUENCY ] = "Frekvencija", + [ T_MODE_FREQ_DUTY_CYCLE ] = "Radni ciklus", + [ T_PSU_DAC_ERROR ] = "PSU DAC greška, molimo pokrenite self-test", + [ T_PSU_CURRENT_LIMIT_ERROR ] = "Struja iznad granice, napajanje onemogućeno", + [ T_PSU_SHORT_ERROR ] = "Moguć kratki spoj, napajanje onemogućeno", + [ T_PSU_ALREADY_DISABLED_ERROR ] = "Napajanje već onemogućeno", + [ T_SYNTAX_EXCEEDS_MAX_SLOTS ] = "Rezultati prekoračuju dostupni prostor (%d slotova)", + [ T_HWSPI_SPEED_MENU ] = "SPI brzina", + [ T_HWSPI_SPEED_MENU_1 ] = "1 do 62500kHz", + [ T_HWSPI_SPEED_PROMPT ] = "kHz (%s%dkHz*%s)", + [ T_HWSPI_BITS_MENU ] = "Data bita", + [ T_HWSPI_BITS_MENU_1 ] = "4 do 8 bita", + [ T_HWSPI_BITS_PROMPT ] = "Bita (%s%d*%s)", + [ T_HWSPI_CLOCK_POLARITY_MENU ] = "Clock polaritet", + [ T_HWSPI_CLOCK_POLARITY_MENU_1 ] = "Prazan LOW", + [ T_HWSPI_CLOCK_POLARITY_MENU_2 ] = "Prazan HIGH", + [ T_HWSPI_CLOCK_POLARITY_PROMPT ] = "Polaritet", + [ T_HWSPI_CLOCK_PHASE_MENU ] = "Clock faza", + [ T_HWSPI_CLOCK_PHASE_MENU_1 ] = "LEADING edge", + [ T_HWSPI_CLOCK_PHASE_MENU_2 ] = "TRAILING edge", + [ T_HWSPI_CLOCK_PHASE_PROMPT ] = "Faza", + [ T_HWSPI_CS_IDLE_MENU ] = "Čip select", + [ T_HWSPI_CS_IDLE_MENU_1 ] = "Aktivan HIGH (CS)", + [ T_HWSPI_CS_IDLE_MENU_2 ] = "Aktivan LOW (/CS)", + [ T_HWSPI_CS_IDLE_PROMPT ] = "CS", + [ T_HWSPI_ACTUAL_SPEED_KHZ ] = "Stvarna brzina", + [ T_HWSPI_CS_SELECT ] = "CS Omogućen", + [ T_HWSPI_CS_DESELECT ] = "CS Onemogućen", + [ T_UART_SPEED_MENU ] = "UART brzina", + [ T_UART_SPEED_MENU_1 ] = "1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 etc", + [ T_UART_SPEED_PROMPT ] = "Baud (%s%d*%s)", + [ T_UART_PARITY_MENU ] = "Paritet", + [ T_UART_PARITY_MENU_1 ] = "None", + [ T_UART_PARITY_MENU_2 ] = "Paran", + [ T_UART_PARITY_MENU_3 ] = "Neparan", + [ T_UART_PARITY_PROMPT ] = "Paritet", + [ T_UART_DATA_BITS_MENU ] = "Data bita", + [ T_UART_DATA_BITS_MENU_1 ] = "5 do 8 bita", + [ T_UART_DATA_BITS_PROMPT ] = "Bita (%s%d*%s)", + [ T_UART_STOP_BITS_MENU ] = "Stop bita", + [ T_UART_STOP_BITS_MENU_1 ] = "1", + [ T_UART_STOP_BITS_MENU_2 ] = "2", + [ T_UART_STOP_BITS_PROMPT ] = "Bita", + [ T_UART_BLOCKING_MENU ] = "Koristite blokirajuće funkcije?", + [ T_UART_BLOCKING_MENU_1 ] = "Ne", + [ T_UART_BLOCKING_MENU_2 ] = "Da", + [ T_UART_BLOCKING_PROMPT ] = "Blokiraj", + [ T_UART_FLOW_CONTROL_MENU ] = "Hardware flow control", + [ T_UART_FLOW_CONTROL_MENU_1 ] = "None", + [ T_UART_FLOW_CONTROL_MENU_2 ] = "RTS/CTS", + [ T_UART_FLOW_CONTROL_PROMPT ] = "Flow control", + [ T_UART_INVERT_MENU ] = "Signal inversion", + [ T_UART_INVERT_MENU_1 ] = "Non-inverted (Standard)", + [ T_UART_INVERT_MENU_2 ] = "Inverted", + [ T_UART_INVERT_PROMPT ] = "Invert signals", + [ T_UART_GLITCH_TRG_MENU ] = "Glitch trigger character", + [ T_UART_GLITCH_TRG_MENU_1 ] = "1 - 255", + [ T_UART_GLITCH_TRG_PROMPT ] = "ASCII value of trigger character (13)", + [ T_UART_GLITCH_DLY_MENU ] = "Glitch trigger delay", + [ T_UART_GLITCH_DLY_MENU_1 ] = "Delay time in us", + [ T_UART_GLITCH_DLY_PROMPT ] = "Glitch trigger delay (1)", + [ T_UART_GLITCH_VRY_MENU ] = "Glitch vary time", + [ T_UART_GLITCH_VRY_MENU_1 ] = "1 - 10", + [ T_UART_GLITCH_VRY_PROMPT ] = "Glitch vary time (3)", + [ T_UART_GLITCH_CYC_MENU ] = "Glitch cycle delay", + [ T_UART_GLITCH_CYC_MENU_1 ] = "10-1000", + [ T_UART_GLITCH_CYC_PROMPT ] = "Minimum time between glitch cycles in ms (10)", + [ T_UART_GLITCH_FAIL_MENU ] = "Normal response character", + [ T_UART_GLITCH_FAIL_MENU_1 ] = "1 - 255", + [ T_UART_GLITCH_FAIL_PROMPT ] = "ASCII value of first char of normal response (35 - '#')", + [ T_UART_GLITCH_CNT_MENU ] = "Number of glitch attempts", + [ T_UART_GLITCH_CNT_MENU_1 ] = "1 - 10000", + [ T_UART_GLITCH_CNT_PROMPT ] = "Number of glitch attempts before quitting (100)", + [ T_UART_GLITCH_GLITCHED ] = "Target glitch success!", + [ T_UART_GLITCH_CANCELLED ] = "Target glitch cancelled by button", + [ T_UART_GLITCH_DONE ] = "Target glitch count exceeded, no glitch :/", + [ T_UART_TOOL_TIMEOUT ] = "Timout waiting for glitch hardware :/", + [ T_UART_GLITCH_UNKNOWN ] = "Target glitching stopped for unknown reason", + [ T_UART_GLITCH_SETUP_ERR ] = "Error setting up glitcher - check uglitch.bp file", + [ T_UART_ACTUAL_SPEED_BAUD ] = "Stvarna brzina", + [ T_UART_BAUD ] = "baud", + [ T_UART_OPEN ] = "UART OPEN", + [ T_UART_OPEN_WITH_READ ] = "UART OPEN (ASYNC READ)", + [ T_UART_CLOSE ] = "UART CLOSE", + [ T_UART_NO_DATA_READ ] = "Nema podataka za čiranje", + [ T_UART_NO_DATA_TIMEOUT ] = "Timeout čitanja podataka", + [ T_HWI2C_SPEED_MENU ] = "I2C brzina", + [ T_HWI2C_SPEED_MENU_1 ] = "1kHz do 1000kHz", + [ T_HWI2C_SPEED_PROMPT ] = "kHz (%s%dkHz*%s)", + [ T_HWI2C_DATA_BITS_MENU ] = "Data bita", + [ T_HWI2C_DATA_BITS_MENU_1 ] = "8", + [ T_HWI2C_DATA_BITS_MENU_2 ] = "10", + [ T_HWI2C_DATA_BITS_PROMPT ] = "Bita", + [ T_HWI2C_CLOCK_STRETCH_MENU ] = "Clock stretching", + [ T_HWI2C_CLOCK_STRETCH_PROMPT ] = "(OFF)", + [ T_HWI2C_START ] = "I2C START", + [ T_HWI2C_REPEATED_START ] = "I2C REPEATED START", + [ T_HWI2C_STOP ] = "I2C STOP", + [ T_HWI2C_ACK ] = "ACK", + [ T_HWI2C_NACK ] = "NACK", + [ T_HWI2C_NO_PULLUP_DETECTED ] = "pull-up nije detektovan. Koristite P da omogućite pull-up otpornike na ploči", + [ T_HWI2C_NO_VOUT_DETECTED ] = "no power detected", + [ T_HWI2C_TIMEOUT ] = "I2C timeout", + [ T_HWI2C_I2C_ERROR ] = "I2C bus greška", + [ T_HW2WIRE_SPEED_MENU ] = "2WIRE speed", + [ T_HW2WIRE_RST_LOW ] = "RST LOW", + [ T_HW2WIRE_RST_HIGH ] = "RST HIGH", + [ T_HW3WIRE_SPEED_MENU_1 ] = "1 to 3900kHz", + [ T_HWLED_DEVICE_MENU ] = "LED tip", + [ T_HWLED_DEVICE_MENU_1 ] = "WS2812/SK6812/'NeoPixel' (single wire interface)", + [ T_HWLED_DEVICE_MENU_2 ] = "APA102/SK9822 (clock i data interface)", + [ T_HWLED_DEVICE_MENU_3 ] = "LEDovi na ploči (18 SK6812s)", + [ T_HWLED_DEVICE_PROMPT ] = "Type", + [ T_HWLED_NUM_LEDS_MENU ] = "Broj LEDova u traci", + [ T_HWLED_NUM_LEDS_MENU_1 ] = "1 do 10000", + [ T_HWLED_NUM_LEDS_PROMPT ] = "LEDovi (%s%d*%s)", + [ T_HWLED_RESET ] = "RESET", + [ T_HWLED_FRAME_START ] = "START FRAME (0x00000000)", + [ T_HWLED_FRAME_STOP ] = "STOP FRAME (0xFFFFFFFF)", + [ T_HW1WIRE_RESET ] = "1-Wire RESET", + [ T_HW1WIRE_PRESENCE_DETECT ] = "Uređaj detektovan", + [ T_HW1WIRE_NO_DEVICE ] = "Nema detektovanog uređaja", + [ T_IR_RX_SENSOR_MENU ] = "RX sensor", + [ T_IR_RX_SENSOR_MENU_LEARNER ] = "20-60kHz learner", + [ T_IR_RX_SENSOR_MENU_BARRIER ] = "38kHz barrier", + [ T_IR_RX_SENSOR_MENU_38K_DEMOD ] = "36-40kHz demodulator", + [ T_IR_RX_SENSOR_MENU_56K_DEMOD ] = "56kHz demodulator", + [ T_IR_TX_SPEED_MENU ] = "TX modulation", + [ T_IR_TX_SPEED_MENU_1 ] = "20kHz to 60kHz", + [ T_IR_TX_SPEED_PROMPT ] = "kHz (%s%dkHz*%s)", + [ T_IR_PROTOCOL_MENU ] = "Protocol", + [ T_IR_PROTOCOL_MENU_RC5 ] = "RC5", + [ T_IR_PROTOCOL_MENU_NEC ] = "NEC", + [ T_CMDLN_INVALID_COMMAND ] = "Nevažeća naredba: %s. Unesite ? za pomoć.", + [ T_CMDLN_NO_HELP ] = "Pomoć trenutno nije dostupna za ovu naredbu.", + [ T_CMDLN_LS ] = "ls {direktorij} - listing datoteka u trenutnoj lokaciji ili {direktorij} lokaciji.", + [ T_CMDLN_CD ] = "cd {direktorij} - premjestite se u {direktorij} lokaciju.", + [ T_CMDLN_MKDIR ] = "mkdir {direktorij} - kreirajte {direktorij}.", + [ T_CMDLN_RM ] = "rm {datoteka/direktorij} - uklonite datoteku ili (prazan) direktorij.", + [ T_CMDLN_CAT ] = "cat {datoteka} - prikažite sadržaj {datoteka}.", + [ T_CMDLN_MODE ] = "m - promjenite protokol mod, prikažite izbornik.", + [ T_CMDLN_PSU_EN ] = "W - omogućite napojnu jedinicu na ploči, prikažite konfiguracijski izbornik.", + [ T_CMDLN_RESET ] = "# - poništite postavke i ponovno pokrenite Bus Pirate.", + [ T_CMDLN_BOOTLOAD ] = "$ - poništite postavke i otvorite bootloader mod za ažuriranje.", + [ T_CMDLN_INT_FORMAT ] = "= {vrijednost} - konvertujte {vrijednost} u BIN/DEC/HEX/ASCII.", + [ T_CMDLN_INT_INVERSE ] = "| {vrijednost} - invertirajte bite u {vrijednost}.", + [ T_CMDLN_HELP ] = "? - prikažite pomoć za naredbe i sintaksu.", + [ T_CMDLN_CONFIG_MENU ] = "c - otvorite Bus Pirate konfiguracijski izbornik.", + [ T_CMDLN_FREQ_ONE ] = "f {IOx} - izmjerite frekvenciju na {IOx} jedanput.", + [ T_CMDLN_FREQ_CONT ] = "F {IOx} - izmjerite frekvenciju na {IOx} kontinualno.", + [ T_CMDLN_PWM_CONFIG ] = "G - konfigurišite frekvencijski generator (PWM) na slobodnom IOx pinu.", + [ T_CMDLN_PWM_DIS ] = "g {IOx} - onemogućite frekvencijski generator (PWM) na pinu {IOx}.", + [ T_CMDLN_HELP_MODE ] = "h - prikažite ekran pomoći za izabrani mod.", + [ T_CMDLN_HELP_DISPLAY ] = "hd - show display mode specific help screen.", + [ T_CMDLN_INFO ] = "i - prikažite Bus Pirate informacijski i status ekran.", + [ T_CMDLN_BITORDER_MSB ] = "l - zadajte Most Significant Bit red ispisa.", + [ T_CMDLN_BITORDER_LSB ] = "L - zadajte Least Significant Bit red ispisa.", + [ T_CMDLN_DISPLAY_FORMAT ] = "o - podesite format ispisa brojeva.", + [ T_CMDLN_PULLUPS_EN ] = "P - omogućite pull-up otpornike na ploči.", + [ T_CMDLN_PULLUPS_DIS ] = "p - onemogućite pull-up otpornike na ploči.", + [ T_CMDLN_PSU_DIS ] = "w - onemogućite napojnu jedinicu na ploči.", + [ T_CMDLN_ADC_CONT ] = "V {IOx} - kontinualno mjerenje napona na pinu {IOx}. Unesite bez broja pina za mjerenje napona na svim pinovima.", + [ T_CMDLN_ADC_ONE ] = "v {IOx} - jednokratno mjerenje napona na pinu {IOx}. Unesite bez broja pina za jednokratno mjerenje napona na svim pinovima.", + [ T_CMDLN_SELFTEST ] = "~ - izvršite fabrički self-test. Odspojite sve priključene uređaje i pređite u HiZ mod prije pokretanja testa.", + [ T_CMDLN_AUX_IN ] = "@ {IOx} - postavite pin {IOx} kao ulaz, pročitajte stanje.", + [ T_CMDLN_AUX_LOW ] = "a {IOx} - postavite pin {IOx} kao izlaz i LOW.", + [ T_CMDLN_AUX_HIGH ] = "A {IOx} - postavite pin {IOx} kao izlaz i HIGH.", + [ T_CMDLN_DUMP ] = "dump {datoteka} {uređaj} - zapišite sadržaj flash {uređaj} u {datoteka}. Upozorenje: trenutno radi kao prototip samo sa 25LC020 u SPI modu.", + [ T_CMDLN_LOAD ] = "load {datoteka} {uređaj} - učitajte saržaj {datoteka} na flash {uređaj}. Upozorenje: trenutno radi kao prototip sa 25LC020 u SPI modu.", + [ T_CMDLN_DISPLAY ] = "d - change display mode, show selection menu.", + [ T_CMDLN_LOGIC ] = "logic - logic analyzer. 1kHz-62500kHz, 0:7, 0:1.", + [ T_CMDLN_HEX ] = "hex - print contents of in HEX", + [ T_HELP_TITLE ] = "Opšte naredbe\t\t\tBus sintaksa", + [ T_HELP_GENERAL_COMMANDS ] = "Opšte naredbe", + [ T_HELP_BUS_SYNTAX ] = "Bus sintaksa", + [ T_HELP_DISK_COMMANDS ] = "Disk naredbe", + [ T_HELP_BLANK ] = "\t\t\t", + [ T_HELP_SECTION_IO ] = "work with pins, input, output measurement", + [ T_HELP_SECTION_CAPTURE ] = "measure analog and digital signals", + [ T_HELP_SECTION_CONFIGURE ] = "configure the terminal, LEDs, display and mode", + [ T_HELP_SECTION_SYSTEM ] = "restart, firmware updates and diagnostic", + [ T_HELP_SECTION_FILES ] = "list files and navigate the storage", + [ T_HELP_SECTION_PROGRAMS ] = "useful commands and mini-programs", + [ T_HELP_SECTION_MODE ] = "enter a mode to use protocols", + [ T_HELP_SECTION_SYNTAX ] = "send and receive data in modes using bus syntax", + [ T_HELP_SECTION_HELP ] = "get more help", + [ T_HELP_GREATER_THAN ] = "Pokrenite Bus sintaksa (vidjeti: Bus sintaksa)", + [ T_HELP_SYNTAX_ADC ] = "Mjeri napon na IO.x\t", + [ T_HELP_CMD_LS ] = "Izlistaj datoteke", + [ T_HELP_CMD_CD ] = "Promjeni direktorij", + [ T_HELP_CMD_MKDIR ] = "Napravi direktorij", + [ T_HELP_CMD_RM ] = "Ukloni datoteku/Direktorij", + [ T_HELP_CMD_PAUSE ] = "Pause for user input, optional exit", + [ T_HELP_CMD_FORMAT ] = "Format storage disk (FAT16)", + [ T_HELP_CMD_CAT ] = "Ispiši sadržaj datoteke", + [ T_HELP_CMD_HEX ] = "Print file contents in HEX", + [ T_HELP_CAPTURE_SCOPE ] = "Oscilloscope interface", + [ T_HELP_CAPTURE_LA ] = "Logic analyzer interface", + [ T_HELP_CMD_FLASH ] = "Erase, write, read and verify SPI flash chips", + [ T_HELP_CMD_LABEL ] = "Get or set the disk label", + [ T_HELP_CMD_IMAGE ] = "Write a bitmap image on the LCD", + [ T_HELP_CMD_DUMP ] = "Repeat read command, save ouput to storage", + [ T_HELP_1_2 ] = "Konvertuj x/obrni x\t", + [ T_HELP_1_3 ] = "Selftest\t\t", + [ T_HELP_1_4 ] = "Poništi postavke na Bus Pirate\t", + [ T_HELP_1_5 ] = "Prebaci na bootloader\t", + [ T_HELP_1_6 ] = "Odloži 1 us/MS (d:4 za ponavljanje)", + [ T_HELP_1_7 ] = "Postavi IO.x stanje (low/HI/READ)", + [ T_HELP_COMMAND_AUX ] = "Postavi IO x stanje (low/HI/READ)", + [ T_HELP_COMMAND_DISPLAY ] = "Change screen display mode", + [ T_HELP_1_9 ] = "Konfiguracijski izbornik\t", + [ T_HELP_1_22 ] = "Prikaži napon na IOx (jednom/CONT)", + [ T_HELP_1_10 ] = "Prikaži napon na svim IO (jednom/CONT)", + [ T_HELP_1_11 ] = "Izmjeri frekvenciju na IOx (jednom/CONT)", + [ T_HELP_1_23 ] = "Prati frekvenciju (off/ON)\t", + [ T_HELP_1_12 ] = "Generiši frekvenciju (off/ON)", + [ T_HELP_HELP_GENERAL ] = "Global, mode and display help. Try '?', '? mode' and '? display'", + [ T_HELP_HELP_DISPLAY ] = "Help with a display mode such as the scope", + [ T_HELP_HELP_COMMAND ] = "Add -h for command help: ls -h", + [ T_HELP_1_14 ] = "Versioninfo/statusinfo\t", + [ T_HELP_1_15 ] = "Bitorder (msb/LSB)\t", + [ T_HELP_1_16 ] = "Promjeni mod\t\t", + [ T_HELP_1_17 ] = "Zadaj format prikaza brojeva", + [ T_HELP_1_18 ] = "Pull-up otpornik (off/ON)", + [ T_HELP_1_19 ] = "-\t\t\t", + [ T_HELP_1_20 ] = "Prikaži napon/stanja\t", + [ T_HELP_1_21 ] = "Napajanje (off/ON)\t", + [ T_HELP_2_1 ] = "Makro mod x/prikaži sve\t", + [ T_HELP_2_3 ] = "Start", + [ T_HELP_2_4 ] = "Stop", + [ T_HELP_2_7 ] = "Pošalji string", + [ T_HELP_2_8 ] = "", + [ T_HELP_2_9 ] = "", + [ T_HELP_2_10 ] = "Pošalji vrijednost", + [ T_HELP_2_11 ] = "Čitaj", + [ T_HELP_SYN_CLOCK_HIGH ] = "Clock high", + [ T_HELP_SYN_CLOCK_LOW ] = "Clock low", + [ T_HELP_SYN_CLOCK_TICK ] = "Clock tick", + [ T_HELP_SYN_DATA_HIGH ] = "Data high", + [ T_HELP_SYN_DATA_LOW ] = "Data low", + [ T_HELP_SYN_DATA_READ ] = "Read data pin state", + [ T_HELP_2_18 ] = "Čitaj bit", + [ T_HELP_2_19 ] = "Ponovi npr. r:10", + [ T_HELP_2_20 ] = "Pročitaj/zapiši bita npr. 0x55.2", + [ T_HELP_2_21 ] = "Korisnički makro x/izlistaj sve", + [ T_HELP_2_22 ] = "Korisnički makro dodijeli x", + [ T_HELP_HINT ] = "Uvežite više naredbi sa ; || &&.\r\n\r\nProbajte -h pomoć: ls -h", + [ T_HELP_FLASH ] = "read, write and erase flash chips using SFDP info if available", + [ T_HELP_FLASH_ERASE ] = "Erase flash chip. flash erase [-v(erify)]", + [ T_HELP_FLASH_WRITE ] = "Write file to flash chip. flash write -f [-e(rase)] [-v(erify)]", + [ T_HELP_FLASH_READ ] = "Read flash chip to file. flash read -f ", + [ T_HELP_FLASH_VERIFY ] = "Verify flash chip against file. flash verify -f ", + [ T_HELP_FLASH_TEST ] = "Erase and write full chip with dummy data, verify. flash test", + [ T_HELP_FLASH_PROBE ] = "Probe flash chip for ID and SFDP info. flash probe", + [ T_HELP_FLASH_INIT ] = "Reset and initialize flash chip. Default if no options given. flash", + [ T_HELP_FLASH_FILE_FLAG ] = "File flag. File to write, read or verify. flash verify -f ", + [ T_HELP_FLASH_ERASE_FLAG ] = "Erase flag. Add erase before write. flash write -f -e", + [ T_HELP_FLASH_VERIFY_FLAG ] = "Verify flag. Add verify after write or erase. flash write -f -v", + [ T_INFO_FIRMWARE ] = "Firmware", + [ T_INFO_BOOTLOADER ] = "Bootloader", + [ T_INFO_WITH ] = "sa", + [ T_INFO_RAM ] = "RAM", + [ T_INFO_FLASH ] = "FLASH", + [ T_INFO_SN ] = "S/N", + [ T_INFO_WEBSITE ] = "https://BusPirate.com/", + [ T_INFO_TF_CARD ] = "Storage", + [ T_INFO_FILE_SYSTEM ] = "File System", + [ T_NOT_DETECTED ] = "Not Detected", + [ T_INFO_AVAILABLE_MODES ] = "Dostupni modovi", + [ T_INFO_CURRENT_MODE ] = "Aktivni mod", + [ T_INFO_POWER_SUPPLY ] = "Napajanje", + [ T_INFO_CURRENT_LIMIT ] = "Granica struje", + [ T_INFO_PULLUP_RESISTORS ] = "Pull-up otpornik", + [ T_INFO_FREQUENCY_GENERATORS ] = "Generatori frekvencija", + [ T_INFO_DISPLAY_FORMAT ] = "Format prikaza", + [ T_INFO_DATA_FORMAT ] = "Format podataka", + [ T_INFO_BITS ] = "biti", + [ T_INFO_BITORDER ] = "bitorder", + [ T_CONFIG_FILE ] = "Konfiguracijska datoteka", + [ T_CONFIG_CONFIGURATION_OPTIONS ] = "Konfiguracijske opcije", + [ T_CONFIG_LANGUAGE ] = "Language / Jezik / Lingua / 语言", + [ T_CONFIG_ANSI_COLOR_MODE ] = "ANSI color mode", + [ T_CONFIG_ANSI_COLOR_FULLCOLOR ] = "ANSI Full-Color (16M colors)", + [ T_CONFIG_ANSI_COLOR_256 ] = "ANSI-256 color", + [ T_CONFIG_ANSI_TOOLBAR_MODE ] = "ANSI toolbar mode", + [ T_CONFIG_LANGUAGE_ENGLISH ] = "Language - English (US)", + [ T_CONFIG_LANGUAGE_CHINESE ] = "语言 - 中文(简体)", + [ T_CONFIG_LANGUAGE_POLISH ] = "Język - polski (Polska)", + [ T_CONFIG_LANGUAGE_BOSNIAN ] = "Jezik - bosanski (latinica, Bosna i Hercegovina)", + [ T_CONFIG_LANGUAGE_ITALIAN ] = "Lingua - italiano (Italia)", + [ T_CONFIG_DISABLE ] = "Onemogući", + [ T_CONFIG_ENABLE ] = "Omogući", + [ T_CONFIG_SCREENSAVER ] = "LCD screensaver", + [ T_CONFIG_SCREENSAVER_5 ] = "5 minuta", + [ T_CONFIG_SCREENSAVER_10 ] = "10 minuta", + [ T_CONFIG_SCREENSAVER_15 ] = "15 minuta", + [ T_CONFIG_LEDS_EFFECT ] = "LED efektri", + [ T_CONFIG_LEDS_EFFECT_SOLID ] = "Jednobojno", + [ T_CONFIG_LEDS_EFFECT_ANGLEWIPE ] = "Ugaono kruženje", + [ T_CONFIG_LEDS_EFFECT_CENTERWIPE ] = "Centrirano kruženje", + [ T_CONFIG_LEDS_EFFECT_CLOCKWISEWIPE ] = "Kruženje u smijeru kazaljke", + [ T_CONFIG_LEDS_EFFECT_TOPDOWNWIPE ] = "Prelaz odozgo", + [ T_CONFIG_LEDS_EFFECT_SCANNER ] = "Skener", + [ T_CONFIG_LEDS_EFFECT_GENTLE_GLOW ] = "Gentle glow", + [ T_CONFIG_LEDS_EFFECT_CYCLE ] = "Ludnica mod", + [ T_CONFIG_LEDS_COLOR ] = "LED boja", + [ T_CONFIG_LEDS_COLOR_RAINBOW ] = "Duga", + [ T_CONFIG_LEDS_COLOR_RED ] = "Crvena", + [ T_CONFIG_LEDS_COLOR_ORANGE ] = "Narandžasta", + [ T_CONFIG_LEDS_COLOR_YELLOW ] = "Žuta", + [ T_CONFIG_LEDS_COLOR_GREEN ] = "Zelena", + [ T_CONFIG_LEDS_COLOR_BLUE ] = "Plava", + [ T_CONFIG_LEDS_COLOR_PURPLE ] = "Ljubičasta", + [ T_CONFIG_LEDS_COLOR_PINK ] = "Roza", + [ T_CONFIG_LEDS_COLOR_WHITE ] = "White", + [ T_CONFIG_LEDS_BRIGHTNESS ] = "LED svjetlina", + [ T_CONFIG_LEDS_BRIGHTNESS_10 ] = "10%", + [ T_CONFIG_LEDS_BRIGHTNESS_20 ] = "20%", + [ T_CONFIG_LEDS_BRIGHTNESS_30 ] = "30%", + [ T_CONFIG_LEDS_BRIGHTNESS_40 ] = "40%", + [ T_CONFIG_LEDS_BRIGHTNESS_50 ] = "50%", + [ T_CONFIG_LEDS_BRIGHTNESS_100 ] = "100% ***UPOZORENJE: doći će do oštećenja bez vanjskog USB napajanja***", + [ T_CONFIG_BINMODE_SELECT ] = "Select binary mode", + [ T_HELP_DUMMY_COMMANDS ] = "Dummy commands valid in position 1", + [ T_HELP_DUMMY_INIT ] = "Dummy init command", + [ T_HELP_DUMMY_TEST ] = "Dummy test command", + [ T_HELP_DUMMY_FLAGS ] = "Dummy flags", + [ T_HELP_DUMMY_B_FLAG ] = "-b require Bus Pirate button to be pushed. Takes no parameters", + [ T_HELP_DUMMY_I_FLAG ] = "-i . Requires integer number parameter", + [ T_HELP_DUMMY_FILE_FLAG ] = "-f . Create/write/read . Requires file string parameter", + [ T_HELP_SLE4442 ] = "SLE4442 smart card interface", + [ T_HELP_SLE4442_INIT ] = "Initialize card with ISO7816-3 ATR. Default action", + [ T_HELP_SLE4442_DUMP ] = "Display main, security and protect memory", + [ T_HELP_SLE4442_UNLOCK ] = "Unlock card with Programmable Security Code (PSC)", + [ T_HELP_SLE4442_WRITE ] = "Write data to card (requires unlock)", + [ T_HELP_SLE4442_ERASE ] = "Erase data from range 0x32-0x255 (requires unlock)", + [ T_HELP_SLE4442_PSC ] = "Change Programmable Security Code (PSC)", + [ T_HELP_SLE4442_ADDRESS_FLAG ] = "Write address flag", + [ T_HELP_SLE4442_VALUE_FLAG ] = "Write value flag", + [ T_HELP_SLE4442_CURRENT_PSC_FLAG ] = "Current Programmable Security Code (PSC) flag", + [ T_HELP_SLE4442_NEW_PSC_FLAG ] = "New Programmable Security Code (PSC) flag", + [ T_HELP_SLE4442_FILE_FLAG ] = "Dump file name flag", + [ T_HELP_GCMD_W ] = "onboard power supply with programmable fuse", + [ T_HELP_GCMD_W_DISABLE ] = "Disable onboard power supply", + [ T_HELP_GCMD_W_ENABLE ] = "Enable onboard power supply, show configuration menu", + [ T_HELP_GCMD_W_VOLTS ] = "Voltage, 0.8-5.0volts", + [ T_HELP_GCMD_W_CURRENT_LIMIT ] = "Current limit, 0-500mA", + [ T_HELP_GCMD_P ] = "onboard pull-up resistors", + [ T_HELP_HELP ] = "help for Bus Pirate commands and modes", + [ T_HELP_SYS_COMMAND ] = "Commands to access the help system", + [ T_HELP_SYS_DISPLAY ] = "Show display mode help (such as oscilloscope)", + [ T_HELP_SYS_MODE ] = "Show mode specific commands and help", + [ T_HELP_SYS_HELP ] = "How to use the help system", + [ T_HELP_GCMD_SELFTEST ] = "run a complete system self-test", + [ T_HELP_GCMD_SELFTEST_CMD ] = "Run self-test", + [ T_HELP_GCMD_SELFTEST_H_FLAG ] = "Self-test help", + [ T_HELP_AUXIO ] = "set IO pin state, read input pins", + [ T_HELP_AUXIO_LOW ] = "Output, low/0. Reserves pin for output", + [ T_HELP_AUXIO_HIGH ] = "Output, high/1. Reserves pin for output", + [ T_HELP_AUXIO_INPUT ] = "Input, read state. Releases reserved pin", + [ T_HELP_AUXIO_IO ] = "IO pin number, 0-7", + [ T_HELP_DISK_HEX ] = "Print file contents in HEX format", + [ T_HELP_DISK_HEX_FILE ] = "Name of file in 8.3 format (example1.bin)", + [ T_HELP_DISK_HEX_ADDR ] = "Show address offset", + [ T_HELP_DISK_HEX_ASCII ] = "Show also ASCII dump", + [ T_HELP_DISK_HEX_SIZE ] = "Set line size in bytes", + [ T_HELP_DISK_HEX_OFF ] = "Set file read start offset in bytes", + [ T_HELP_DISK_HEX_PAGER_OFF ] = "Disable the pager for dumping", + [ T_HELP_DISK_CAT ] = "print file contents as text", + [ T_HELP_DISK_CAT_FILE ] = "Name of file in 8.3 format (example1.txt)", + [ T_HELP_DISK_MKDIR ] = "create directory on internal storage", + [ T_HELP_DISK_MKDIR_DIR ] = "Directory name, 8 characters max", + [ T_HELP_DISK_CD ] = "change to a directory on local storage", + [ T_HELP_DISK_CD_DIR ] = "Directory name, 8 characters max", + [ T_HELP_DISK_RM ] = "delete file or directory on local storage", + [ T_HELP_DISK_RM_FILE ] = "Name of file to delete, 8.3 format", + [ T_HELP_DISK_RM_DIR ] = "Name of directory to delete, 8 characters max", + [ T_HELP_DISK_LS ] = "list files and directories on local storage", + [ T_HELP_DISK_LS_DIR ] = "List contents of this directory, optional", + [ T_HELP_DISK_FORMAT ] = "erase and format internal storage in FAT16 format", + [ T_HELP_DISK_FORMAT_CMD ] = "All data will be lost, answer 'y' twice to continue", + [ T_HELP_DISK_LABEL ] = "get or set the disk label", + [ T_HELP_DISK_LABEL_GET ] = "returns the current label of the disk", + [ T_HELP_DISK_LABEL_SET ] = "sets the current label of the disk", + [ T_HELP_VADC ] = "measure voltage on IO pins", + [ T_HELP_VADC_SINGLE ] = "Single measurement", + [ T_HELP_VADC_CONTINUOUS ] = "Continuous measurement", + [ T_HELP_VADC_IO ] = "IO pin number, 0-7", + [ T_HELP_I2C_SCAN ] = "scan I2C addresses, with optional part number", + [ T_HELP_I2C_SCAN_VERBOSE ] = "Verbose mode, print potential part numbers", + [ T_HELP_FLAG ] = "Get additional help", + [ T_HELP_I2C_SI7021 ] = "Read temperature and humidity from SI7021/HTU21/SHT21 sensor", + [ T_HELP_I2C_MS5611 ] = "Read temperature and pressure from MS5611 sensor", + [ T_HELP_I2C_TSL2561 ] = "Read light intensity (LUX) from TSL2561 sensor", + [ T_HELP_1WIRE_SCAN ] = "scan for 1-Wire devices", + [ T_HELP_1WIRE_DS18B20 ] = "Query DS18B20 temperature sensor", + [ T_HELP_UART_BRIDGE ] = "open UART with raw data IO, usb to serial bridge mode", + [ T_HELP_UART_BRIDGE_EXIT ] = "UART bridge. Press Bus Pirate button to exit.", + [ T_HELP_UART_BRIDGE_TOOLBAR ] = "ENABLE toolbar while bridge is active (default: disabled)", + [ T_HELP_UART_BRIDGE_SUPPRESS_LOCAL_ECHO ] = "Suppress local echo, don't echo back sent data", + [ T_HELP_UART_NMEA ] = "parse NMEA GPS data", + [ T_HELP_UART_GLITCH_EXIT ] = "UART Glitcher. Press Bus Pirate button to exit.", + [ T_HELP_SECTION_SCRIPT ] = "run scripts, macros and assign button functions", + [ T_HELP_CMD_SCRIPT ] = "Run script files, automation", + [ T_HELP_CMD_BUTTON ] = "Assign button functions", + [ T_HELP_CMD_MACRO ] = "Run macros, load a macro file", + [ T_HELP_CMD_TUTORIAL ] = "Run tutorial files", + [ T_HELP_CMD_PAUSE_KEY ] = "Press any key to continue (default)", + [ T_HELP_CMD_PAUSE_BUTTON ] = "Press the Bus Pirate button to continue", + [ T_HELP_CMD_PAUSE_EXIT ] = "'x' key to exit (e.g. script mode)", + [ T_HELP_BUTTON ] = "Assign script file to button press", + [ T_HELP_BUTTON_SHORT ] = "Assign script file to short button press", + [ T_HELP_BUTTON_LONG ] = "Assign script file to long button press", + [ T_HELP_BUTTON_FILE ] = "Script file to assign to button press", + [ T_HELP_BUTTON_HIDE ] = "Hide comments", + [ T_HELP_BUTTON_EXIT ] = "Exit script on error", + [ T_HELP_LOGIC ] = "logic analyzer control", + [ T_HELP_LOGIC_START ] = "start logic analyzer", + [ T_HELP_LOGIC_STOP ] = "stop logic analyzer", + [ T_HELP_LOGIC_HIDE ] = "hide logic graph", + [ T_HELP_LOGIC_SHOW ] = "show logic graph", + [ T_HELP_LOGIC_NAV ] = "navigate logic graph with arrow keys, x to exit", + [ T_HELP_LOGIC_INFO ] = "show configuration info", + [ T_HELP_LOGIC_FREQUENCY ] = "set sample frequency in Hz", + [ T_HELP_LOGIC_OVERSAMPLE ] = "set oversample rate, multiplies the sample frequency", + [ T_HELP_LOGIC_DEBUG ] = "set debug level: 0-2", + [ T_HELP_LOGIC_SAMPLES ] = "set number of samples", + [ T_HELP_LOGIC_TRIGGER_PIN ] = "set trigger pin, 0-7", + [ T_HELP_LOGIC_TRIGGER_LEVEL ] = "set trigger level, 0-1", + [ T_HELP_LOGIC_LOW_CHAR ] = "set character used for low in graph (ex:_)", + [ T_HELP_LOGIC_HIGH_CHAR ] = "set character used for high in graph (ex:*)", + [ T_HELP_CMD_CLS ] = "Clear and reset the terminal", + [ T_HELP_SECTION_TOOLS ] = "tools and utilities", + [ T_HELP_CMD_LOGIC ] = "Logic analyzer", + [ T_HELP_CMD_SMPS ] = "Switch mode power supply (plank required)", + [ T_INFRARED_CMD_TEST ] = "Test IR RX/TX Toy plank", + [ T_UART_CMD_TEST ] = "Test Dual RS232 plank", + [ T_SPI_CMD_SNIFF ] = "SPI sniffer", + [ T_HELP_UART_GLITCH ] = "UART glitcher", + [ T_HELP_UART_GLITCH_CONFIG ] = "Configure UART glitch parameters", + +}; diff --git a/src/translation/en-us.h b/src/translation/en-us.h index a0428710..ae03eca8 100644 --- a/src/translation/en-us.h +++ b/src/translation/en-us.h @@ -115,6 +115,30 @@ static char const * const en_us[]={ [T_UART_INVERT_MENU_1]="Non-inverted (Standard)", [T_UART_INVERT_MENU_2]="Inverted", [T_UART_INVERT_PROMPT]="Invert signals", + [T_UART_GLITCH_TRG_MENU]="Glitch trigger character", + [T_UART_GLITCH_TRG_MENU_1]="1 - 255", + [T_UART_GLITCH_TRG_PROMPT]="ASCII value of trigger character (13)", + [T_UART_GLITCH_DLY_MENU]="Glitch trigger delay", + [T_UART_GLITCH_DLY_MENU_1]="Delay time in us", + [T_UART_GLITCH_DLY_PROMPT]="Glitch trigger delay (1)", + [T_UART_GLITCH_VRY_MENU]="Glitch vary time", + [T_UART_GLITCH_VRY_MENU_1] = "1 - 10", + [T_UART_GLITCH_VRY_PROMPT] = "Glitch vary time (3)", + [T_UART_GLITCH_CYC_MENU]="Glitch cycle delay", + [T_UART_GLITCH_CYC_MENU_1]="10-1000", + [T_UART_GLITCH_CYC_PROMPT]="Minimum time between glitch cycles in ms (10)", + [T_UART_GLITCH_FAIL_MENU]="Normal response character", + [T_UART_GLITCH_FAIL_MENU_1]="1 - 255", + [T_UART_GLITCH_FAIL_PROMPT]="ASCII value of first char of normal response (35 - '#')", + [T_UART_GLITCH_CNT_MENU]="Number of glitch attempts", + [T_UART_GLITCH_CNT_MENU_1]="1 - 10000", + [T_UART_GLITCH_CNT_PROMPT]="Number of glitch attempts before quitting (100)", + [T_UART_GLITCH_GLITCHED]="Target glitch success!", + [T_UART_GLITCH_CANCELLED]="Target glitch cancelled by button", + [T_UART_GLITCH_DONE]="Target glitch count exceeded, no glitch :/", + [T_UART_TOOL_TIMEOUT]="Timout waiting for glitch hardware :/", + [T_UART_GLITCH_UNKNOWN]="Target glitching stopped for unknown reason", + [T_UART_GLITCH_SETUP_ERR]="Error setting up glitcher - check uglitch.bp file", [T_UART_ACTUAL_SPEED_BAUD]="Actual speed", [T_UART_BAUD]="baud", [T_UART_OPEN]="UART OPEN", @@ -450,6 +474,7 @@ static char const * const en_us[]={ [T_HELP_UART_BRIDGE_TOOLBAR]="ENABLE toolbar while bridge is active (default: disabled)", [T_HELP_UART_BRIDGE_SUPPRESS_LOCAL_ECHO]="Suppress local echo, don't echo back sent data", [T_HELP_UART_NMEA]="parse NMEA GPS data", + [T_HELP_UART_GLITCH_EXIT]="UART Glitcher. Press Bus Pirate button to exit.", [T_HELP_SECTION_SCRIPT]="run scripts, macros and assign button functions", [T_HELP_CMD_SCRIPT]="Run script files, automation", [T_HELP_CMD_BUTTON]="Assign button functions", @@ -487,6 +512,8 @@ static char const * const en_us[]={ [T_INFRARED_CMD_TEST]="Test IR RX/TX Toy plank", [T_UART_CMD_TEST]="Test Dual RS232 plank", [T_SPI_CMD_SNIFF]="SPI sniffer", + [T_HELP_UART_GLITCH]="UART glitcher", + [T_HELP_UART_GLITCH_CONFIG]="Configure UART glitch parameters" }; diff --git a/src/translation/en-us.json b/src/translation/en-us.json index 5d7a4f6e..ea743bfd 100644 --- a/src/translation/en-us.json +++ b/src/translation/en-us.json @@ -1,468 +1,495 @@ -{ - "T_ON": "ON", - "T_OFF": "OFF", - "T_GND": "GND", - "T_INPUT": "INPUT", - "T_OUTPUT": "OUTPUT", - "T_EXIT": "Exit", - "T_LOADED": "Loaded", - "T_SAVED": "Saved", - "T_HZ": "Hz", - "T_KHZ": "kHz", - "T_MHZ": "MHz", - "T_SPEED": "Speed", - "T_WARN_VOUT_VREF_LOW": "VOUT/VREF pin is not powered. Use W to enable power, or attach an external supply", - "T_USE_PREVIOUS_SETTINGS": "Use previous settings?", - "T_MODE_ERROR_NO_EFFECT": "ERROR: command has no effect here", - "T_MODE_ERROR_NO_EFFECT_HIZ": "Command has no effect in HiZ mode, press 'm' to choose a mode", - "T_MODE_NO_HELP_AVAILABLE": "No help available", - "T_PRESS_ANY_KEY_TO_EXIT": "Press any key to exit", - "T_PRESS_ANY_KEY": "Press any key", - "T_PRESS_BUTTON": "Press button", - "T_PRESS_X_TO_EXIT": "Press 'x' to exit", - "T_MODE_MODE_SELECTION": "Mode selection", - "T_MODE_MODE": "Mode", - "T_MODE_NUMBER_DISPLAY_FORMAT": "Number display format", - "T_MODE_INVALID_OPTION": "Invalid option", - "T_MODE_CHOOSE_AVAILABLE_PIN": "Choose available pin:", - "T_MODE_ALL_PINS_IN_USE": "All pins in use", - "T_MODE_PULLUP_RESISTORS": "Pull-up resistors", - "T_MODE_POWER_SUPPLY": "Power supply", - "T_MODE_DISABLED": "Disabled", - "T_MODE_DISPLAY": "Display", - "T_MODE_DISPLAY_SELECTION": "Display selection", - "T_MODE_ENABLED": "Enabled", - "T_MODE_BITORDER": "Bitorder", - "T_MODE_BITORDER_MSB": "MSB", - "T_MODE_BITORDER_LSB": "LSB", - "T_MODE_DELAY": "Delay", - "T_MODE_US": "us", - "T_MODE_MS": "ms", - "T_MODE_ADC_VOLTAGE": "Volts on", - "T_MODE_ERROR_PARSING_MACRO": "Error parsing macro", - "T_MODE_ERROR_NO_MACROS_AVAILABLE": "No macros available", - "T_MODE_ERROR_MACRO_NOT_DEFINED": "Macro not defined", - "T_MODE_TICK_CLOCK": "Tick clock", - "T_MODE_SET_CLK": "Set clock", - "T_MODE_SET_DAT": "Set data", - "T_MODE_READ_DAT": "Read data", - "T_MODE_NO_VOUT_VREF_ERROR": "No voltage detected on VOUT/VREF pin", - "T_MODE_NO_VOUT_VREF_HINT": "Hint: Use W to enable power, or attach an external supply", - "T_MODE_NO_PULLUP_ERROR": "Pull-up not detected on IO pin", - "T_MODE_NO_PULLUP_HINT": "Hint: Use P to enable pull-up resistors, or use external pull-up", - "T_MODE_PWM_GENERATE_FREQUENCY": "Generate frequency", - "T_MODE_FREQ_MEASURE_FREQUENCY": "Frequency measurement", - "T_MODE_FREQ_FREQUENCY": "Frequency", - "T_MODE_FREQ_DUTY_CYCLE": "Duty cycle", - "T_PSU_DAC_ERROR": "PSU DAC error, please run self-test", - "T_PSU_CURRENT_LIMIT_ERROR": "Current over limit, power supply disabled", - "T_PSU_SHORT_ERROR": "Potential short circuit, power supply disabled", - "T_PSU_ALREADY_DISABLED_ERROR": "Power supply already disabled", - "T_SYNTAX_EXCEEDS_MAX_SLOTS": "Result exceeds available space (%d slots)", - "T_HWSPI_SPEED_MENU": "SPI speed", - "T_HWSPI_SPEED_MENU_1": "1 to 62500kHz", - "T_HWSPI_SPEED_PROMPT": "kHz (%s%dkHz*%s)", - "T_HWSPI_BITS_MENU": "Data bits", - "T_HWSPI_BITS_MENU_1": "4 to 8 bits", - "T_HWSPI_BITS_PROMPT": "Bits (%s%d*%s)", - "T_HWSPI_CLOCK_POLARITY_MENU": "Clock polarity", - "T_HWSPI_CLOCK_POLARITY_MENU_1": "Idle LOW", - "T_HWSPI_CLOCK_POLARITY_MENU_2": "Idle HIGH", - "T_HWSPI_CLOCK_POLARITY_PROMPT": "Polarity", - "T_HWSPI_CLOCK_PHASE_MENU": "Clock phase", - "T_HWSPI_CLOCK_PHASE_MENU_1": "LEADING edge", - "T_HWSPI_CLOCK_PHASE_MENU_2": "TRAILING edge", - "T_HWSPI_CLOCK_PHASE_PROMPT": "Phase", - "T_HWSPI_CS_IDLE_MENU": "Chip select", - "T_HWSPI_CS_IDLE_MENU_1": "Active HIGH (CS)", - "T_HWSPI_CS_IDLE_MENU_2": "Active LOW (/CS)", - "T_HWSPI_CS_IDLE_PROMPT": "CS", - "T_HWSPI_ACTUAL_SPEED_KHZ": "Actual speed", - "T_HWSPI_CS_SELECT": "CS Enabled", - "T_HWSPI_CS_DESELECT": "CS Disabled", - "T_UART_SPEED_MENU": "UART speed", - "T_UART_SPEED_MENU_1": "1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 etc", - "T_UART_SPEED_PROMPT": "Baud (%s%d*%s)", - "T_UART_PARITY_MENU": "Parity", - "T_UART_PARITY_MENU_1": "None", - "T_UART_PARITY_MENU_2": "Even", - "T_UART_PARITY_MENU_3": "Odd", - "T_UART_PARITY_PROMPT": "Parity", - "T_UART_DATA_BITS_MENU": "Data bits", - "T_UART_DATA_BITS_MENU_1": "5 to 8 bits", - "T_UART_DATA_BITS_PROMPT": "Bits (%s%d*%s)", - "T_UART_STOP_BITS_MENU": "Stop bits", - "T_UART_STOP_BITS_MENU_1": "1", - "T_UART_STOP_BITS_MENU_2": "2", - "T_UART_STOP_BITS_PROMPT": "Bits", - "T_UART_BLOCKING_MENU": "Use blocking functions?", - "T_UART_BLOCKING_MENU_1": "No", - "T_UART_BLOCKING_MENU_2": "Yes", - "T_UART_BLOCKING_PROMPT": "Block", - "T_UART_FLOW_CONTROL_MENU": "Hardware flow control", - "T_UART_FLOW_CONTROL_MENU_1": "None", - "T_UART_FLOW_CONTROL_MENU_2": "RTS/CTS", - "T_UART_FLOW_CONTROL_PROMPT": "Flow control", - "T_UART_INVERT_MENU": "Signal inversion", - "T_UART_INVERT_MENU_1": "Non-inverted (Standard)", - "T_UART_INVERT_MENU_2": "Inverted", - "T_UART_INVERT_PROMPT": "Invert signals", - "T_UART_ACTUAL_SPEED_BAUD": "Actual speed", - "T_UART_BAUD": "baud", - "T_UART_OPEN": "UART OPEN", - "T_UART_OPEN_WITH_READ": "UART OPEN (ASYNC READ)", - "T_UART_CLOSE": "UART CLOSE", - "T_UART_NO_DATA_READ": "No data to read", - "T_UART_NO_DATA_TIMEOUT": "Data read timeout", - "T_HWI2C_SPEED_MENU": "I2C speed", - "T_HWI2C_SPEED_MENU_1": "1kHz to 1000kHz", - "T_HWI2C_SPEED_PROMPT": "kHz (%s%dkHz*%s)", - "T_HWI2C_DATA_BITS_MENU": "Data bits", - "T_HWI2C_DATA_BITS_MENU_1": "8", - "T_HWI2C_DATA_BITS_MENU_2": "10", - "T_HWI2C_DATA_BITS_PROMPT": "Bits", - "T_HWI2C_CLOCK_STRETCH_MENU": "Clock stretching", - "T_HWI2C_CLOCK_STRETCH_PROMPT": "(OFF)", - "T_HWI2C_START": "I2C START", - "T_HWI2C_REPEATED_START": "I2C REPEATED START", - "T_HWI2C_STOP": "I2C STOP", - "T_HWI2C_ACK": "ACK", - "T_HWI2C_NACK": "NACK", - "T_HWI2C_NO_PULLUP_DETECTED": "no pull-up detected", - "T_HWI2C_NO_VOUT_DETECTED": "no power detected", - "T_HWI2C_TIMEOUT": "I2C timeout", - "T_HWI2C_I2C_ERROR": "I2C bus error", - "T_HW2WIRE_SPEED_MENU": "2WIRE speed", - "T_HW2WIRE_RST_LOW": "RST LOW", - "T_HW2WIRE_RST_HIGH": "RST HIGH", - "T_HW3WIRE_SPEED_MENU_1": "1 to 3900kHz", - "T_HWLED_DEVICE_MENU": "LED type", - "T_HWLED_DEVICE_MENU_1": "WS2812/SK6812/'NeoPixel' (single wire interface)", - "T_HWLED_DEVICE_MENU_2": "APA102/SK9822 (clock and data interface)", - "T_HWLED_DEVICE_MENU_3": "Onboard LEDs (18 SK6812s)", - "T_HWLED_DEVICE_PROMPT": "Type", - "T_HWLED_NUM_LEDS_MENU": "Number of LEDs in the strip", - "T_HWLED_NUM_LEDS_MENU_1": "1 to 10000", - "T_HWLED_NUM_LEDS_PROMPT": "LEDs (%s%d*%s)", - "T_HWLED_RESET": "RESET", - "T_HWLED_FRAME_START": "START FRAME (0x00000000)", - "T_HWLED_FRAME_STOP": "STOP FRAME (0xFFFFFFFF)", - "T_HW1WIRE_RESET": "1-Wire RESET", - "T_HW1WIRE_PRESENCE_DETECT": "Presence detected", - "T_HW1WIRE_NO_DEVICE": "No device detected", - "T_IR_RX_SENSOR_MENU": "RX sensor", - "T_IR_RX_SENSOR_MENU_LEARNER": "20-60kHz learner", - "T_IR_RX_SENSOR_MENU_BARRIER": "38kHz barrier", - "T_IR_RX_SENSOR_MENU_38K_DEMOD": "36-40kHz demodulator", - "T_IR_RX_SENSOR_MENU_56K_DEMOD": "56kHz demodulator", - "T_IR_TX_SPEED_MENU": "TX modulation", - "T_IR_TX_SPEED_MENU_1": "20kHz to 60kHz", - "T_IR_TX_SPEED_PROMPT": "kHz (%s%dkHz*%s)", - "T_IR_PROTOCOL_MENU": "Protocol", - "T_IR_PROTOCOL_MENU_RC5": "RC5", - "T_IR_PROTOCOL_MENU_NEC": "NEC", - "T_CMDLN_INVALID_COMMAND": "Invalid command: %s. Type ? for help.", - "T_CMDLN_NO_HELP": "Help not currently available for this command.", - "T_CMDLN_LS": "ls - list files in the current location or location.", - "T_CMDLN_CD": "cd - change to location.", - "T_CMDLN_MKDIR": "mkdir - create .", - "T_CMDLN_RM": "rm - remove file or (empty) directory.", - "T_CMDLN_CAT": "cat - print the contents of .", - "T_CMDLN_MODE": "m - change protocol mode. m to skip the menu.", - "T_CMDLN_PSU_EN": "W - enable onboard power supply, show configuration menu.", - "T_CMDLN_RESET": "# - reset and restart the Bus Pirate.", - "T_CMDLN_BOOTLOAD": "$ - reset and enter bootloader mode for updates.", - "T_CMDLN_INT_FORMAT": "= - convert to BIN/DEC/HEX/ASCII.", - "T_CMDLN_INT_INVERSE": "| - inverse the bits in .", - "T_CMDLN_HELP": "? - show command and syntax help.", - "T_CMDLN_CONFIG_MENU": "c - open Bus Pirate configuration menu.", - "T_CMDLN_FREQ_ONE": "f - measure frequency on once.", - "T_CMDLN_FREQ_CONT": "F - measure frequency on continuously.", - "T_CMDLN_PWM_CONFIG": "G - configure frequency generator (PWM) on an available IOx pin.", - "T_CMDLN_PWM_DIS": "g - disable frequency generator (PWM) on pin .", - "T_CMDLN_HELP_MODE": "h - show mode specific help screen.", - "T_CMDLN_HELP_DISPLAY": "hd - show display mode specific help screen.", - "T_CMDLN_INFO": "i - show Bus Pirate info and status screen.", - "T_CMDLN_BITORDER_MSB": "l - set Most Significant Bit output order.", - "T_CMDLN_BITORDER_LSB": "L - set Least Significant Bit ouput order.", - "T_CMDLN_DISPLAY_FORMAT": "o - configure number output display format.", - "T_CMDLN_PULLUPS_EN": "P - enable onboard pull-up resistors.", - "T_CMDLN_PULLUPS_DIS": "p - disable onboard pull-up resistors.", - "T_CMDLN_PSU_DIS": "w - disable onboard power supply.", - "T_CMDLN_ADC_CONT": "V - continuous voltage measurement on pin . Omit the pin number to measure voltage on all pins.", - "T_CMDLN_ADC_ONE": "v - single voltage measurement on pin . Omit the pin number to measure voltage on all pins once.", - "T_CMDLN_SELFTEST": "~ - perform a factory self-test. Disconnect any attached devices and change to HiZ mode before starting the test.", - "T_CMDLN_AUX_IN": "@ - make pin input, read the pin state.", - "T_CMDLN_AUX_LOW": "a - make pin output and low.", - "T_CMDLN_AUX_HIGH": "A - make pin output and high.", - "T_CMDLN_DUMP": "dump - dump contents of flash to . Warning: currently a prototype that only works with 25LC020 in SPI mode.", - "T_CMDLN_LOAD": "load - load contents of to flash . Warning: currently a prototype that only works with 25LC020 in SPI mode.", - "T_CMDLN_DISPLAY": "d - change display mode, show selection menu.", - "T_CMDLN_LOGIC": "logic - logic analyzer. 1kHz-62500kHz, 0:7, 0:1.", - "T_CMDLN_HEX": "hex - print contents of in HEX", - "T_HELP_TITLE": "General CommandsBus Syntax", - "T_HELP_GENERAL_COMMANDS": "General Commands", - "T_HELP_BUS_SYNTAX": "Bus Syntax", - "T_HELP_DISK_COMMANDS": "Disk Commands", - "T_HELP_BLANK": "", - "T_HELP_SECTION_IO": "work with pins, input, output measurement", - "T_HELP_SECTION_CAPTURE": "measure analog and digital signals", - "T_HELP_SECTION_CONFIGURE": "configure the terminal, LEDs, display and mode", - "T_HELP_SECTION_SYSTEM": "restart, firmware updates and diagnostic", - "T_HELP_SECTION_FILES": "list files and navigate the storage", - "T_HELP_SECTION_PROGRAMS": "useful commands and mini-programs", - "T_HELP_SECTION_MODE": "enter a mode to use protocols", - "T_HELP_SECTION_SYNTAX": "send and receive data in modes using bus syntax", - "T_HELP_SECTION_HELP": "get more help", - "T_HELP_GREATER_THAN": "Run bus syntax", - "T_HELP_SYNTAX_ADC": "Measure volts on IO.x", - "T_HELP_CMD_LS": "List files", - "T_HELP_CMD_CD": "Change directory", - "T_HELP_CMD_MKDIR": "Make directory", - "T_HELP_CMD_RM": "Remove file/directory", - "T_HELP_CMD_PAUSE": "Pause for user input, optional exit", - "T_HELP_CMD_FORMAT": "Format storage disk (FAT16)", - "T_HELP_CMD_CAT": "Print file contents as text", - "T_HELP_CMD_HEX": "Print file contents in HEX", - "T_HELP_CAPTURE_SCOPE": "Oscilloscope interface", - "T_HELP_CAPTURE_LA": "Logic analyzer interface", - "T_HELP_CMD_FLASH": "Erase, write, read and verify SPI flash chips", - "T_HELP_CMD_LABEL": "Get or set the disk label", - "T_HELP_CMD_IMAGE": "Write a bitmap image on the LCD", - "T_HELP_CMD_DUMP": "Repeat read command, save ouput to storage", - "T_HELP_1_2": "Converts x/reverse x", - "T_HELP_1_3": "Self test", - "T_HELP_1_4": "Reset the Bus Pirate", - "T_HELP_1_5": "Jump to bootloader", - "T_HELP_1_6": "Delay 1 us/MS (d:4 to repeat)", - "T_HELP_1_7": "Set IO.x state (low/HI/READ)", - "T_HELP_COMMAND_AUX": "Set IO x state (low/HI/READ)", - "T_HELP_COMMAND_DISPLAY": "Change screen display mode", - "T_HELP_1_9": "Configure terminal, language, LEDs", - "T_HELP_1_22": "Show volts on IOx (once/CONT)", - "T_HELP_1_10": "Show volts all IOs (once/CONT)", - "T_HELP_1_11": "Measure freq on IOx (once/CONT)", - "T_HELP_1_23": "Monitor freq (off/ON)", - "T_HELP_1_12": "Generate frequency (off/ON)", - "T_HELP_HELP_GENERAL": "Global, mode and display help. Try '?', '? mode' and '? display'", - "T_HELP_HELP_DISPLAY": "Help with a display mode such as the scope", - "T_HELP_HELP_COMMAND": "Add -h for command help: ls -h", - "T_HELP_1_14": "Bus Pirate version and status info", - "T_HELP_1_15": "Bitorder (msb/LSB)", - "T_HELP_1_16": "Change to a protocol mode such as I2C", - "T_HELP_1_17": "Choose how numbers are displayed", - "T_HELP_1_18": "Pull-up resistors (off/ON)", - "T_HELP_1_19": "-", - "T_HELP_1_20": "Show volts/states", - "T_HELP_1_21": "Power supply (off/ON)", - "T_HELP_2_1": "Mode macro x/list all", - "T_HELP_2_3": "Start/Start II (mode dependent)", - "T_HELP_2_4": "Stop/Stop II (mode dependent)", - "T_HELP_2_7": "Write string", - "T_HELP_2_8": "Write value (decimal)", - "T_HELP_2_9": "Write value (hex)", - "T_HELP_2_10": "Write value (binary)", - "T_HELP_2_11": "Read", - "T_HELP_SYN_CLOCK_HIGH": "Clock high", - "T_HELP_SYN_CLOCK_LOW": "Clock low", - "T_HELP_SYN_CLOCK_TICK": "Clock tick", - "T_HELP_SYN_DATA_HIGH": "Data high", - "T_HELP_SYN_DATA_LOW": "Data low", - "T_HELP_SYN_DATA_READ": "Read data pin state", - "T_HELP_2_18": "Bit read", - "T_HELP_2_19": "Repeat e.g. r:10", - "T_HELP_2_20": "Bits to read/write e.g. 0x55.2", - "T_HELP_2_21": "User macro x/list all", - "T_HELP_2_22": "User macro assign x", - "T_HELP_HINT": "Chain multiple commands with ; || &&.", - "T_HELP_FLASH": "read, write and erase flash chips using SFDP info if available", - "T_HELP_FLASH_ERASE": "Erase flash chip. flash erase [-v(erify)]", - "T_HELP_FLASH_WRITE": "Write file to flash chip. flash write -f [-e(rase)] [-v(erify)]", - "T_HELP_FLASH_READ": "Read flash chip to file. flash read -f ", - "T_HELP_FLASH_VERIFY": "Verify flash chip against file. flash verify -f ", - "T_HELP_FLASH_TEST": "Erase and write full chip with dummy data, verify. flash test", - "T_HELP_FLASH_PROBE": "Probe flash chip for ID and SFDP info. flash probe", - "T_HELP_FLASH_INIT": "Reset and initialize flash chip. Default if no options given. flash", - "T_HELP_FLASH_FILE_FLAG": "File flag. File to write, read or verify. flash verify -f ", - "T_HELP_FLASH_ERASE_FLAG": "Erase flag. Add erase before write. flash write -f -e", - "T_HELP_FLASH_VERIFY_FLAG": "Verify flag. Add verify after write or erase. flash write -f -v", - "T_INFO_FIRMWARE": "Firmware", - "T_INFO_BOOTLOADER": "Bootloader", - "T_INFO_WITH": "with", - "T_INFO_RAM": "RAM", - "T_INFO_FLASH": "FLASH", - "T_INFO_SN": "S/N", - "T_INFO_WEBSITE": "https://BusPirate.com/", - "T_INFO_TF_CARD": "Storage", - "T_INFO_FILE_SYSTEM": "File System", - "T_NOT_DETECTED": "Not Detected", - "T_INFO_AVAILABLE_MODES": "Available modes", - "T_INFO_CURRENT_MODE": "Active mode", - "T_INFO_POWER_SUPPLY": "Power supply", - "T_INFO_CURRENT_LIMIT": "Current limit", - "T_INFO_PULLUP_RESISTORS": "Pull-up resistors", - "T_INFO_FREQUENCY_GENERATORS": "Frequency generators", - "T_INFO_DISPLAY_FORMAT": "Display format", - "T_INFO_DATA_FORMAT": "Data format", - "T_INFO_BITS": "bits", - "T_INFO_BITORDER": "bitorder", - "T_CONFIG_FILE": "Configuration file", - "T_CONFIG_CONFIGURATION_OPTIONS": "Configuration options", - "T_CONFIG_LANGUAGE": "Language / Jezik / Lingua / 语言", - "T_CONFIG_ANSI_COLOR_MODE": "ANSI color mode", - "T_CONFIG_ANSI_COLOR_FULLCOLOR": "ANSI Full-Color (16M colors)", - "T_CONFIG_ANSI_COLOR_256": "ANSI-256 color", - "T_CONFIG_ANSI_TOOLBAR_MODE": "ANSI toolbar mode", - "T_CONFIG_LANGUAGE_ENGLISH": "Language - English (US)", - "T_CONFIG_LANGUAGE_CHINESE": "语言 - 中文(简体)", - "T_CONFIG_LANGUAGE_POLISH": "Język - polski (Polska)", - "T_CONFIG_LANGUAGE_BOSNIAN": "Jezik - bosanski (latinica, Bosna i Hercegovina)", - "T_CONFIG_LANGUAGE_ITALIAN": "Lingua - italiano (Italia)", - "T_CONFIG_DISABLE": "Disable", - "T_CONFIG_ENABLE": "Enable", - "T_CONFIG_SCREENSAVER": "LCD screensaver", - "T_CONFIG_SCREENSAVER_5": "5 minutes", - "T_CONFIG_SCREENSAVER_10": "10 minutes", - "T_CONFIG_SCREENSAVER_15": "15 minutes", - "T_CONFIG_LEDS_EFFECT": "LED effect", - "T_CONFIG_LEDS_EFFECT_SOLID": "Solid", - "T_CONFIG_LEDS_EFFECT_ANGLEWIPE": "Angle wipe", - "T_CONFIG_LEDS_EFFECT_CENTERWIPE": "Center wipe", - "T_CONFIG_LEDS_EFFECT_CLOCKWISEWIPE": "Clockwise wipe", - "T_CONFIG_LEDS_EFFECT_TOPDOWNWIPE": "Top side wipe", - "T_CONFIG_LEDS_EFFECT_SCANNER": "Scanner", - "T_CONFIG_LEDS_EFFECT_GENTLE_GLOW": "Gentle glow", - "T_CONFIG_LEDS_EFFECT_CYCLE": "Party mode", - "T_CONFIG_LEDS_COLOR": "LED color", - "T_CONFIG_LEDS_COLOR_RAINBOW": "Rainbow", - "T_CONFIG_LEDS_COLOR_RED": "Red", - "T_CONFIG_LEDS_COLOR_ORANGE": "Orange", - "T_CONFIG_LEDS_COLOR_YELLOW": "Yellow", - "T_CONFIG_LEDS_COLOR_GREEN": "Green", - "T_CONFIG_LEDS_COLOR_BLUE": "Blue", - "T_CONFIG_LEDS_COLOR_PURPLE": "Purple", - "T_CONFIG_LEDS_COLOR_PINK": "Pink", - "T_CONFIG_LEDS_COLOR_WHITE": "White", - "T_CONFIG_LEDS_BRIGHTNESS": "LED brightness", - "T_CONFIG_LEDS_BRIGHTNESS_10": "10%", - "T_CONFIG_LEDS_BRIGHTNESS_20": "20%", - "T_CONFIG_LEDS_BRIGHTNESS_30": "30%", - "T_CONFIG_LEDS_BRIGHTNESS_40": "40%", - "T_CONFIG_LEDS_BRIGHTNESS_50": "50%", - "T_CONFIG_LEDS_BRIGHTNESS_100": "100% ***WARNING: will damage USB port without external power supply***", - "T_CONFIG_BINMODE_SELECT": "Select binary mode", - "T_HELP_DUMMY_COMMANDS": "Dummy commands valid in position 1", - "T_HELP_DUMMY_INIT": "Dummy init command", - "T_HELP_DUMMY_TEST": "Dummy test command", - "T_HELP_DUMMY_FLAGS": "Dummy flags", - "T_HELP_DUMMY_B_FLAG": "-b require Bus Pirate button to be pushed. Takes no parameters", - "T_HELP_DUMMY_I_FLAG": "-i . Requires integer number parameter", - "T_HELP_DUMMY_FILE_FLAG": "-f . Create/write/read . Requires file string parameter", - "T_HELP_SLE4442": "SLE4442 smart card interface", - "T_HELP_SLE4442_INIT": "Initialize card with ISO7816-3 ATR. Default action", - "T_HELP_SLE4442_DUMP": "Display main, security and protect memory", - "T_HELP_SLE4442_UNLOCK": "Unlock card with Programmable Security Code (PSC)", - "T_HELP_SLE4442_WRITE": "Write data to card (requires unlock)", - "T_HELP_SLE4442_ERASE": "Erase data from range 0x32-0x255 (requires unlock)", - "T_HELP_SLE4442_PSC": "Change Programmable Security Code (PSC)", - "T_HELP_SLE4442_ADDRESS_FLAG": "Write address flag", - "T_HELP_SLE4442_VALUE_FLAG": "Write value flag", - "T_HELP_SLE4442_CURRENT_PSC_FLAG": "Current Programmable Security Code (PSC) flag", - "T_HELP_SLE4442_NEW_PSC_FLAG": "New Programmable Security Code (PSC) flag", - "T_HELP_SLE4442_FILE_FLAG": "Dump file name flag", - "T_HELP_GCMD_W": "onboard power supply with programmable fuse", - "T_HELP_GCMD_W_DISABLE": "Disable onboard power supply", - "T_HELP_GCMD_W_ENABLE": "Enable onboard power supply, show configuration menu", - "T_HELP_GCMD_W_VOLTS": "Voltage, 0.8-5.0volts", - "T_HELP_GCMD_W_CURRENT_LIMIT": "Current limit, 0-500mA", - "T_HELP_GCMD_P": "onboard pull-up resistors", - "T_HELP_HELP": "help for Bus Pirate commands and modes", - "T_HELP_SYS_COMMAND": "Commands to access the help system", - "T_HELP_SYS_DISPLAY": "Show display mode help (such as oscilloscope)", - "T_HELP_SYS_MODE": "Show mode specific commands and help", - "T_HELP_SYS_HELP": "How to use the help system", - "T_HELP_GCMD_SELFTEST": "run a complete system self-test", - "T_HELP_GCMD_SELFTEST_CMD": "Run self-test", - "T_HELP_GCMD_SELFTEST_H_FLAG": "Self-test help", - "T_HELP_AUXIO": "set IO pin state, read input pins", - "T_HELP_AUXIO_LOW": "Output, low/0. Reserves pin for output", - "T_HELP_AUXIO_HIGH": "Output, high/1. Reserves pin for output", - "T_HELP_AUXIO_INPUT": "Input, read state. Releases reserved pin", - "T_HELP_AUXIO_IO": "IO pin number, 0-7", - "T_HELP_DISK_HEX": "Print file contents in HEX format", - "T_HELP_DISK_HEX_FILE": "Name of file in 8.3 format (example1.bin)", - "T_HELP_DISK_HEX_ADDR": "Show address offset", - "T_HELP_DISK_HEX_ASCII": "Show also ASCII dump", - "T_HELP_DISK_HEX_SIZE": "Set line size in bytes", - "T_HELP_DISK_HEX_OFF": "Set file read start offset in bytes", - "T_HELP_DISK_HEX_PAGER_OFF": "Disable the pager for dumping", - "T_HELP_DISK_CAT": "print file contents as text", - "T_HELP_DISK_CAT_FILE": "Name of file in 8.3 format (example1.txt)", - "T_HELP_DISK_MKDIR": "create directory on internal storage", - "T_HELP_DISK_MKDIR_DIR": "Directory name, 8 characters max", - "T_HELP_DISK_CD": "change to a directory on local storage", - "T_HELP_DISK_CD_DIR": "Directory name, 8 characters max", - "T_HELP_DISK_RM": "delete file or directory on local storage", - "T_HELP_DISK_RM_FILE": "Name of file to delete, 8.3 format", - "T_HELP_DISK_RM_DIR": "Name of directory to delete, 8 characters max", - "T_HELP_DISK_LS": "list files and directories on local storage", - "T_HELP_DISK_LS_DIR": "List contents of this directory, optional", - "T_HELP_DISK_FORMAT": "erase and format internal storage in FAT16 format", - "T_HELP_DISK_FORMAT_CMD": "All data will be lost, answer 'y' twice to continue", - "T_HELP_DISK_LABEL": "get or set the disk label", - "T_HELP_DISK_LABEL_GET": "returns the current label of the disk", - "T_HELP_DISK_LABEL_SET": "sets the current label of the disk", - "T_HELP_VADC": "measure voltage on IO pins", - "T_HELP_VADC_SINGLE": "Single measurement", - "T_HELP_VADC_CONTINUOUS": "Continuous measurement", - "T_HELP_VADC_IO": "IO pin number, 0-7", - "T_HELP_I2C_SCAN": "scan I2C addresses, with optional part number", - "T_HELP_I2C_SCAN_VERBOSE": "Verbose mode, print potential part numbers", - "T_HELP_FLAG": "Get additional help", - "T_HELP_I2C_SI7021": "Read temperature and humidity from SI7021/HTU21/SHT21 sensor", - "T_HELP_I2C_MS5611": "Read temperature and pressure from MS5611 sensor", - "T_HELP_I2C_TSL2561": "Read light intensity (LUX) from TSL2561 sensor", - "T_HELP_1WIRE_SCAN": "scan for 1-Wire devices", - "T_HELP_1WIRE_DS18B20": "Query DS18B20 temperature sensor", - "T_HELP_UART_BRIDGE": "open UART with raw data IO, usb to serial bridge mode", - "T_HELP_UART_BRIDGE_EXIT": "UART bridge. Press Bus Pirate button to exit.", - "T_HELP_UART_BRIDGE_TOOLBAR": "ENABLE toolbar while bridge is active (default: disabled)", - "T_HELP_UART_BRIDGE_SUPPRESS_LOCAL_ECHO": "Suppress local echo, don't echo back sent data", - "T_HELP_UART_NMEA": "parse NMEA GPS data", - "T_HELP_SECTION_SCRIPT": "run scripts, macros and assign button functions", - "T_HELP_CMD_SCRIPT": "Run script files, automation", - "T_HELP_CMD_BUTTON": "Assign button functions", - "T_HELP_CMD_MACRO": "Run macros, load a macro file", - "T_HELP_CMD_TUTORIAL": "Run tutorial files", - "T_HELP_CMD_PAUSE_KEY": "Press any key to continue (default)", - "T_HELP_CMD_PAUSE_BUTTON": "Press the Bus Pirate button to continue", - "T_HELP_CMD_PAUSE_EXIT": "'x' key to exit (e.g. script mode)", - "T_HELP_BUTTON": "Assign script file to button press", - "T_HELP_BUTTON_SHORT": "Assign script file to short button press", - "T_HELP_BUTTON_LONG": "Assign script file to long button press", - "T_HELP_BUTTON_FILE": "Script file to assign to button press", - "T_HELP_BUTTON_HIDE": "Hide comments", - "T_HELP_BUTTON_EXIT": "Exit script on error", - "T_HELP_LOGIC": "logic analyzer control", - "T_HELP_LOGIC_START": "start logic analyzer", - "T_HELP_LOGIC_STOP": "stop logic analyzer", - "T_HELP_LOGIC_HIDE": "hide logic graph", - "T_HELP_LOGIC_SHOW": "show logic graph", - "T_HELP_LOGIC_NAV": "navigate logic graph with arrow keys, x to exit", - "T_HELP_LOGIC_INFO": "show configuration info", - "T_HELP_LOGIC_FREQUENCY": "set sample frequency in Hz", - "T_HELP_LOGIC_OVERSAMPLE": "set oversample rate, multiplies the sample frequency", - "T_HELP_LOGIC_DEBUG": "set debug level: 0-2", - "T_HELP_LOGIC_SAMPLES": "set number of samples", - "T_HELP_LOGIC_TRIGGER_PIN": "set trigger pin, 0-7", - "T_HELP_LOGIC_TRIGGER_LEVEL": "set trigger level, 0-1", - "T_HELP_LOGIC_LOW_CHAR": "set character used for low in graph (ex:_)", - "T_HELP_LOGIC_HIGH_CHAR": "set character used for high in graph (ex:*)", - "T_HELP_CMD_CLS": "Clear and reset the terminal", - "T_HELP_SECTION_TOOLS": "tools and utilities", - "T_HELP_CMD_LOGIC": "Logic analyzer", - "T_HELP_CMD_SMPS": "Switch mode power supply (plank required)", - "T_INFRARED_CMD_TEST": "Test IR RX/TX Toy plank", - "T_UART_CMD_TEST": "Test Dual RS232 plank", - "T_SPI_CMD_SNIFF": "SPI sniffer" +{ + "T_ON": "ON", + "T_OFF": "OFF", + "T_GND": "GND", + "T_INPUT": "INPUT", + "T_OUTPUT": "OUTPUT", + "T_EXIT": "Exit", + "T_LOADED": "Loaded", + "T_SAVED": "Saved", + "T_HZ": "Hz", + "T_KHZ": "kHz", + "T_MHZ": "MHz", + "T_SPEED": "Speed", + "T_WARN_VOUT_VREF_LOW": "VOUT/VREF pin is not powered. Use W to enable power, or attach an external supply", + "T_USE_PREVIOUS_SETTINGS": "Use previous settings?", + "T_MODE_ERROR_NO_EFFECT": "ERROR: command has no effect here", + "T_MODE_ERROR_NO_EFFECT_HIZ": "Command has no effect in HiZ mode, press 'm' to choose a mode", + "T_MODE_NO_HELP_AVAILABLE": "No help available", + "T_PRESS_ANY_KEY_TO_EXIT": "Press any key to exit", + "T_PRESS_ANY_KEY": "Press any key", + "T_PRESS_BUTTON": "Press button", + "T_PRESS_X_TO_EXIT": "Press 'x' to exit", + "T_MODE_MODE_SELECTION": "Mode selection", + "T_MODE_MODE": "Mode", + "T_MODE_NUMBER_DISPLAY_FORMAT": "Number display format", + "T_MODE_INVALID_OPTION": "Invalid option", + "T_MODE_CHOOSE_AVAILABLE_PIN": "Choose available pin:", + "T_MODE_ALL_PINS_IN_USE": "All pins in use", + "T_MODE_PULLUP_RESISTORS": "Pull-up resistors", + "T_MODE_POWER_SUPPLY": "Power supply", + "T_MODE_DISABLED": "Disabled", + "T_MODE_DISPLAY": "Display", + "T_MODE_DISPLAY_SELECTION": "Display selection", + "T_MODE_ENABLED": "Enabled", + "T_MODE_BITORDER": "Bitorder", + "T_MODE_BITORDER_MSB": "MSB", + "T_MODE_BITORDER_LSB": "LSB", + "T_MODE_DELAY": "Delay", + "T_MODE_US": "us", + "T_MODE_MS": "ms", + "T_MODE_ADC_VOLTAGE": "Volts on", + "T_MODE_ERROR_PARSING_MACRO": "Error parsing macro", + "T_MODE_ERROR_NO_MACROS_AVAILABLE": "No macros available", + "T_MODE_ERROR_MACRO_NOT_DEFINED": "Macro not defined", + "T_MODE_TICK_CLOCK": "Tick clock", + "T_MODE_SET_CLK": "Set clock", + "T_MODE_SET_DAT": "Set data", + "T_MODE_READ_DAT": "Read data", + "T_MODE_NO_VOUT_VREF_ERROR": "No voltage detected on VOUT/VREF pin", + "T_MODE_NO_VOUT_VREF_HINT": "Hint: Use W to enable power, or attach an external supply", + "T_MODE_NO_PULLUP_ERROR": "Pull-up not detected on IO pin", + "T_MODE_NO_PULLUP_HINT": "Hint: Use P to enable pull-up resistors, or use external pull-up", + "T_MODE_PWM_GENERATE_FREQUENCY": "Generate frequency", + "T_MODE_FREQ_MEASURE_FREQUENCY": "Frequency measurement", + "T_MODE_FREQ_FREQUENCY": "Frequency", + "T_MODE_FREQ_DUTY_CYCLE": "Duty cycle", + "T_PSU_DAC_ERROR": "PSU DAC error, please run self-test", + "T_PSU_CURRENT_LIMIT_ERROR": "Current over limit, power supply disabled", + "T_PSU_SHORT_ERROR": "Potential short circuit, power supply disabled", + "T_PSU_ALREADY_DISABLED_ERROR": "Power supply already disabled", + "T_SYNTAX_EXCEEDS_MAX_SLOTS": "Result exceeds available space (%d slots)", + "T_HWSPI_SPEED_MENU": "SPI speed", + "T_HWSPI_SPEED_MENU_1": "1 to 62500kHz", + "T_HWSPI_SPEED_PROMPT": "kHz (%s%dkHz*%s)", + "T_HWSPI_BITS_MENU": "Data bits", + "T_HWSPI_BITS_MENU_1": "4 to 8 bits", + "T_HWSPI_BITS_PROMPT": "Bits (%s%d*%s)", + "T_HWSPI_CLOCK_POLARITY_MENU": "Clock polarity", + "T_HWSPI_CLOCK_POLARITY_MENU_1": "Idle LOW", + "T_HWSPI_CLOCK_POLARITY_MENU_2": "Idle HIGH", + "T_HWSPI_CLOCK_POLARITY_PROMPT": "Polarity", + "T_HWSPI_CLOCK_PHASE_MENU": "Clock phase", + "T_HWSPI_CLOCK_PHASE_MENU_1": "LEADING edge", + "T_HWSPI_CLOCK_PHASE_MENU_2": "TRAILING edge", + "T_HWSPI_CLOCK_PHASE_PROMPT": "Phase", + "T_HWSPI_CS_IDLE_MENU": "Chip select", + "T_HWSPI_CS_IDLE_MENU_1": "Active HIGH (CS)", + "T_HWSPI_CS_IDLE_MENU_2": "Active LOW (/CS)", + "T_HWSPI_CS_IDLE_PROMPT": "CS", + "T_HWSPI_ACTUAL_SPEED_KHZ": "Actual speed", + "T_HWSPI_CS_SELECT": "CS Enabled", + "T_HWSPI_CS_DESELECT": "CS Disabled", + "T_UART_SPEED_MENU": "UART speed", + "T_UART_SPEED_MENU_1": "1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 etc", + "T_UART_SPEED_PROMPT": "Baud (%s%d*%s)", + "T_UART_PARITY_MENU": "Parity", + "T_UART_PARITY_MENU_1": "None", + "T_UART_PARITY_MENU_2": "Even", + "T_UART_PARITY_MENU_3": "Odd", + "T_UART_PARITY_PROMPT": "Parity", + "T_UART_DATA_BITS_MENU": "Data bits", + "T_UART_DATA_BITS_MENU_1": "5 to 8 bits", + "T_UART_DATA_BITS_PROMPT": "Bits (%s%d*%s)", + "T_UART_STOP_BITS_MENU": "Stop bits", + "T_UART_STOP_BITS_MENU_1": "1", + "T_UART_STOP_BITS_MENU_2": "2", + "T_UART_STOP_BITS_PROMPT": "Bits", + "T_UART_BLOCKING_MENU": "Use blocking functions?", + "T_UART_BLOCKING_MENU_1": "No", + "T_UART_BLOCKING_MENU_2": "Yes", + "T_UART_BLOCKING_PROMPT": "Block", + "T_UART_FLOW_CONTROL_MENU": "Hardware flow control", + "T_UART_FLOW_CONTROL_MENU_1": "None", + "T_UART_FLOW_CONTROL_MENU_2": "RTS/CTS", + "T_UART_FLOW_CONTROL_PROMPT": "Flow control", + "T_UART_INVERT_MENU": "Signal inversion", + "T_UART_INVERT_MENU_1": "Non-inverted (Standard)", + "T_UART_INVERT_MENU_2": "Inverted", + "T_UART_INVERT_PROMPT": "Invert signals", + "T_UART_GLITCH_TRG_MENU": "Glitch trigger character", + "T_UART_GLITCH_TRG_MENU_1": "1 - 255", + "T_UART_GLITCH_TRG_PROMPT": "ASCII value of trigger character (13)", + "T_UART_GLITCH_DLY_MENU": "Glitch trigger delay", + "T_UART_GLITCH_DLY_MENU_1": "Delay time in us", + "T_UART_GLITCH_DLY_PROMPT": "Glitch trigger delay (1)", + "T_UART_GLITCH_VRY_MENU": "Glitch vary time", + "T_UART_GLITCH_VRY_MENU_1": "1 - 10", + "T_UART_GLITCH_VRY_PROMPT": "Glitch vary time (3)", + "T_UART_GLITCH_CYC_MENU": "Glitch cycle delay", + "T_UART_GLITCH_CYC_MENU_1": "10-1000", + "T_UART_GLITCH_CYC_PROMPT": "Minimum time between glitch cycles in ms (10)", + "T_UART_GLITCH_FAIL_MENU": "Normal response character", + "T_UART_GLITCH_FAIL_MENU_1": "1 - 255", + "T_UART_GLITCH_FAIL_PROMPT": "ASCII value of first char of normal response (35 - '#')", + "T_UART_GLITCH_CNT_MENU": "Number of glitch attempts", + "T_UART_GLITCH_CNT_MENU_1": "1 - 10000", + "T_UART_GLITCH_CNT_PROMPT": "Number of glitch attempts before quitting (100)", + "T_UART_GLITCH_GLITCHED": "Target glitch success!", + "T_UART_GLITCH_CANCELLED": "Target glitch cancelled by button", + "T_UART_GLITCH_DONE": "Target glitch count exceeded, no glitch :/", + "T_UART_TOOL_TIMEOUT": "Timout waiting for glitch hardware :/", + "T_UART_GLITCH_UNKNOWN": "Target glitching stopped for unknown reason", + "T_UART_GLITCH_SETUP_ERR": "Error setting up glitcher - check uglitch.bp file", + "T_UART_ACTUAL_SPEED_BAUD": "Actual speed", + "T_UART_BAUD": "baud", + "T_UART_OPEN": "UART OPEN", + "T_UART_OPEN_WITH_READ": "UART OPEN (ASYNC READ)", + "T_UART_CLOSE": "UART CLOSE", + "T_UART_NO_DATA_READ": "No data to read", + "T_UART_NO_DATA_TIMEOUT": "Data read timeout", + "T_HWI2C_SPEED_MENU": "I2C speed", + "T_HWI2C_SPEED_MENU_1": "1kHz to 1000kHz", + "T_HWI2C_SPEED_PROMPT": "kHz (%s%dkHz*%s)", + "T_HWI2C_DATA_BITS_MENU": "Data bits", + "T_HWI2C_DATA_BITS_MENU_1": "8", + "T_HWI2C_DATA_BITS_MENU_2": "10", + "T_HWI2C_DATA_BITS_PROMPT": "Bits", + "T_HWI2C_CLOCK_STRETCH_MENU": "Clock stretching", + "T_HWI2C_CLOCK_STRETCH_PROMPT": "(OFF)", + "T_HWI2C_START": "I2C START", + "T_HWI2C_REPEATED_START": "I2C REPEATED START", + "T_HWI2C_STOP": "I2C STOP", + "T_HWI2C_ACK": "ACK", + "T_HWI2C_NACK": "NACK", + "T_HWI2C_NO_PULLUP_DETECTED": "no pull-up detected", + "T_HWI2C_NO_VOUT_DETECTED": "no power detected", + "T_HWI2C_TIMEOUT": "I2C timeout", + "T_HWI2C_I2C_ERROR": "I2C bus error", + "T_HW2WIRE_SPEED_MENU": "2WIRE speed", + "T_HW2WIRE_RST_LOW": "RST LOW", + "T_HW2WIRE_RST_HIGH": "RST HIGH", + "T_HW3WIRE_SPEED_MENU_1": "1 to 3900kHz", + "T_HWLED_DEVICE_MENU": "LED type", + "T_HWLED_DEVICE_MENU_1": "WS2812/SK6812/'NeoPixel' (single wire interface)", + "T_HWLED_DEVICE_MENU_2": "APA102/SK9822 (clock and data interface)", + "T_HWLED_DEVICE_MENU_3": "Onboard LEDs (18 SK6812s)", + "T_HWLED_DEVICE_PROMPT": "Type", + "T_HWLED_NUM_LEDS_MENU": "Number of LEDs in the strip", + "T_HWLED_NUM_LEDS_MENU_1": "1 to 10000", + "T_HWLED_NUM_LEDS_PROMPT": "LEDs (%s%d*%s)", + "T_HWLED_RESET": "RESET", + "T_HWLED_FRAME_START": "START FRAME (0x00000000)", + "T_HWLED_FRAME_STOP": "STOP FRAME (0xFFFFFFFF)", + "T_HW1WIRE_RESET": "1-Wire RESET", + "T_HW1WIRE_PRESENCE_DETECT": "Presence detected", + "T_HW1WIRE_NO_DEVICE": "No device detected", + "T_IR_RX_SENSOR_MENU": "RX sensor", + "T_IR_RX_SENSOR_MENU_LEARNER": "20-60kHz learner", + "T_IR_RX_SENSOR_MENU_BARRIER": "38kHz barrier", + "T_IR_RX_SENSOR_MENU_38K_DEMOD": "36-40kHz demodulator", + "T_IR_RX_SENSOR_MENU_56K_DEMOD": "56kHz demodulator", + "T_IR_TX_SPEED_MENU": "TX modulation", + "T_IR_TX_SPEED_MENU_1": "20kHz to 60kHz", + "T_IR_TX_SPEED_PROMPT": "kHz (%s%dkHz*%s)", + "T_IR_PROTOCOL_MENU": "Protocol", + "T_IR_PROTOCOL_MENU_RC5": "RC5", + "T_IR_PROTOCOL_MENU_NEC": "NEC", + "T_CMDLN_INVALID_COMMAND": "Invalid command: %s. Type ? for help.", + "T_CMDLN_NO_HELP": "Help not currently available for this command.", + "T_CMDLN_LS": "ls - list files in the current location or location.", + "T_CMDLN_CD": "cd - change to location.", + "T_CMDLN_MKDIR": "mkdir - create .", + "T_CMDLN_RM": "rm - remove file or (empty) directory.", + "T_CMDLN_CAT": "cat - print the contents of .", + "T_CMDLN_MODE": "m - change protocol mode. m to skip the menu.", + "T_CMDLN_PSU_EN": "W - enable onboard power supply, show configuration menu.", + "T_CMDLN_RESET": "# - reset and restart the Bus Pirate.", + "T_CMDLN_BOOTLOAD": "$ - reset and enter bootloader mode for updates.", + "T_CMDLN_INT_FORMAT": "= - convert to BIN/DEC/HEX/ASCII.", + "T_CMDLN_INT_INVERSE": "| - inverse the bits in .", + "T_CMDLN_HELP": "? - show command and syntax help.", + "T_CMDLN_CONFIG_MENU": "c - open Bus Pirate configuration menu.", + "T_CMDLN_FREQ_ONE": "f - measure frequency on once.", + "T_CMDLN_FREQ_CONT": "F - measure frequency on continuously.", + "T_CMDLN_PWM_CONFIG": "G - configure frequency generator (PWM) on an available IOx pin.", + "T_CMDLN_PWM_DIS": "g - disable frequency generator (PWM) on pin .", + "T_CMDLN_HELP_MODE": "h - show mode specific help screen.", + "T_CMDLN_HELP_DISPLAY": "hd - show display mode specific help screen.", + "T_CMDLN_INFO": "i - show Bus Pirate info and status screen.", + "T_CMDLN_BITORDER_MSB": "l - set Most Significant Bit output order.", + "T_CMDLN_BITORDER_LSB": "L - set Least Significant Bit ouput order.", + "T_CMDLN_DISPLAY_FORMAT": "o - configure number output display format.", + "T_CMDLN_PULLUPS_EN": "P - enable onboard pull-up resistors.", + "T_CMDLN_PULLUPS_DIS": "p - disable onboard pull-up resistors.", + "T_CMDLN_PSU_DIS": "w - disable onboard power supply.", + "T_CMDLN_ADC_CONT": "V - continuous voltage measurement on pin . Omit the pin number to measure voltage on all pins.", + "T_CMDLN_ADC_ONE": "v - single voltage measurement on pin . Omit the pin number to measure voltage on all pins once.", + "T_CMDLN_SELFTEST": "~ - perform a factory self-test. Disconnect any attached devices and change to HiZ mode before starting the test.", + "T_CMDLN_AUX_IN": "@ - make pin input, read the pin state.", + "T_CMDLN_AUX_LOW": "a - make pin output and low.", + "T_CMDLN_AUX_HIGH": "A - make pin output and high.", + "T_CMDLN_DUMP": "dump - dump contents of flash to . Warning: currently a prototype that only works with 25LC020 in SPI mode.", + "T_CMDLN_LOAD": "load - load contents of to flash . Warning: currently a prototype that only works with 25LC020 in SPI mode.", + "T_CMDLN_DISPLAY": "d - change display mode, show selection menu.", + "T_CMDLN_LOGIC": "logic - logic analyzer. 1kHz-62500kHz, 0:7, 0:1.", + "T_CMDLN_HEX": "hex - print contents of in HEX", + "T_HELP_TITLE": "General CommandsBus Syntax", + "T_HELP_GENERAL_COMMANDS": "General Commands", + "T_HELP_BUS_SYNTAX": "Bus Syntax", + "T_HELP_DISK_COMMANDS": "Disk Commands", + "T_HELP_BLANK": "", + "T_HELP_SECTION_IO": "work with pins, input, output measurement", + "T_HELP_SECTION_CAPTURE": "measure analog and digital signals", + "T_HELP_SECTION_CONFIGURE": "configure the terminal, LEDs, display and mode", + "T_HELP_SECTION_SYSTEM": "restart, firmware updates and diagnostic", + "T_HELP_SECTION_FILES": "list files and navigate the storage", + "T_HELP_SECTION_PROGRAMS": "useful commands and mini-programs", + "T_HELP_SECTION_MODE": "enter a mode to use protocols", + "T_HELP_SECTION_SYNTAX": "send and receive data in modes using bus syntax", + "T_HELP_SECTION_HELP": "get more help", + "T_HELP_GREATER_THAN": "Run bus syntax", + "T_HELP_SYNTAX_ADC": "Measure volts on IO.x", + "T_HELP_CMD_LS": "List files", + "T_HELP_CMD_CD": "Change directory", + "T_HELP_CMD_MKDIR": "Make directory", + "T_HELP_CMD_RM": "Remove file/directory", + "T_HELP_CMD_PAUSE": "Pause for user input, optional exit", + "T_HELP_CMD_FORMAT": "Format storage disk (FAT16)", + "T_HELP_CMD_CAT": "Print file contents as text", + "T_HELP_CMD_HEX": "Print file contents in HEX", + "T_HELP_CAPTURE_SCOPE": "Oscilloscope interface", + "T_HELP_CAPTURE_LA": "Logic analyzer interface", + "T_HELP_CMD_FLASH": "Erase, write, read and verify SPI flash chips", + "T_HELP_CMD_LABEL": "Get or set the disk label", + "T_HELP_CMD_IMAGE": "Write a bitmap image on the LCD", + "T_HELP_CMD_DUMP": "Repeat read command, save ouput to storage", + "T_HELP_1_2": "Converts x/reverse x", + "T_HELP_1_3": "Self test", + "T_HELP_1_4": "Reset the Bus Pirate", + "T_HELP_1_5": "Jump to bootloader", + "T_HELP_1_6": "Delay 1 us/MS (d:4 to repeat)", + "T_HELP_1_7": "Set IO.x state (low/HI/READ)", + "T_HELP_COMMAND_AUX": "Set IO x state (low/HI/READ)", + "T_HELP_COMMAND_DISPLAY": "Change screen display mode", + "T_HELP_1_9": "Configure terminal, language, LEDs", + "T_HELP_1_22": "Show volts on IOx (once/CONT)", + "T_HELP_1_10": "Show volts all IOs (once/CONT)", + "T_HELP_1_11": "Measure freq on IOx (once/CONT)", + "T_HELP_1_23": "Monitor freq (off/ON)", + "T_HELP_1_12": "Generate frequency (off/ON)", + "T_HELP_HELP_GENERAL": "Global, mode and display help. Try '?', '? mode' and '? display'", + "T_HELP_HELP_DISPLAY": "Help with a display mode such as the scope", + "T_HELP_HELP_COMMAND": "Add -h for command help: ls -h", + "T_HELP_1_14": "Bus Pirate version and status info", + "T_HELP_1_15": "Bitorder (msb/LSB)", + "T_HELP_1_16": "Change to a protocol mode such as I2C", + "T_HELP_1_17": "Choose how numbers are displayed", + "T_HELP_1_18": "Pull-up resistors (off/ON)", + "T_HELP_1_19": "-", + "T_HELP_1_20": "Show volts/states", + "T_HELP_1_21": "Power supply (off/ON)", + "T_HELP_2_1": "Mode macro x/list all", + "T_HELP_2_3": "Start/Start II (mode dependent)", + "T_HELP_2_4": "Stop/Stop II (mode dependent)", + "T_HELP_2_7": "Write string", + "T_HELP_2_8": "Write value (decimal)", + "T_HELP_2_9": "Write value (hex)", + "T_HELP_2_10": "Write value (binary)", + "T_HELP_2_11": "Read", + "T_HELP_SYN_CLOCK_HIGH": "Clock high", + "T_HELP_SYN_CLOCK_LOW": "Clock low", + "T_HELP_SYN_CLOCK_TICK": "Clock tick", + "T_HELP_SYN_DATA_HIGH": "Data high", + "T_HELP_SYN_DATA_LOW": "Data low", + "T_HELP_SYN_DATA_READ": "Read data pin state", + "T_HELP_2_18": "Bit read", + "T_HELP_2_19": "Repeat e.g. r:10", + "T_HELP_2_20": "Bits to read/write e.g. 0x55.2", + "T_HELP_2_21": "User macro x/list all", + "T_HELP_2_22": "User macro assign x", + "T_HELP_HINT": "Chain multiple commands with ; || &&.", + "T_HELP_FLASH": "read, write and erase flash chips using SFDP info if available", + "T_HELP_FLASH_ERASE": "Erase flash chip. flash erase [-v(erify)]", + "T_HELP_FLASH_WRITE": "Write file to flash chip. flash write -f [-e(rase)] [-v(erify)]", + "T_HELP_FLASH_READ": "Read flash chip to file. flash read -f ", + "T_HELP_FLASH_VERIFY": "Verify flash chip against file. flash verify -f ", + "T_HELP_FLASH_TEST": "Erase and write full chip with dummy data, verify. flash test", + "T_HELP_FLASH_PROBE": "Probe flash chip for ID and SFDP info. flash probe", + "T_HELP_FLASH_INIT": "Reset and initialize flash chip. Default if no options given. flash", + "T_HELP_FLASH_FILE_FLAG": "File flag. File to write, read or verify. flash verify -f ", + "T_HELP_FLASH_ERASE_FLAG": "Erase flag. Add erase before write. flash write -f -e", + "T_HELP_FLASH_VERIFY_FLAG": "Verify flag. Add verify after write or erase. flash write -f -v", + "T_INFO_FIRMWARE": "Firmware", + "T_INFO_BOOTLOADER": "Bootloader", + "T_INFO_WITH": "with", + "T_INFO_RAM": "RAM", + "T_INFO_FLASH": "FLASH", + "T_INFO_SN": "S/N", + "T_INFO_WEBSITE": "https://BusPirate.com/", + "T_INFO_TF_CARD": "Storage", + "T_INFO_FILE_SYSTEM": "File System", + "T_NOT_DETECTED": "Not Detected", + "T_INFO_AVAILABLE_MODES": "Available modes", + "T_INFO_CURRENT_MODE": "Active mode", + "T_INFO_POWER_SUPPLY": "Power supply", + "T_INFO_CURRENT_LIMIT": "Current limit", + "T_INFO_PULLUP_RESISTORS": "Pull-up resistors", + "T_INFO_FREQUENCY_GENERATORS": "Frequency generators", + "T_INFO_DISPLAY_FORMAT": "Display format", + "T_INFO_DATA_FORMAT": "Data format", + "T_INFO_BITS": "bits", + "T_INFO_BITORDER": "bitorder", + "T_CONFIG_FILE": "Configuration file", + "T_CONFIG_CONFIGURATION_OPTIONS": "Configuration options", + "T_CONFIG_LANGUAGE": "Language / Jezik / Lingua / 语言", + "T_CONFIG_ANSI_COLOR_MODE": "ANSI color mode", + "T_CONFIG_ANSI_COLOR_FULLCOLOR": "ANSI Full-Color (16M colors)", + "T_CONFIG_ANSI_COLOR_256": "ANSI-256 color", + "T_CONFIG_ANSI_TOOLBAR_MODE": "ANSI toolbar mode", + "T_CONFIG_LANGUAGE_ENGLISH": "Language - English (US)", + "T_CONFIG_LANGUAGE_CHINESE": "语言 - 中文(简体)", + "T_CONFIG_LANGUAGE_POLISH": "Język - polski (Polska)", + "T_CONFIG_LANGUAGE_BOSNIAN": "Jezik - bosanski (latinica, Bosna i Hercegovina)", + "T_CONFIG_LANGUAGE_ITALIAN": "Lingua - italiano (Italia)", + "T_CONFIG_DISABLE": "Disable", + "T_CONFIG_ENABLE": "Enable", + "T_CONFIG_SCREENSAVER": "LCD screensaver", + "T_CONFIG_SCREENSAVER_5": "5 minutes", + "T_CONFIG_SCREENSAVER_10": "10 minutes", + "T_CONFIG_SCREENSAVER_15": "15 minutes", + "T_CONFIG_LEDS_EFFECT": "LED effect", + "T_CONFIG_LEDS_EFFECT_SOLID": "Solid", + "T_CONFIG_LEDS_EFFECT_ANGLEWIPE": "Angle wipe", + "T_CONFIG_LEDS_EFFECT_CENTERWIPE": "Center wipe", + "T_CONFIG_LEDS_EFFECT_CLOCKWISEWIPE": "Clockwise wipe", + "T_CONFIG_LEDS_EFFECT_TOPDOWNWIPE": "Top side wipe", + "T_CONFIG_LEDS_EFFECT_SCANNER": "Scanner", + "T_CONFIG_LEDS_EFFECT_GENTLE_GLOW": "Gentle glow", + "T_CONFIG_LEDS_EFFECT_CYCLE": "Party mode", + "T_CONFIG_LEDS_COLOR": "LED color", + "T_CONFIG_LEDS_COLOR_RAINBOW": "Rainbow", + "T_CONFIG_LEDS_COLOR_RED": "Red", + "T_CONFIG_LEDS_COLOR_ORANGE": "Orange", + "T_CONFIG_LEDS_COLOR_YELLOW": "Yellow", + "T_CONFIG_LEDS_COLOR_GREEN": "Green", + "T_CONFIG_LEDS_COLOR_BLUE": "Blue", + "T_CONFIG_LEDS_COLOR_PURPLE": "Purple", + "T_CONFIG_LEDS_COLOR_PINK": "Pink", + "T_CONFIG_LEDS_COLOR_WHITE": "White", + "T_CONFIG_LEDS_BRIGHTNESS": "LED brightness", + "T_CONFIG_LEDS_BRIGHTNESS_10": "10%", + "T_CONFIG_LEDS_BRIGHTNESS_20": "20%", + "T_CONFIG_LEDS_BRIGHTNESS_30": "30%", + "T_CONFIG_LEDS_BRIGHTNESS_40": "40%", + "T_CONFIG_LEDS_BRIGHTNESS_50": "50%", + "T_CONFIG_LEDS_BRIGHTNESS_100": "100% ***WARNING: will damage USB port without external power supply***", + "T_CONFIG_BINMODE_SELECT": "Select binary mode", + "T_HELP_DUMMY_COMMANDS": "Dummy commands valid in position 1", + "T_HELP_DUMMY_INIT": "Dummy init command", + "T_HELP_DUMMY_TEST": "Dummy test command", + "T_HELP_DUMMY_FLAGS": "Dummy flags", + "T_HELP_DUMMY_B_FLAG": "-b require Bus Pirate button to be pushed. Takes no parameters", + "T_HELP_DUMMY_I_FLAG": "-i . Requires integer number parameter", + "T_HELP_DUMMY_FILE_FLAG": "-f . Create/write/read . Requires file string parameter", + "T_HELP_SLE4442": "SLE4442 smart card interface", + "T_HELP_SLE4442_INIT": "Initialize card with ISO7816-3 ATR. Default action", + "T_HELP_SLE4442_DUMP": "Display main, security and protect memory", + "T_HELP_SLE4442_UNLOCK": "Unlock card with Programmable Security Code (PSC)", + "T_HELP_SLE4442_WRITE": "Write data to card (requires unlock)", + "T_HELP_SLE4442_ERASE": "Erase data from range 0x32-0x255 (requires unlock)", + "T_HELP_SLE4442_PSC": "Change Programmable Security Code (PSC)", + "T_HELP_SLE4442_ADDRESS_FLAG": "Write address flag", + "T_HELP_SLE4442_VALUE_FLAG": "Write value flag", + "T_HELP_SLE4442_CURRENT_PSC_FLAG": "Current Programmable Security Code (PSC) flag", + "T_HELP_SLE4442_NEW_PSC_FLAG": "New Programmable Security Code (PSC) flag", + "T_HELP_SLE4442_FILE_FLAG": "Dump file name flag", + "T_HELP_GCMD_W": "onboard power supply with programmable fuse", + "T_HELP_GCMD_W_DISABLE": "Disable onboard power supply", + "T_HELP_GCMD_W_ENABLE": "Enable onboard power supply, show configuration menu", + "T_HELP_GCMD_W_VOLTS": "Voltage, 0.8-5.0volts", + "T_HELP_GCMD_W_CURRENT_LIMIT": "Current limit, 0-500mA", + "T_HELP_GCMD_P": "onboard pull-up resistors", + "T_HELP_HELP": "help for Bus Pirate commands and modes", + "T_HELP_SYS_COMMAND": "Commands to access the help system", + "T_HELP_SYS_DISPLAY": "Show display mode help (such as oscilloscope)", + "T_HELP_SYS_MODE": "Show mode specific commands and help", + "T_HELP_SYS_HELP": "How to use the help system", + "T_HELP_GCMD_SELFTEST": "run a complete system self-test", + "T_HELP_GCMD_SELFTEST_CMD": "Run self-test", + "T_HELP_GCMD_SELFTEST_H_FLAG": "Self-test help", + "T_HELP_AUXIO": "set IO pin state, read input pins", + "T_HELP_AUXIO_LOW": "Output, low/0. Reserves pin for output", + "T_HELP_AUXIO_HIGH": "Output, high/1. Reserves pin for output", + "T_HELP_AUXIO_INPUT": "Input, read state. Releases reserved pin", + "T_HELP_AUXIO_IO": "IO pin number, 0-7", + "T_HELP_DISK_HEX": "Print file contents in HEX format", + "T_HELP_DISK_HEX_FILE": "Name of file in 8.3 format (example1.bin)", + "T_HELP_DISK_HEX_ADDR": "Show address offset", + "T_HELP_DISK_HEX_ASCII": "Show also ASCII dump", + "T_HELP_DISK_HEX_SIZE": "Set line size in bytes", + "T_HELP_DISK_HEX_OFF": "Set file read start offset in bytes", + "T_HELP_DISK_HEX_PAGER_OFF": "Disable the pager for dumping", + "T_HELP_DISK_CAT": "print file contents as text", + "T_HELP_DISK_CAT_FILE": "Name of file in 8.3 format (example1.txt)", + "T_HELP_DISK_MKDIR": "create directory on internal storage", + "T_HELP_DISK_MKDIR_DIR": "Directory name, 8 characters max", + "T_HELP_DISK_CD": "change to a directory on local storage", + "T_HELP_DISK_CD_DIR": "Directory name, 8 characters max", + "T_HELP_DISK_RM": "delete file or directory on local storage", + "T_HELP_DISK_RM_FILE": "Name of file to delete, 8.3 format", + "T_HELP_DISK_RM_DIR": "Name of directory to delete, 8 characters max", + "T_HELP_DISK_LS": "list files and directories on local storage", + "T_HELP_DISK_LS_DIR": "List contents of this directory, optional", + "T_HELP_DISK_FORMAT": "erase and format internal storage in FAT16 format", + "T_HELP_DISK_FORMAT_CMD": "All data will be lost, answer 'y' twice to continue", + "T_HELP_DISK_LABEL": "get or set the disk label", + "T_HELP_DISK_LABEL_GET": "returns the current label of the disk", + "T_HELP_DISK_LABEL_SET": "sets the current label of the disk", + "T_HELP_VADC": "measure voltage on IO pins", + "T_HELP_VADC_SINGLE": "Single measurement", + "T_HELP_VADC_CONTINUOUS": "Continuous measurement", + "T_HELP_VADC_IO": "IO pin number, 0-7", + "T_HELP_I2C_SCAN": "scan I2C addresses, with optional part number", + "T_HELP_I2C_SCAN_VERBOSE": "Verbose mode, print potential part numbers", + "T_HELP_FLAG": "Get additional help", + "T_HELP_I2C_SI7021": "Read temperature and humidity from SI7021/HTU21/SHT21 sensor", + "T_HELP_I2C_MS5611": "Read temperature and pressure from MS5611 sensor", + "T_HELP_I2C_TSL2561": "Read light intensity (LUX) from TSL2561 sensor", + "T_HELP_1WIRE_SCAN": "scan for 1-Wire devices", + "T_HELP_1WIRE_DS18B20": "Query DS18B20 temperature sensor", + "T_HELP_UART_BRIDGE": "open UART with raw data IO, usb to serial bridge mode", + "T_HELP_UART_BRIDGE_EXIT": "UART bridge. Press Bus Pirate button to exit.", + "T_HELP_UART_BRIDGE_TOOLBAR": "ENABLE toolbar while bridge is active (default: disabled)", + "T_HELP_UART_BRIDGE_SUPPRESS_LOCAL_ECHO": "Suppress local echo, don't echo back sent data", + "T_HELP_UART_NMEA": "parse NMEA GPS data", + "T_HELP_UART_GLITCH_EXIT": "UART Glitcher. Press Bus Pirate button to exit.", + "T_HELP_SECTION_SCRIPT": "run scripts, macros and assign button functions", + "T_HELP_CMD_SCRIPT": "Run script files, automation", + "T_HELP_CMD_BUTTON": "Assign button functions", + "T_HELP_CMD_MACRO": "Run macros, load a macro file", + "T_HELP_CMD_TUTORIAL": "Run tutorial files", + "T_HELP_CMD_PAUSE_KEY": "Press any key to continue (default)", + "T_HELP_CMD_PAUSE_BUTTON": "Press the Bus Pirate button to continue", + "T_HELP_CMD_PAUSE_EXIT": "'x' key to exit (e.g. script mode)", + "T_HELP_BUTTON": "Assign script file to button press", + "T_HELP_BUTTON_SHORT": "Assign script file to short button press", + "T_HELP_BUTTON_LONG": "Assign script file to long button press", + "T_HELP_BUTTON_FILE": "Script file to assign to button press", + "T_HELP_BUTTON_HIDE": "Hide comments", + "T_HELP_BUTTON_EXIT": "Exit script on error", + "T_HELP_LOGIC": "logic analyzer control", + "T_HELP_LOGIC_START": "start logic analyzer", + "T_HELP_LOGIC_STOP": "stop logic analyzer", + "T_HELP_LOGIC_HIDE": "hide logic graph", + "T_HELP_LOGIC_SHOW": "show logic graph", + "T_HELP_LOGIC_NAV": "navigate logic graph with arrow keys, x to exit", + "T_HELP_LOGIC_INFO": "show configuration info", + "T_HELP_LOGIC_FREQUENCY": "set sample frequency in Hz", + "T_HELP_LOGIC_OVERSAMPLE": "set oversample rate, multiplies the sample frequency", + "T_HELP_LOGIC_DEBUG": "set debug level: 0-2", + "T_HELP_LOGIC_SAMPLES": "set number of samples", + "T_HELP_LOGIC_TRIGGER_PIN": "set trigger pin, 0-7", + "T_HELP_LOGIC_TRIGGER_LEVEL": "set trigger level, 0-1", + "T_HELP_LOGIC_LOW_CHAR": "set character used for low in graph (ex:_)", + "T_HELP_LOGIC_HIGH_CHAR": "set character used for high in graph (ex:*)", + "T_HELP_CMD_CLS": "Clear and reset the terminal", + "T_HELP_SECTION_TOOLS": "tools and utilities", + "T_HELP_CMD_LOGIC": "Logic analyzer", + "T_HELP_CMD_SMPS": "Switch mode power supply (plank required)", + "T_INFRARED_CMD_TEST": "Test IR RX/TX Toy plank", + "T_UART_CMD_TEST": "Test Dual RS232 plank", + "T_SPI_CMD_SNIFF": "SPI sniffer", + "T_HELP_UART_GLITCH": "UART glitcher", + "T_HELP_UART_GLITCH_CONFIG": "Configure UART glitch parameters" } \ No newline at end of file diff --git a/src/translation/it-it.h b/src/translation/it-it.h index 8e312042..eaa8a0cf 100644 --- a/src/translation/it-it.h +++ b/src/translation/it-it.h @@ -1,478 +1,505 @@ -#pragma once - -// NOTE: GENERATED FILE -- DO NOT EDIT DIRECTLY -// This file is auto-generated by `json2h.py` -// Entirely new strings should be added to `en-us.h` -// Translations should be added to the language code's `.json` file - -// en-us is our base language translation file -#include "translation/base.h" -static char const * const it_it[T_LAST_ITEM_ALWAYS_AT_THE_END]={ - [ T_ON ] = "ON", - [ T_OFF ] = "OFF", - [ T_GND ] = "GND", - [ T_INPUT ] = "INPUT", - [ T_OUTPUT ] = "OUTPUT", - [ T_EXIT ] = "Esci", - [ T_LOADED ] = "Caricato", - [ T_SAVED ] = "Salvato", - [ T_HZ ] = "Hz", - [ T_KHZ ] = "kHz", - [ T_MHZ ] = "MHz", - [ T_SPEED ] = "Speed", - [ T_WARN_VOUT_VREF_LOW ] = "Il pin VOUT/VREF non è alimentato. Utilizza W per abilitare l'alimentazione o collega un'alimentazione esterna", - [ T_USE_PREVIOUS_SETTINGS ] = "Utilizzare le impostazioni precedenti?", - [ T_MODE_ERROR_NO_EFFECT ] = "ERRORE: il comando non ha effetto qui", - [ T_MODE_ERROR_NO_EFFECT_HIZ ] = "Il comando non ha effetto in modalità HiZ, premere 'm' per scegliere una modalità", - [ T_MODE_NO_HELP_AVAILABLE ] = "Nessun aiuto disponibile", - [ T_PRESS_ANY_KEY_TO_EXIT ] = "Premere un tasto per uscire", - [ T_PRESS_ANY_KEY ] = "Premere un tasto", - [ T_PRESS_BUTTON ] = "Press button", - [ T_PRESS_X_TO_EXIT ] = "Press 'x' to exit", - [ T_MODE_MODE_SELECTION ] = "Selezione modalità", - [ T_MODE_MODE ] = "Modalità", - [ T_MODE_NUMBER_DISPLAY_FORMAT ] = "Formato visualizzazione numero", - [ T_MODE_INVALID_OPTION ] = "Opzione non valida", - [ T_MODE_CHOOSE_AVAILABLE_PIN ] = "Scegliere il pin disponibile:", - [ T_MODE_ALL_PINS_IN_USE ] = "Tutti i pin sono in uso", - [ T_MODE_PULLUP_RESISTORS ] = "Resistenze di pull-up", - [ T_MODE_POWER_SUPPLY ] = "Alimentazione", - [ T_MODE_DISABLED ] = "Disabilitato", - [ T_MODE_DISPLAY ] = "Display", - [ T_MODE_DISPLAY_SELECTION ] = "Selezione display", - [ T_MODE_ENABLED ] = "Abilitato", - [ T_MODE_BITORDER ] = "Ordine dei bit", - [ T_MODE_BITORDER_MSB ] = "MSB", - [ T_MODE_BITORDER_LSB ] = "LSB", - [ T_MODE_DELAY ] = "Ritardo", - [ T_MODE_US ] = "us", - [ T_MODE_MS ] = "ms", - [ T_MODE_ADC_VOLTAGE ] = "Volts on", - [ T_MODE_ERROR_PARSING_MACRO ] = "Errore durante l'analisi della macro", - [ T_MODE_ERROR_NO_MACROS_AVAILABLE ] = "Nessun macro disponibile", - [ T_MODE_ERROR_MACRO_NOT_DEFINED ] = "Macro non definita", - [ T_MODE_TICK_CLOCK ] = "Tick clock", - [ T_MODE_SET_CLK ] = "Imposta ora", - [ T_MODE_SET_DAT ] = "Imposta data", - [ T_MODE_READ_DAT ] = "Leggi data", - [ T_MODE_NO_VOUT_VREF_ERROR ] = "Nessuna tensione rilevata sul pin VOUT/VREF", - [ T_MODE_NO_VOUT_VREF_HINT ] = "Suggerimento: Utilizza W per abilitare l'alimentazione o collega un'alimentazione esterna", - [ T_MODE_NO_PULLUP_ERROR ] = "Pull-up not detected on IO pin", - [ T_MODE_NO_PULLUP_HINT ] = "Hint: Use P to enable pull-up resistors, or use external pull-up", - [ T_MODE_PWM_GENERATE_FREQUENCY ] = "Genera frequenza", - [ T_MODE_FREQ_MEASURE_FREQUENCY ] = "Misura frequenza", - [ T_MODE_FREQ_FREQUENCY ] = "Frequenza", - [ T_MODE_FREQ_DUTY_CYCLE ] = "Duty cycle", - [ T_PSU_DAC_ERROR ] = "Errore DAC del PSU, eseguire l'auto-test", - [ T_PSU_CURRENT_LIMIT_ERROR ] = "Corrente oltre il limite, alimentazione disabilitata", - [ T_PSU_SHORT_ERROR ] = "Potenziale corto circuito, alimentazione disabilitata", - [ T_PSU_ALREADY_DISABLED_ERROR ] = "Alimentazione già disabilitata", - [ T_SYNTAX_EXCEEDS_MAX_SLOTS ] = "Il risultato supera lo spazio disponibile (%d slot)", - [ T_HWSPI_SPEED_MENU ] = "Velocità SPI", - [ T_HWSPI_SPEED_MENU_1 ] = "1 a 62500kHz", - [ T_HWSPI_SPEED_PROMPT ] = "kHz (%s%dkHz*%s)", - [ T_HWSPI_BITS_MENU ] = "Bit dati", - [ T_HWSPI_BITS_MENU_1 ] = "4 a 8 bit", - [ T_HWSPI_BITS_PROMPT ] = "Bits (%s%d*%s)", - [ T_HWSPI_CLOCK_POLARITY_MENU ] = "Polarità del clock", - [ T_HWSPI_CLOCK_POLARITY_MENU_1 ] = "Inattivo BASSO", - [ T_HWSPI_CLOCK_POLARITY_MENU_2 ] = "Inattivo ALTO", - [ T_HWSPI_CLOCK_POLARITY_PROMPT ] = "Polarità", - [ T_HWSPI_CLOCK_PHASE_MENU ] = "Fase del clock", - [ T_HWSPI_CLOCK_PHASE_MENU_1 ] = "FRONTE di salita", - [ T_HWSPI_CLOCK_PHASE_MENU_2 ] = "FRONTE di discesa", - [ T_HWSPI_CLOCK_PHASE_PROMPT ] = "Fase", - [ T_HWSPI_CS_IDLE_MENU ] = "Chip select", - [ T_HWSPI_CS_IDLE_MENU_1 ] = "Attivo ALTO (CS)", - [ T_HWSPI_CS_IDLE_MENU_2 ] = "Attivo BASSO (/CS)", - [ T_HWSPI_CS_IDLE_PROMPT ] = "CS", - [ T_HWSPI_ACTUAL_SPEED_KHZ ] = "Velocità effettiva", - [ T_HWSPI_CS_SELECT ] = "CS abilitato", - [ T_HWSPI_CS_DESELECT ] = "CS disabilitato", - [ T_UART_SPEED_MENU ] = "Velocità UART", - [ T_UART_SPEED_MENU_1 ] = "1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 ecc", - [ T_UART_SPEED_PROMPT ] = "Baud (%s%d*%s)", - [ T_UART_PARITY_MENU ] = "Parità", - [ T_UART_PARITY_MENU_1 ] = "Nessuna", - [ T_UART_PARITY_MENU_2 ] = "Pari", - [ T_UART_PARITY_MENU_3 ] = "Dispari", - [ T_UART_PARITY_PROMPT ] = "Parità", - [ T_UART_DATA_BITS_MENU ] = "Bit dati", - [ T_UART_DATA_BITS_MENU_1 ] = "5 a 8 bit", - [ T_UART_DATA_BITS_PROMPT ] = "Bits (%s%d*%s)", - [ T_UART_STOP_BITS_MENU ] = "Bit di stop", - [ T_UART_STOP_BITS_MENU_1 ] = "1", - [ T_UART_STOP_BITS_MENU_2 ] = "2", - [ T_UART_STOP_BITS_PROMPT ] = "Bit", - [ T_UART_BLOCKING_MENU ] = "Utilizzare funzioni bloccanti?", - [ T_UART_BLOCKING_MENU_1 ] = "No", - [ T_UART_BLOCKING_MENU_2 ] = "Sì", - [ T_UART_BLOCKING_PROMPT ] = "Bloccante", - [ T_UART_FLOW_CONTROL_MENU ] = "Hardware flow control", - [ T_UART_FLOW_CONTROL_MENU_1 ] = "None", - [ T_UART_FLOW_CONTROL_MENU_2 ] = "RTS/CTS", - [ T_UART_FLOW_CONTROL_PROMPT ] = "Flow control", - [ T_UART_INVERT_MENU ] = "Signal inversion", - [ T_UART_INVERT_MENU_1 ] = "Non-inverted (Standard)", - [ T_UART_INVERT_MENU_2 ] = "Inverted", - [ T_UART_INVERT_PROMPT ] = "Invert signals", - [ T_UART_ACTUAL_SPEED_BAUD ] = "Velocità effettiva", - [ T_UART_BAUD ] = "baud", - [ T_UART_OPEN ] = "UART APERTA", - [ T_UART_OPEN_WITH_READ ] = "UART APERTA (LETTURA ASINCRONA)", - [ T_UART_CLOSE ] = "UART CHIUSA", - [ T_UART_NO_DATA_READ ] = "Nessun dato da leggere", - [ T_UART_NO_DATA_TIMEOUT ] = "Timeout lettura dati", - [ T_HWI2C_SPEED_MENU ] = "Velocità I2C", - [ T_HWI2C_SPEED_MENU_1 ] = "1kHz a 1000kHz", - [ T_HWI2C_SPEED_PROMPT ] = "kHz (%s%dkHz*%s)", - [ T_HWI2C_DATA_BITS_MENU ] = "Bit dati", - [ T_HWI2C_DATA_BITS_MENU_1 ] = "8", - [ T_HWI2C_DATA_BITS_MENU_2 ] = "10", - [ T_HWI2C_DATA_BITS_PROMPT ] = "Bits", - [ T_HWI2C_CLOCK_STRETCH_MENU ] = "Clock stretching", - [ T_HWI2C_CLOCK_STRETCH_PROMPT ] = "(OFF)", - [ T_HWI2C_START ] = "I2C START", - [ T_HWI2C_REPEATED_START ] = "I2C REPEATED START", - [ T_HWI2C_STOP ] = "I2C STOP", - [ T_HWI2C_ACK ] = "ACK", - [ T_HWI2C_NACK ] = "NACK", - [ T_HWI2C_NO_PULLUP_DETECTED ] = "nessun pull-up. Abilita l'alimentazione (W) e le resistenze di pull-up (P)", - [ T_HWI2C_NO_VOUT_DETECTED ] = "no power detected", - [ T_HWI2C_TIMEOUT ] = "Timeout I2C", - [ T_HWI2C_I2C_ERROR ] = "Errore bus I2C", - [ T_HW2WIRE_SPEED_MENU ] = "Velocità 2WIRE", - [ T_HW2WIRE_RST_LOW ] = "RST BASSO", - [ T_HW2WIRE_RST_HIGH ] = "RST ALTO", - [ T_HW3WIRE_SPEED_MENU_1 ] = "1 to 3900kHz", - [ T_HWLED_DEVICE_MENU ] = "Tipo LED", - [ T_HWLED_DEVICE_MENU_1 ] = "WS2812/SK6812/'NeoPixel' (interfaccia a singolo filo)", - [ T_HWLED_DEVICE_MENU_2 ] = "APA102/SK9822 (interfaccia clock e dati)", - [ T_HWLED_DEVICE_MENU_3 ] = "LED onboard (18 SK6812s)", - [ T_HWLED_DEVICE_PROMPT ] = "Tipo", - [ T_HWLED_NUM_LEDS_MENU ] = "Numero di LED nella striscia", - [ T_HWLED_NUM_LEDS_MENU_1 ] = "1 a 10000", - [ T_HWLED_NUM_LEDS_PROMPT ] = "LED (%s%d*%s)", - [ T_HWLED_RESET ] = "RESET", - [ T_HWLED_FRAME_START ] = "INIZIO FRAME (0x00000000)", - [ T_HWLED_FRAME_STOP ] = "FINE FRAME (0xFFFFFFFF)", - [ T_HW1WIRE_RESET ] = "RESET 1-Wire", - [ T_HW1WIRE_PRESENCE_DETECT ] = "Presenza rilevata", - [ T_HW1WIRE_NO_DEVICE ] = "Nessun dispositivo rilevato", - [ T_IR_RX_SENSOR_MENU ] = "RX sensor", - [ T_IR_RX_SENSOR_MENU_LEARNER ] = "20-60kHz learner", - [ T_IR_RX_SENSOR_MENU_BARRIER ] = "38kHz barrier", - [ T_IR_RX_SENSOR_MENU_38K_DEMOD ] = "36-40kHz demodulator", - [ T_IR_RX_SENSOR_MENU_56K_DEMOD ] = "56kHz demodulator", - [ T_IR_TX_SPEED_MENU ] = "TX modulation", - [ T_IR_TX_SPEED_MENU_1 ] = "20kHz to 60kHz", - [ T_IR_TX_SPEED_PROMPT ] = "kHz (%s%dkHz*%s)", - [ T_IR_PROTOCOL_MENU ] = "Protocol", - [ T_IR_PROTOCOL_MENU_RC5 ] = "RC5", - [ T_IR_PROTOCOL_MENU_NEC ] = "NEC", - [ T_CMDLN_INVALID_COMMAND ] = "Comando non valido: %s. Digita ? per ottenere aiuto.", - [ T_CMDLN_NO_HELP ] = "Aiuto non disponibile al momento per questo comando.", - [ T_CMDLN_LS ] = "ls - elenca i file nella cartella corrente o nella cartella .", - [ T_CMDLN_CD ] = "cd - passa alla cartella .", - [ T_CMDLN_MKDIR ] = "mkdir - crea .", - [ T_CMDLN_RM ] = "rm - rimuove il file o la cartella (vuota).", - [ T_CMDLN_CAT ] = "cat - stampa il contenuto di .", - [ T_CMDLN_MODE ] = "m - cambia modalità protocollo. m per saltare il menu.", - [ T_CMDLN_PSU_EN ] = "W - abilita l'alimentazione integrata, mostra il menu di configurazione.", - [ T_CMDLN_RESET ] = "# - resetta e riavvia Bus Pirate.", - [ T_CMDLN_BOOTLOAD ] = "$ - resetta ed entra in modalità bootloader per gli aggiornamenti.", - [ T_CMDLN_INT_FORMAT ] = "= - converte in BIN/DEC/HEX/ASCII.", - [ T_CMDLN_INT_INVERSE ] = "| - inverte i bit in .", - [ T_CMDLN_HELP ] = "? - mostra l'aiuto sui comandi e la sintassi.", - [ T_CMDLN_CONFIG_MENU ] = "c - apri il menu di configurazione del Bus Pirate.", - [ T_CMDLN_FREQ_ONE ] = "f - misura la frequenza una volta su .", - [ T_CMDLN_FREQ_CONT ] = "F - misura continuamente la frequenza su .", - [ T_CMDLN_PWM_CONFIG ] = "G - configura il generatore di frequenza (PWM) su un pin IOx disponibile.", - [ T_CMDLN_PWM_DIS ] = "g - disabilita il generatore di frequenza (PWM) sul pin .", - [ T_CMDLN_HELP_MODE ] = "h - mostra la schermata di aiuto specifica della modalità.", - [ T_CMDLN_HELP_DISPLAY ] = "hd - mostra la schermata di aiuto specifica della modalità di visualizzazione.", - [ T_CMDLN_INFO ] = "i - mostra le informazioni e lo stato del Bus Pirate.", - [ T_CMDLN_BITORDER_MSB ] = "l - imposta l'ordine di uscita del bit più significativo (MSB).", - [ T_CMDLN_BITORDER_LSB ] = "L - imposta l'ordine di uscita del bit meno significativo (LSB).", - [ T_CMDLN_DISPLAY_FORMAT ] = "o - configura il formato di visualizzazione del numero.", - [ T_CMDLN_PULLUPS_EN ] = "P - abilita le resistenze di pull-up integrate.", - [ T_CMDLN_PULLUPS_DIS ] = "p - disabilita le resistenze di pull-up integrate.", - [ T_CMDLN_PSU_DIS ] = "w - disabilita l'alimentazione integrata.", - [ T_CMDLN_ADC_CONT ] = "V - misura la tensione in modo continuo sul pin . Omettere il numero del pin per misurare la tensione su tutti i pin.", - [ T_CMDLN_ADC_ONE ] = "v - misura la tensione una volta sul pin . Omettere il numero del pin per misurare la tensione su tutti i pin una volta.", - [ T_CMDLN_SELFTEST ] = "~ - esegui un auto-test di fabbrica. Disconnetti tutti i dispositivi collegati e passa alla modalità HiZ prima di avviare il test.", - [ T_CMDLN_AUX_IN ] = "@ - rendi il pin di ingresso, leggi lo stato del pin.", - [ T_CMDLN_AUX_LOW ] = "a - rendi il pin di uscita e basso.", - [ T_CMDLN_AUX_HIGH ] = "A - rendi il pin di uscita e alto.", - [ T_CMDLN_DUMP ] = "dump - scarica i contenuti del flash su . Avviso: attualmente è un prototipo che funziona solo con 25LC020 in modalità SPI.", - [ T_CMDLN_LOAD ] = "load - carica i contenuti di su flash . Avviso: attualmente è un prototipo che funziona solo con 25LC020 in modalità SPI.", - [ T_CMDLN_DISPLAY ] = "d - cambia la modalità di visualizzazione, mostra il menu di selezione.", - [ T_CMDLN_LOGIC ] = "logic - analizzatore logico. 1kHz-62500kHz, 0:7, 0:1.", - [ T_CMDLN_HEX ] = "esadecimale - stampa i contenuti di in esadecimale", - [ T_HELP_TITLE ] = "Sintassi generale CommandBus", - [ T_HELP_GENERAL_COMMANDS ] = "Comandi Generali", - [ T_HELP_BUS_SYNTAX ] = "Sintassi Bus", - [ T_HELP_DISK_COMMANDS ] = "Comandi Disco", - [ T_HELP_BLANK ] = "", - [ T_HELP_SECTION_IO ] = "lavora con i pin, ingresso, misurazion uscita", - [ T_HELP_SECTION_CAPTURE ] = "misura segnali analogici e digitali", - [ T_HELP_SECTION_CONFIGURE ] = "configura il terminale, LED, display e modalità", - [ T_HELP_SECTION_SYSTEM ] = "riavvio, aggiornamenti firmware e diagnostica", - [ T_HELP_SECTION_FILES ] = "elenca i file e naviga nell'archivio", - [ T_HELP_SECTION_PROGRAMS ] = "comandi utili e mini-programmi", - [ T_HELP_SECTION_MODE ] = "entra in una modalità per utilizzare i protocolli", - [ T_HELP_SECTION_SYNTAX ] = "invia e ricevi dati nelle modalità utilizzando la sintassi del bus", - [ T_HELP_SECTION_HELP ] = "ottieni ulteriore aiuto", - [ T_HELP_GREATER_THAN ] = "Esegui la sintassi del bus", - [ T_HELP_SYNTAX_ADC ] = "Misura tensione su IO.x", - [ T_HELP_CMD_LS ] = "Elenco file", - [ T_HELP_CMD_CD ] = "Cambia cartella", - [ T_HELP_CMD_MKDIR ] = "Crea caretlla", - [ T_HELP_CMD_RM ] = "Rimuovi file/cartella", - [ T_HELP_CMD_PAUSE ] = "In pausa fino a quando non viene premuto un tasto, per la creazione di script", - [ T_HELP_CMD_FORMAT ] = "Formatta disco di archiviazione (FAT16)", - [ T_HELP_CMD_CAT ] = "Stampa i contenuti del file come testo", - [ T_HELP_CMD_HEX ] = "Stampa i contenuti del file in esadecimale", - [ T_HELP_CAPTURE_SCOPE ] = "Interfaccia oscilloscopio", - [ T_HELP_CAPTURE_LA ] = "Interfaccia analizzatore logico", - [ T_HELP_CMD_FLASH ] = "Cancella, scrivi, leggi e verifica chip flash SPI", - [ T_HELP_CMD_LABEL ] = "Get or set the disk label", - [ T_HELP_CMD_IMAGE ] = "Write a bitmap image on the LCD", - [ T_HELP_CMD_DUMP ] = "Repeat read command, save ouput to storage", - [ T_HELP_1_2 ] = "Converte x/inverte x", - [ T_HELP_1_3 ] = "Auto test", - [ T_HELP_1_4 ] = "Resetta il Bus Pirate", - [ T_HELP_1_5 ] = "Vai alla modalità bootloader", - [ T_HELP_1_6 ] = "Ritardo 1 us/MS (d:4 per ripetere)", - [ T_HELP_1_7 ] = "Imposta lo stato IO.x (basso/ALTO/LEGGI)", - [ T_HELP_COMMAND_AUX ] = "Imposta lo stato IO x (basso/ALTO/LEGGI)", - [ T_HELP_COMMAND_DISPLAY ] = "Cambia la modalità di visualizzazione del display", - [ T_HELP_1_9 ] = "Configura terminale, lingua, LED", - [ T_HELP_1_22 ] = "Mostra tensione su IOx (una volta/CONT)", - [ T_HELP_1_10 ] = "Mostra tensione tutti gli IO (una volta/CONT)", - [ T_HELP_1_11 ] = "Misura frequenza su IOx (una volta/CONT)", - [ T_HELP_1_23 ] = "Monitora frequenza (OFF/ON)", - [ T_HELP_1_12 ] = "Genera frequenza (OFF/ON)", - [ T_HELP_HELP_GENERAL ] = "Aiuto globale, della modalità e della visualizzazione. Prova '?', '? mode' e '? display'", - [ T_HELP_HELP_DISPLAY ] = "Aiuto con una modalità di visualizzazione, ad es. oscilloscopio", - [ T_HELP_HELP_COMMAND ] = "Aggiungi -h per l'aiuto del comando: ls -h", - [ T_HELP_1_14 ] = "Versione Bus Pirate e informazioni sullo stato", - [ T_HELP_1_15 ] = "Ordine dei bit (MSB/LSB)", - [ T_HELP_1_16 ] = "Cambia a una modalità di protocollo come I2C", - [ T_HELP_1_17 ] = "Scegli come vengono visualizzati i numeri", - [ T_HELP_1_18 ] = "Resistenze di pull-up (OFF/ON)", - [ T_HELP_1_19 ] = "-", - [ T_HELP_1_20 ] = "Mostra tensioni/stati", - [ T_HELP_1_21 ] = "Alimentazione (OFF/ON)", - [ T_HELP_2_1 ] = "Macro di modalità x/elenco completo", - [ T_HELP_2_3 ] = "Start/Start II (dipendente dalla modalità)", - [ T_HELP_2_4 ] = "Stop/Stop II (dipendente dalla modalità)", - [ T_HELP_2_7 ] = "Scrivi stringa", - [ T_HELP_2_8 ] = "Scrivi valore (decimale)", - [ T_HELP_2_9 ] = "Scrivi valore (esadecimale)", - [ T_HELP_2_10 ] = "Scrivi valore (binario)", - [ T_HELP_2_11 ] = "Leggi", - [ T_HELP_SYN_CLOCK_HIGH ] = "Clock alto", - [ T_HELP_SYN_CLOCK_LOW ] = "Clock basso", - [ T_HELP_SYN_CLOCK_TICK ] = "Clock tick", - [ T_HELP_SYN_DATA_HIGH ] = "Dati alti", - [ T_HELP_SYN_DATA_LOW ] = "Dati bassi", - [ T_HELP_SYN_DATA_READ ] = "Leggi lo stato del pin dati", - [ T_HELP_2_18 ] = "Lettura bit", - [ T_HELP_2_19 ] = "Ripeti ad esempio r:10", - [ T_HELP_2_20 ] = "Bit da leggere/scrivere ad esempio 0x55.2", - [ T_HELP_2_21 ] = "Macro utente x/elenco completo", - [ T_HELP_2_22 ] = "Assegna macro utente x", - [ T_HELP_HINT ] = "Concatena più comandi con ; || &&.", - [ T_HELP_FLASH ] = "leggi, scrivi e cancella chip flash utilizzando le informazioni SFDP se disponibili", - [ T_HELP_FLASH_ERASE ] = "Cancella il chip flash. flash erase [-v(erifica)]", - [ T_HELP_FLASH_WRITE ] = "Scrivi file sul chip flash. flash write -f [-e(cancella)] [-v(erifica)]", - [ T_HELP_FLASH_READ ] = "Leggi il chip flash su file. flash read -f ", - [ T_HELP_FLASH_VERIFY ] = "Verifica il chip flash rispetto al file. flash verify -f ", - [ T_HELP_FLASH_TEST ] = "Cancella e scrive l'intero chip con dati fittizzi, verifica. flash test", - [ T_HELP_FLASH_PROBE ] = "Sonda il chip flash per ID e informazioni SFDP. flash probe", - [ T_HELP_FLASH_INIT ] = "Resetta e inizializza il chip flash. Predefinito se non vengono fornite opzioni. flash", - [ T_HELP_FLASH_FILE_FLAG ] = "Flag file. File da scrivere, leggere o verificare. flash verify -f ", - [ T_HELP_FLASH_ERASE_FLAG ] = "Flag cancella. Aggiungi cancella prima della scrittura. flash write -f -e", - [ T_HELP_FLASH_VERIFY_FLAG ] = "Flag verifica. Aggiungi verifica dopo la scrittura o la cancellazione. flash write -f -v", - [ T_INFO_FIRMWARE ] = "Firmware", - [ T_INFO_BOOTLOADER ] = "Bootloader", - [ T_INFO_WITH ] = "con", - [ T_INFO_RAM ] = "RAM", - [ T_INFO_FLASH ] = "FLASH", - [ T_INFO_SN ] = "S/N", - [ T_INFO_WEBSITE ] = "https://BusPirate.com/", - [ T_INFO_TF_CARD ] = "Archiviazione", - [ T_INFO_FILE_SYSTEM ] = "File System", - [ T_NOT_DETECTED ] = "Non rilevato", - [ T_INFO_AVAILABLE_MODES ] = "Modalità disponibili", - [ T_INFO_CURRENT_MODE ] = "Modalità attiva", - [ T_INFO_POWER_SUPPLY ] = "Alimentazione", - [ T_INFO_CURRENT_LIMIT ] = "Limite di corrente", - [ T_INFO_PULLUP_RESISTORS ] = "Resistenze di pull-up", - [ T_INFO_FREQUENCY_GENERATORS ] = "Generatori di frequenza", - [ T_INFO_DISPLAY_FORMAT ] = "Formato display", - [ T_INFO_DATA_FORMAT ] = "Formato dati", - [ T_INFO_BITS ] = "bit", - [ T_INFO_BITORDER ] = "ordine bit", - [ T_CONFIG_FILE ] = "File di configurazione", - [ T_CONFIG_CONFIGURATION_OPTIONS ] = "Opzioni di configurazione", - [ T_CONFIG_LANGUAGE ] = "Language / Jezik / Lingua / 语言", - [ T_CONFIG_ANSI_COLOR_MODE ] = "Modalità colore ANSI", - [ T_CONFIG_ANSI_COLOR_FULLCOLOR ] = "ANSI Full-Color (16M colors)", - [ T_CONFIG_ANSI_COLOR_256 ] = "ANSI-256 color", - [ T_CONFIG_ANSI_TOOLBAR_MODE ] = "Modalità barra degli strumenti ANSI", - [ T_CONFIG_LANGUAGE_ENGLISH ] = "Language - English (US)", - [ T_CONFIG_LANGUAGE_CHINESE ] = "语言 - 中文(简体)", - [ T_CONFIG_LANGUAGE_POLISH ] = "Język - polski (Polska)", - [ T_CONFIG_LANGUAGE_BOSNIAN ] = "Jezik - bosanski (latinica, Bosna i Hercegovina)", - [ T_CONFIG_LANGUAGE_ITALIAN ] = "Lingua - italiano (Italia)", - [ T_CONFIG_DISABLE ] = "Disabilita", - [ T_CONFIG_ENABLE ] = "Abilita", - [ T_CONFIG_SCREENSAVER ] = "Screensaver LCD", - [ T_CONFIG_SCREENSAVER_5 ] = "5 minuti", - [ T_CONFIG_SCREENSAVER_10 ] = "10 minuti", - [ T_CONFIG_SCREENSAVER_15 ] = "15 minuti", - [ T_CONFIG_LEDS_EFFECT ] = "Effetto LED", - [ T_CONFIG_LEDS_EFFECT_SOLID ] = "Solido", - [ T_CONFIG_LEDS_EFFECT_ANGLEWIPE ] = "Pulizia angolare", - [ T_CONFIG_LEDS_EFFECT_CENTERWIPE ] = "Pulizia centrale", - [ T_CONFIG_LEDS_EFFECT_CLOCKWISEWIPE ] = "Pulizia oraria", - [ T_CONFIG_LEDS_EFFECT_TOPDOWNWIPE ] = "Pulizia dall'alto verso il basso", - [ T_CONFIG_LEDS_EFFECT_SCANNER ] = "Scanner", - [ T_CONFIG_LEDS_EFFECT_GENTLE_GLOW ] = "Gentle glow", - [ T_CONFIG_LEDS_EFFECT_CYCLE ] = "Modalità party", - [ T_CONFIG_LEDS_COLOR ] = "Colore LED", - [ T_CONFIG_LEDS_COLOR_RAINBOW ] = "Arcobaleno", - [ T_CONFIG_LEDS_COLOR_RED ] = "Rosso", - [ T_CONFIG_LEDS_COLOR_ORANGE ] = "Arancione", - [ T_CONFIG_LEDS_COLOR_YELLOW ] = "Giallo", - [ T_CONFIG_LEDS_COLOR_GREEN ] = "Verde", - [ T_CONFIG_LEDS_COLOR_BLUE ] = "Blu", - [ T_CONFIG_LEDS_COLOR_PURPLE ] = "Viola", - [ T_CONFIG_LEDS_COLOR_PINK ] = "Rosa", - [ T_CONFIG_LEDS_COLOR_WHITE ] = "White", - [ T_CONFIG_LEDS_BRIGHTNESS ] = "Luminosità LED", - [ T_CONFIG_LEDS_BRIGHTNESS_10 ] = "10%", - [ T_CONFIG_LEDS_BRIGHTNESS_20 ] = "20%", - [ T_CONFIG_LEDS_BRIGHTNESS_30 ] = "30%", - [ T_CONFIG_LEDS_BRIGHTNESS_40 ] = "40%", - [ T_CONFIG_LEDS_BRIGHTNESS_50 ] = "50%", - [ T_CONFIG_LEDS_BRIGHTNESS_100 ] = "100% ATTENZIONE: danneggerà la porta USB senza alimentazione esterna", - [ T_CONFIG_BINMODE_SELECT ] = "Select binary mode", - [ T_HELP_DUMMY_COMMANDS ] = "Comandi fittizzi validi in posizione 1", - [ T_HELP_DUMMY_INIT ] = "Comando di inizializzazione fittizio", - [ T_HELP_DUMMY_TEST ] = "Comando di test fittizio", - [ T_HELP_DUMMY_FLAGS ] = "Flag falsi", - [ T_HELP_DUMMY_B_FLAG ] = "-b richiede il pulsante Bus Pirate da premere. Non richiede parametri", - [ T_HELP_DUMMY_I_FLAG ] = "-i . Richiede parametro numerico intero", - [ T_HELP_DUMMY_FILE_FLAG ] = "-f . Crea/scrivi/leggi . Richiede parametro stringa file", - [ T_HELP_SLE4442 ] = "Interfaccia per scheda smart SLE4442", - [ T_HELP_SLE4442_INIT ] = "Inizializza la scheda con ISO7816-3 ATR. Azione predefinita", - [ T_HELP_SLE4442_DUMP ] = "Visualizza memoria principale, di sicurezza e protetta", - [ T_HELP_SLE4442_UNLOCK ] = "Sblocca la scheda con il Codice di Sicurezza Programmabile (PSC)", - [ T_HELP_SLE4442_WRITE ] = "Scrivi dati sulla scheda (richiede sblocco)", - [ T_HELP_SLE4442_ERASE ] = "Cancella dati nell'intervallo 0x32-0x255 (richiede sblocco)", - [ T_HELP_SLE4442_PSC ] = "Cambia il Codice di Sicurezza Programmabile (PSC)", - [ T_HELP_SLE4442_ADDRESS_FLAG ] = "Flag indirizzo di scrittura", - [ T_HELP_SLE4442_VALUE_FLAG ] = "Flag valore di scrittura", - [ T_HELP_SLE4442_CURRENT_PSC_FLAG ] = "Flag Codice di Sicurezza Programmabile (PSC) corrente", - [ T_HELP_SLE4442_NEW_PSC_FLAG ] = "Flag nuovo Codice di Sicurezza Programmabile (PSC)", - [ T_HELP_SLE4442_FILE_FLAG ] = "Dump file name flag", - [ T_HELP_GCMD_W ] = "alimentazione integrata con fusibile programmabile", - [ T_HELP_GCMD_W_DISABLE ] = "Disabilita l'alimentazione integrata", - [ T_HELP_GCMD_W_ENABLE ] = "Abilita l'alimentazione integrata, mostra il menu di configurazione", - [ T_HELP_GCMD_W_VOLTS ] = "Tensione, 0,8-5,0 volt", - [ T_HELP_GCMD_W_CURRENT_LIMIT ] = "Limite di corrente, 0-500mA", - [ T_HELP_GCMD_P ] = "resistenze di pull-up integrate", - [ T_HELP_HELP ] = "aiuto per i comandi e le modalità Bus Pirate", - [ T_HELP_SYS_COMMAND ] = "Comandi per accedere al sistema di aiuto", - [ T_HELP_SYS_DISPLAY ] = "Mostra l'aiuto sulla modalità di visualizzazione (ad es. oscilloscopio)", - [ T_HELP_SYS_MODE ] = "Mostra comandi e aiuto specifici della modalità", - [ T_HELP_SYS_HELP ] = "Come utilizzare il sistema di aiuto", - [ T_HELP_GCMD_SELFTEST ] = "esegui un'autotest completo del sistema", - [ T_HELP_GCMD_SELFTEST_CMD ] = "Esegui autotest", - [ T_HELP_GCMD_SELFTEST_H_FLAG ] = "Aiuto autotest", - [ T_HELP_AUXIO ] = "imposta lo stato del pin IO, leggi i pin di input", - [ T_HELP_AUXIO_LOW ] = "Output, basso/0. Riserva il pin per l'output", - [ T_HELP_AUXIO_HIGH ] = "Output, alto/1. Riserva il pin per l'output", - [ T_HELP_AUXIO_INPUT ] = "Input, leggi stato. Rilascia il pin riservato", - [ T_HELP_AUXIO_IO ] = "Numero pin IO, 0-7", - [ T_HELP_DISK_HEX ] = "Stampa i contenuti del file in formato esadecimale", - [ T_HELP_DISK_HEX_FILE ] = "Nome del file in formato 8.3 (esempio1.bin)", - [ T_HELP_DISK_HEX_ADDR ] = "Mostra l'offset dell'indirizzo", - [ T_HELP_DISK_HEX_ASCII ] = "Mostra anche il dump ASCII", - [ T_HELP_DISK_HEX_SIZE ] = "Imposta la dimensione della riga in byte", - [ T_HELP_DISK_HEX_OFF ] = "Set file read start offset in bytes", - [ T_HELP_DISK_HEX_PAGER_OFF ] = "Disable the pager for dumping", - [ T_HELP_DISK_CAT ] = "Stampa i contenuti del file come testo", - [ T_HELP_DISK_CAT_FILE ] = "Nome del file in formato 8.3 (esempio1.txt)", - [ T_HELP_DISK_MKDIR ] = "Crea una cartella su archiviazione interna", - [ T_HELP_DISK_MKDIR_DIR ] = "Nome della cartella, max 8 caratteri", - [ T_HELP_DISK_CD ] = "Cambia cartella su archiviazione locale", - [ T_HELP_DISK_CD_DIR ] = "Nome della cartella, max 8 caratteri", - [ T_HELP_DISK_RM ] = "Elimina file o cartella su archiviazione locale", - [ T_HELP_DISK_RM_FILE ] = "Nome del file da eliminare, formato 8.3", - [ T_HELP_DISK_RM_DIR ] = "Nome della cartella da eliminare, max 8 caratteri", - [ T_HELP_DISK_LS ] = "Elenca file e cartelle su archiviazione locale", - [ T_HELP_DISK_LS_DIR ] = "Elenco contenuti di questa cartella, opzionale", - [ T_HELP_DISK_FORMAT ] = "Cancella e formatta l'archiviazione interna nel formato FAT16", - [ T_HELP_DISK_FORMAT_CMD ] = "Tutti i dati verranno persi, rispondi 's' due volte per continuare", - [ T_HELP_DISK_LABEL ] = "get or set the disk label", - [ T_HELP_DISK_LABEL_GET ] = "returns the current label of the disk", - [ T_HELP_DISK_LABEL_SET ] = "sets the current label of the disk", - [ T_HELP_VADC ] = "misura la tensione sui pin IO", - [ T_HELP_VADC_SINGLE ] = "Misurazione singola", - [ T_HELP_VADC_CONTINUOUS ] = "Misurazione continua", - [ T_HELP_VADC_IO ] = "Numero pin IO, 0-7", - [ T_HELP_I2C_SCAN ] = "scansione degli indirizzi I2C, con opzionale numero di parte", - [ T_HELP_I2C_SCAN_VERBOSE ] = "Modalità dettagliata, stampa potenziali numeri di parte", - [ T_HELP_FLAG ] = "Ottieni aiuto aggiuntivo", - [ T_HELP_I2C_SI7021 ] = "Leggi temperatura e umidità dal sensore SI7021/HTU21/SHT21", - [ T_HELP_I2C_MS5611 ] = "Leggi temperatura e pressione dal sensore MS5611", - [ T_HELP_I2C_TSL2561 ] = "Leggi l'intensità luminosa (LUX) dal sensore TSL2561", - [ T_HELP_1WIRE_SCAN ] = "scansiona per dispositivi 1-Wire", - [ T_HELP_1WIRE_DS18B20 ] = "Interroga il sensore di temperatura DS18B20", - [ T_HELP_UART_BRIDGE ] = "apre UART con IO dati grezzi, modalità bridge USB-seriale", - [ T_HELP_UART_BRIDGE_EXIT ] = "UART bridge. Press Bus Pirate button to exit.", - [ T_HELP_UART_BRIDGE_TOOLBAR ] = "ENABLE toolbar while bridge is active (default: disabled)", - [ T_HELP_UART_BRIDGE_SUPPRESS_LOCAL_ECHO ] = "Suppress local echo, don't echo back sent data", - [ T_HELP_UART_NMEA ] = "analizza i dati GPS NMEA", - [ T_HELP_SECTION_SCRIPT ] = "run scripts, macros and assign button functions", - [ T_HELP_CMD_SCRIPT ] = "Run script files, automation", - [ T_HELP_CMD_BUTTON ] = "Assign button functions", - [ T_HELP_CMD_MACRO ] = "Run macros, load a macro file", - [ T_HELP_CMD_TUTORIAL ] = "Run tutorial files", - [ T_HELP_CMD_PAUSE_KEY ] = "Press any key to continue (default)", - [ T_HELP_CMD_PAUSE_BUTTON ] = "Press the Bus Pirate button to continue", - [ T_HELP_CMD_PAUSE_EXIT ] = "'x' key to exit (e.g. script mode)", - [ T_HELP_BUTTON ] = "Assign script file to button press", - [ T_HELP_BUTTON_SHORT ] = "Assign script file to short button press", - [ T_HELP_BUTTON_LONG ] = "Assign script file to long button press", - [ T_HELP_BUTTON_FILE ] = "Script file to assign to button press", - [ T_HELP_BUTTON_HIDE ] = "Hide comments", - [ T_HELP_BUTTON_EXIT ] = "Exit script on error", - [ T_HELP_LOGIC ] = "logic analyzer control", - [ T_HELP_LOGIC_START ] = "start logic analyzer", - [ T_HELP_LOGIC_STOP ] = "stop logic analyzer", - [ T_HELP_LOGIC_HIDE ] = "hide logic graph", - [ T_HELP_LOGIC_SHOW ] = "show logic graph", - [ T_HELP_LOGIC_NAV ] = "navigate logic graph with arrow keys, x to exit", - [ T_HELP_LOGIC_INFO ] = "show configuration info", - [ T_HELP_LOGIC_FREQUENCY ] = "set sample frequency in Hz", - [ T_HELP_LOGIC_OVERSAMPLE ] = "set oversample rate, multiplies the sample frequency", - [ T_HELP_LOGIC_DEBUG ] = "set debug level: 0-2", - [ T_HELP_LOGIC_SAMPLES ] = "set number of samples", - [ T_HELP_LOGIC_TRIGGER_PIN ] = "set trigger pin, 0-7", - [ T_HELP_LOGIC_TRIGGER_LEVEL ] = "set trigger level, 0-1", - [ T_HELP_LOGIC_LOW_CHAR ] = "set character used for low in graph (ex:_)", - [ T_HELP_LOGIC_HIGH_CHAR ] = "set character used for high in graph (ex:*)", - [ T_HELP_CMD_CLS ] = "Clear and reset the terminal", - [ T_HELP_SECTION_TOOLS ] = "tools and utilities", - [ T_HELP_CMD_LOGIC ] = "Logic analyzer", - [ T_HELP_CMD_SMPS ] = "Switch mode power supply (plank required)", - [ T_INFRARED_CMD_TEST ] = "Test IR RX/TX Toy plank", - [ T_UART_CMD_TEST ] = "Test Dual RS232 plank", - [ T_SPI_CMD_SNIFF ] = "SPI sniffer", - -}; +#pragma once + +// NOTE: GENERATED FILE -- DO NOT EDIT DIRECTLY +// This file is auto-generated by `json2h.py` +// Entirely new strings should be added to `en-us.h` +// Translations should be added to the language code's `.json` file + +// en-us is our base language translation file +#include "translation/base.h" +static char const * const it_it[T_LAST_ITEM_ALWAYS_AT_THE_END]={ + [ T_ON ] = "ON", + [ T_OFF ] = "OFF", + [ T_GND ] = "GND", + [ T_INPUT ] = "INPUT", + [ T_OUTPUT ] = "OUTPUT", + [ T_EXIT ] = "Esci", + [ T_LOADED ] = "Caricato", + [ T_SAVED ] = "Salvato", + [ T_HZ ] = "Hz", + [ T_KHZ ] = "kHz", + [ T_MHZ ] = "MHz", + [ T_SPEED ] = "Speed", + [ T_WARN_VOUT_VREF_LOW ] = "Il pin VOUT/VREF non è alimentato. Utilizza W per abilitare l'alimentazione o collega un'alimentazione esterna", + [ T_USE_PREVIOUS_SETTINGS ] = "Utilizzare le impostazioni precedenti?", + [ T_MODE_ERROR_NO_EFFECT ] = "ERRORE: il comando non ha effetto qui", + [ T_MODE_ERROR_NO_EFFECT_HIZ ] = "Il comando non ha effetto in modalità HiZ, premere 'm' per scegliere una modalità", + [ T_MODE_NO_HELP_AVAILABLE ] = "Nessun aiuto disponibile", + [ T_PRESS_ANY_KEY_TO_EXIT ] = "Premere un tasto per uscire", + [ T_PRESS_ANY_KEY ] = "Premere un tasto", + [ T_PRESS_BUTTON ] = "Press button", + [ T_PRESS_X_TO_EXIT ] = "Press 'x' to exit", + [ T_MODE_MODE_SELECTION ] = "Selezione modalità", + [ T_MODE_MODE ] = "Modalità", + [ T_MODE_NUMBER_DISPLAY_FORMAT ] = "Formato visualizzazione numero", + [ T_MODE_INVALID_OPTION ] = "Opzione non valida", + [ T_MODE_CHOOSE_AVAILABLE_PIN ] = "Scegliere il pin disponibile:", + [ T_MODE_ALL_PINS_IN_USE ] = "Tutti i pin sono in uso", + [ T_MODE_PULLUP_RESISTORS ] = "Resistenze di pull-up", + [ T_MODE_POWER_SUPPLY ] = "Alimentazione", + [ T_MODE_DISABLED ] = "Disabilitato", + [ T_MODE_DISPLAY ] = "Display", + [ T_MODE_DISPLAY_SELECTION ] = "Selezione display", + [ T_MODE_ENABLED ] = "Abilitato", + [ T_MODE_BITORDER ] = "Ordine dei bit", + [ T_MODE_BITORDER_MSB ] = "MSB", + [ T_MODE_BITORDER_LSB ] = "LSB", + [ T_MODE_DELAY ] = "Ritardo", + [ T_MODE_US ] = "us", + [ T_MODE_MS ] = "ms", + [ T_MODE_ADC_VOLTAGE ] = "Volts on", + [ T_MODE_ERROR_PARSING_MACRO ] = "Errore durante l'analisi della macro", + [ T_MODE_ERROR_NO_MACROS_AVAILABLE ] = "Nessun macro disponibile", + [ T_MODE_ERROR_MACRO_NOT_DEFINED ] = "Macro non definita", + [ T_MODE_TICK_CLOCK ] = "Tick clock", + [ T_MODE_SET_CLK ] = "Imposta ora", + [ T_MODE_SET_DAT ] = "Imposta data", + [ T_MODE_READ_DAT ] = "Leggi data", + [ T_MODE_NO_VOUT_VREF_ERROR ] = "Nessuna tensione rilevata sul pin VOUT/VREF", + [ T_MODE_NO_VOUT_VREF_HINT ] = "Suggerimento: Utilizza W per abilitare l'alimentazione o collega un'alimentazione esterna", + [ T_MODE_NO_PULLUP_ERROR ] = "Pull-up not detected on IO pin", + [ T_MODE_NO_PULLUP_HINT ] = "Hint: Use P to enable pull-up resistors, or use external pull-up", + [ T_MODE_PWM_GENERATE_FREQUENCY ] = "Genera frequenza", + [ T_MODE_FREQ_MEASURE_FREQUENCY ] = "Misura frequenza", + [ T_MODE_FREQ_FREQUENCY ] = "Frequenza", + [ T_MODE_FREQ_DUTY_CYCLE ] = "Duty cycle", + [ T_PSU_DAC_ERROR ] = "Errore DAC del PSU, eseguire l'auto-test", + [ T_PSU_CURRENT_LIMIT_ERROR ] = "Corrente oltre il limite, alimentazione disabilitata", + [ T_PSU_SHORT_ERROR ] = "Potenziale corto circuito, alimentazione disabilitata", + [ T_PSU_ALREADY_DISABLED_ERROR ] = "Alimentazione già disabilitata", + [ T_SYNTAX_EXCEEDS_MAX_SLOTS ] = "Il risultato supera lo spazio disponibile (%d slot)", + [ T_HWSPI_SPEED_MENU ] = "Velocità SPI", + [ T_HWSPI_SPEED_MENU_1 ] = "1 a 62500kHz", + [ T_HWSPI_SPEED_PROMPT ] = "kHz (%s%dkHz*%s)", + [ T_HWSPI_BITS_MENU ] = "Bit dati", + [ T_HWSPI_BITS_MENU_1 ] = "4 a 8 bit", + [ T_HWSPI_BITS_PROMPT ] = "Bits (%s%d*%s)", + [ T_HWSPI_CLOCK_POLARITY_MENU ] = "Polarità del clock", + [ T_HWSPI_CLOCK_POLARITY_MENU_1 ] = "Inattivo BASSO", + [ T_HWSPI_CLOCK_POLARITY_MENU_2 ] = "Inattivo ALTO", + [ T_HWSPI_CLOCK_POLARITY_PROMPT ] = "Polarità", + [ T_HWSPI_CLOCK_PHASE_MENU ] = "Fase del clock", + [ T_HWSPI_CLOCK_PHASE_MENU_1 ] = "FRONTE di salita", + [ T_HWSPI_CLOCK_PHASE_MENU_2 ] = "FRONTE di discesa", + [ T_HWSPI_CLOCK_PHASE_PROMPT ] = "Fase", + [ T_HWSPI_CS_IDLE_MENU ] = "Chip select", + [ T_HWSPI_CS_IDLE_MENU_1 ] = "Attivo ALTO (CS)", + [ T_HWSPI_CS_IDLE_MENU_2 ] = "Attivo BASSO (/CS)", + [ T_HWSPI_CS_IDLE_PROMPT ] = "CS", + [ T_HWSPI_ACTUAL_SPEED_KHZ ] = "Velocità effettiva", + [ T_HWSPI_CS_SELECT ] = "CS abilitato", + [ T_HWSPI_CS_DESELECT ] = "CS disabilitato", + [ T_UART_SPEED_MENU ] = "Velocità UART", + [ T_UART_SPEED_MENU_1 ] = "1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 ecc", + [ T_UART_SPEED_PROMPT ] = "Baud (%s%d*%s)", + [ T_UART_PARITY_MENU ] = "Parità", + [ T_UART_PARITY_MENU_1 ] = "Nessuna", + [ T_UART_PARITY_MENU_2 ] = "Pari", + [ T_UART_PARITY_MENU_3 ] = "Dispari", + [ T_UART_PARITY_PROMPT ] = "Parità", + [ T_UART_DATA_BITS_MENU ] = "Bit dati", + [ T_UART_DATA_BITS_MENU_1 ] = "5 a 8 bit", + [ T_UART_DATA_BITS_PROMPT ] = "Bits (%s%d*%s)", + [ T_UART_STOP_BITS_MENU ] = "Bit di stop", + [ T_UART_STOP_BITS_MENU_1 ] = "1", + [ T_UART_STOP_BITS_MENU_2 ] = "2", + [ T_UART_STOP_BITS_PROMPT ] = "Bit", + [ T_UART_BLOCKING_MENU ] = "Utilizzare funzioni bloccanti?", + [ T_UART_BLOCKING_MENU_1 ] = "No", + [ T_UART_BLOCKING_MENU_2 ] = "Sì", + [ T_UART_BLOCKING_PROMPT ] = "Bloccante", + [ T_UART_FLOW_CONTROL_MENU ] = "Hardware flow control", + [ T_UART_FLOW_CONTROL_MENU_1 ] = "None", + [ T_UART_FLOW_CONTROL_MENU_2 ] = "RTS/CTS", + [ T_UART_FLOW_CONTROL_PROMPT ] = "Flow control", + [ T_UART_INVERT_MENU ] = "Signal inversion", + [ T_UART_INVERT_MENU_1 ] = "Non-inverted (Standard)", + [ T_UART_INVERT_MENU_2 ] = "Inverted", + [ T_UART_INVERT_PROMPT ] = "Invert signals", + [ T_UART_GLITCH_TRG_MENU ] = "Glitch trigger character", + [ T_UART_GLITCH_TRG_MENU_1 ] = "1 - 255", + [ T_UART_GLITCH_TRG_PROMPT ] = "ASCII value of trigger character (13)", + [ T_UART_GLITCH_DLY_MENU ] = "Glitch trigger delay", + [ T_UART_GLITCH_DLY_MENU_1 ] = "Delay time in us", + [ T_UART_GLITCH_DLY_PROMPT ] = "Glitch trigger delay (1)", + [ T_UART_GLITCH_VRY_MENU ] = "Glitch vary time", + [ T_UART_GLITCH_VRY_MENU_1 ] = "1 - 10", + [ T_UART_GLITCH_VRY_PROMPT ] = "Glitch vary time (3)", + [ T_UART_GLITCH_CYC_MENU ] = "Glitch cycle delay", + [ T_UART_GLITCH_CYC_MENU_1 ] = "10-1000", + [ T_UART_GLITCH_CYC_PROMPT ] = "Minimum time between glitch cycles in ms (10)", + [ T_UART_GLITCH_FAIL_MENU ] = "Normal response character", + [ T_UART_GLITCH_FAIL_MENU_1 ] = "1 - 255", + [ T_UART_GLITCH_FAIL_PROMPT ] = "ASCII value of first char of normal response (35 - '#')", + [ T_UART_GLITCH_CNT_MENU ] = "Number of glitch attempts", + [ T_UART_GLITCH_CNT_MENU_1 ] = "1 - 10000", + [ T_UART_GLITCH_CNT_PROMPT ] = "Number of glitch attempts before quitting (100)", + [ T_UART_GLITCH_GLITCHED ] = "Target glitch success!", + [ T_UART_GLITCH_CANCELLED ] = "Target glitch cancelled by button", + [ T_UART_GLITCH_DONE ] = "Target glitch count exceeded, no glitch :/", + [ T_UART_TOOL_TIMEOUT ] = "Timout waiting for glitch hardware :/", + [ T_UART_GLITCH_UNKNOWN ] = "Target glitching stopped for unknown reason", + [ T_UART_GLITCH_SETUP_ERR ] = "Error setting up glitcher - check uglitch.bp file", + [ T_UART_ACTUAL_SPEED_BAUD ] = "Velocità effettiva", + [ T_UART_BAUD ] = "baud", + [ T_UART_OPEN ] = "UART APERTA", + [ T_UART_OPEN_WITH_READ ] = "UART APERTA (LETTURA ASINCRONA)", + [ T_UART_CLOSE ] = "UART CHIUSA", + [ T_UART_NO_DATA_READ ] = "Nessun dato da leggere", + [ T_UART_NO_DATA_TIMEOUT ] = "Timeout lettura dati", + [ T_HWI2C_SPEED_MENU ] = "Velocità I2C", + [ T_HWI2C_SPEED_MENU_1 ] = "1kHz a 1000kHz", + [ T_HWI2C_SPEED_PROMPT ] = "kHz (%s%dkHz*%s)", + [ T_HWI2C_DATA_BITS_MENU ] = "Bit dati", + [ T_HWI2C_DATA_BITS_MENU_1 ] = "8", + [ T_HWI2C_DATA_BITS_MENU_2 ] = "10", + [ T_HWI2C_DATA_BITS_PROMPT ] = "Bits", + [ T_HWI2C_CLOCK_STRETCH_MENU ] = "Clock stretching", + [ T_HWI2C_CLOCK_STRETCH_PROMPT ] = "(OFF)", + [ T_HWI2C_START ] = "I2C START", + [ T_HWI2C_REPEATED_START ] = "I2C REPEATED START", + [ T_HWI2C_STOP ] = "I2C STOP", + [ T_HWI2C_ACK ] = "ACK", + [ T_HWI2C_NACK ] = "NACK", + [ T_HWI2C_NO_PULLUP_DETECTED ] = "nessun pull-up. Abilita l'alimentazione (W) e le resistenze di pull-up (P)", + [ T_HWI2C_NO_VOUT_DETECTED ] = "no power detected", + [ T_HWI2C_TIMEOUT ] = "Timeout I2C", + [ T_HWI2C_I2C_ERROR ] = "Errore bus I2C", + [ T_HW2WIRE_SPEED_MENU ] = "Velocità 2WIRE", + [ T_HW2WIRE_RST_LOW ] = "RST BASSO", + [ T_HW2WIRE_RST_HIGH ] = "RST ALTO", + [ T_HW3WIRE_SPEED_MENU_1 ] = "1 to 3900kHz", + [ T_HWLED_DEVICE_MENU ] = "Tipo LED", + [ T_HWLED_DEVICE_MENU_1 ] = "WS2812/SK6812/'NeoPixel' (interfaccia a singolo filo)", + [ T_HWLED_DEVICE_MENU_2 ] = "APA102/SK9822 (interfaccia clock e dati)", + [ T_HWLED_DEVICE_MENU_3 ] = "LED onboard (18 SK6812s)", + [ T_HWLED_DEVICE_PROMPT ] = "Tipo", + [ T_HWLED_NUM_LEDS_MENU ] = "Numero di LED nella striscia", + [ T_HWLED_NUM_LEDS_MENU_1 ] = "1 a 10000", + [ T_HWLED_NUM_LEDS_PROMPT ] = "LED (%s%d*%s)", + [ T_HWLED_RESET ] = "RESET", + [ T_HWLED_FRAME_START ] = "INIZIO FRAME (0x00000000)", + [ T_HWLED_FRAME_STOP ] = "FINE FRAME (0xFFFFFFFF)", + [ T_HW1WIRE_RESET ] = "RESET 1-Wire", + [ T_HW1WIRE_PRESENCE_DETECT ] = "Presenza rilevata", + [ T_HW1WIRE_NO_DEVICE ] = "Nessun dispositivo rilevato", + [ T_IR_RX_SENSOR_MENU ] = "RX sensor", + [ T_IR_RX_SENSOR_MENU_LEARNER ] = "20-60kHz learner", + [ T_IR_RX_SENSOR_MENU_BARRIER ] = "38kHz barrier", + [ T_IR_RX_SENSOR_MENU_38K_DEMOD ] = "36-40kHz demodulator", + [ T_IR_RX_SENSOR_MENU_56K_DEMOD ] = "56kHz demodulator", + [ T_IR_TX_SPEED_MENU ] = "TX modulation", + [ T_IR_TX_SPEED_MENU_1 ] = "20kHz to 60kHz", + [ T_IR_TX_SPEED_PROMPT ] = "kHz (%s%dkHz*%s)", + [ T_IR_PROTOCOL_MENU ] = "Protocol", + [ T_IR_PROTOCOL_MENU_RC5 ] = "RC5", + [ T_IR_PROTOCOL_MENU_NEC ] = "NEC", + [ T_CMDLN_INVALID_COMMAND ] = "Comando non valido: %s. Digita ? per ottenere aiuto.", + [ T_CMDLN_NO_HELP ] = "Aiuto non disponibile al momento per questo comando.", + [ T_CMDLN_LS ] = "ls - elenca i file nella cartella corrente o nella cartella .", + [ T_CMDLN_CD ] = "cd - passa alla cartella .", + [ T_CMDLN_MKDIR ] = "mkdir - crea .", + [ T_CMDLN_RM ] = "rm - rimuove il file o la cartella (vuota).", + [ T_CMDLN_CAT ] = "cat - stampa il contenuto di .", + [ T_CMDLN_MODE ] = "m - cambia modalità protocollo. m per saltare il menu.", + [ T_CMDLN_PSU_EN ] = "W - abilita l'alimentazione integrata, mostra il menu di configurazione.", + [ T_CMDLN_RESET ] = "# - resetta e riavvia Bus Pirate.", + [ T_CMDLN_BOOTLOAD ] = "$ - resetta ed entra in modalità bootloader per gli aggiornamenti.", + [ T_CMDLN_INT_FORMAT ] = "= - converte in BIN/DEC/HEX/ASCII.", + [ T_CMDLN_INT_INVERSE ] = "| - inverte i bit in .", + [ T_CMDLN_HELP ] = "? - mostra l'aiuto sui comandi e la sintassi.", + [ T_CMDLN_CONFIG_MENU ] = "c - apri il menu di configurazione del Bus Pirate.", + [ T_CMDLN_FREQ_ONE ] = "f - misura la frequenza una volta su .", + [ T_CMDLN_FREQ_CONT ] = "F - misura continuamente la frequenza su .", + [ T_CMDLN_PWM_CONFIG ] = "G - configura il generatore di frequenza (PWM) su un pin IOx disponibile.", + [ T_CMDLN_PWM_DIS ] = "g - disabilita il generatore di frequenza (PWM) sul pin .", + [ T_CMDLN_HELP_MODE ] = "h - mostra la schermata di aiuto specifica della modalità.", + [ T_CMDLN_HELP_DISPLAY ] = "hd - mostra la schermata di aiuto specifica della modalità di visualizzazione.", + [ T_CMDLN_INFO ] = "i - mostra le informazioni e lo stato del Bus Pirate.", + [ T_CMDLN_BITORDER_MSB ] = "l - imposta l'ordine di uscita del bit più significativo (MSB).", + [ T_CMDLN_BITORDER_LSB ] = "L - imposta l'ordine di uscita del bit meno significativo (LSB).", + [ T_CMDLN_DISPLAY_FORMAT ] = "o - configura il formato di visualizzazione del numero.", + [ T_CMDLN_PULLUPS_EN ] = "P - abilita le resistenze di pull-up integrate.", + [ T_CMDLN_PULLUPS_DIS ] = "p - disabilita le resistenze di pull-up integrate.", + [ T_CMDLN_PSU_DIS ] = "w - disabilita l'alimentazione integrata.", + [ T_CMDLN_ADC_CONT ] = "V - misura la tensione in modo continuo sul pin . Omettere il numero del pin per misurare la tensione su tutti i pin.", + [ T_CMDLN_ADC_ONE ] = "v - misura la tensione una volta sul pin . Omettere il numero del pin per misurare la tensione su tutti i pin una volta.", + [ T_CMDLN_SELFTEST ] = "~ - esegui un auto-test di fabbrica. Disconnetti tutti i dispositivi collegati e passa alla modalità HiZ prima di avviare il test.", + [ T_CMDLN_AUX_IN ] = "@ - rendi il pin di ingresso, leggi lo stato del pin.", + [ T_CMDLN_AUX_LOW ] = "a - rendi il pin di uscita e basso.", + [ T_CMDLN_AUX_HIGH ] = "A - rendi il pin di uscita e alto.", + [ T_CMDLN_DUMP ] = "dump - scarica i contenuti del flash su . Avviso: attualmente è un prototipo che funziona solo con 25LC020 in modalità SPI.", + [ T_CMDLN_LOAD ] = "load - carica i contenuti di su flash . Avviso: attualmente è un prototipo che funziona solo con 25LC020 in modalità SPI.", + [ T_CMDLN_DISPLAY ] = "d - cambia la modalità di visualizzazione, mostra il menu di selezione.", + [ T_CMDLN_LOGIC ] = "logic - analizzatore logico. 1kHz-62500kHz, 0:7, 0:1.", + [ T_CMDLN_HEX ] = "esadecimale - stampa i contenuti di in esadecimale", + [ T_HELP_TITLE ] = "Sintassi generale CommandBus", + [ T_HELP_GENERAL_COMMANDS ] = "Comandi Generali", + [ T_HELP_BUS_SYNTAX ] = "Sintassi Bus", + [ T_HELP_DISK_COMMANDS ] = "Comandi Disco", + [ T_HELP_BLANK ] = "", + [ T_HELP_SECTION_IO ] = "lavora con i pin, ingresso, misurazion uscita", + [ T_HELP_SECTION_CAPTURE ] = "misura segnali analogici e digitali", + [ T_HELP_SECTION_CONFIGURE ] = "configura il terminale, LED, display e modalità", + [ T_HELP_SECTION_SYSTEM ] = "riavvio, aggiornamenti firmware e diagnostica", + [ T_HELP_SECTION_FILES ] = "elenca i file e naviga nell'archivio", + [ T_HELP_SECTION_PROGRAMS ] = "comandi utili e mini-programmi", + [ T_HELP_SECTION_MODE ] = "entra in una modalità per utilizzare i protocolli", + [ T_HELP_SECTION_SYNTAX ] = "invia e ricevi dati nelle modalità utilizzando la sintassi del bus", + [ T_HELP_SECTION_HELP ] = "ottieni ulteriore aiuto", + [ T_HELP_GREATER_THAN ] = "Esegui la sintassi del bus", + [ T_HELP_SYNTAX_ADC ] = "Misura tensione su IO.x", + [ T_HELP_CMD_LS ] = "Elenco file", + [ T_HELP_CMD_CD ] = "Cambia cartella", + [ T_HELP_CMD_MKDIR ] = "Crea caretlla", + [ T_HELP_CMD_RM ] = "Rimuovi file/cartella", + [ T_HELP_CMD_PAUSE ] = "In pausa fino a quando non viene premuto un tasto, per la creazione di script", + [ T_HELP_CMD_FORMAT ] = "Formatta disco di archiviazione (FAT16)", + [ T_HELP_CMD_CAT ] = "Stampa i contenuti del file come testo", + [ T_HELP_CMD_HEX ] = "Stampa i contenuti del file in esadecimale", + [ T_HELP_CAPTURE_SCOPE ] = "Interfaccia oscilloscopio", + [ T_HELP_CAPTURE_LA ] = "Interfaccia analizzatore logico", + [ T_HELP_CMD_FLASH ] = "Cancella, scrivi, leggi e verifica chip flash SPI", + [ T_HELP_CMD_LABEL ] = "Get or set the disk label", + [ T_HELP_CMD_IMAGE ] = "Write a bitmap image on the LCD", + [ T_HELP_CMD_DUMP ] = "Repeat read command, save ouput to storage", + [ T_HELP_1_2 ] = "Converte x/inverte x", + [ T_HELP_1_3 ] = "Auto test", + [ T_HELP_1_4 ] = "Resetta il Bus Pirate", + [ T_HELP_1_5 ] = "Vai alla modalità bootloader", + [ T_HELP_1_6 ] = "Ritardo 1 us/MS (d:4 per ripetere)", + [ T_HELP_1_7 ] = "Imposta lo stato IO.x (basso/ALTO/LEGGI)", + [ T_HELP_COMMAND_AUX ] = "Imposta lo stato IO x (basso/ALTO/LEGGI)", + [ T_HELP_COMMAND_DISPLAY ] = "Cambia la modalità di visualizzazione del display", + [ T_HELP_1_9 ] = "Configura terminale, lingua, LED", + [ T_HELP_1_22 ] = "Mostra tensione su IOx (una volta/CONT)", + [ T_HELP_1_10 ] = "Mostra tensione tutti gli IO (una volta/CONT)", + [ T_HELP_1_11 ] = "Misura frequenza su IOx (una volta/CONT)", + [ T_HELP_1_23 ] = "Monitora frequenza (OFF/ON)", + [ T_HELP_1_12 ] = "Genera frequenza (OFF/ON)", + [ T_HELP_HELP_GENERAL ] = "Aiuto globale, della modalità e della visualizzazione. Prova '?', '? mode' e '? display'", + [ T_HELP_HELP_DISPLAY ] = "Aiuto con una modalità di visualizzazione, ad es. oscilloscopio", + [ T_HELP_HELP_COMMAND ] = "Aggiungi -h per l'aiuto del comando: ls -h", + [ T_HELP_1_14 ] = "Versione Bus Pirate e informazioni sullo stato", + [ T_HELP_1_15 ] = "Ordine dei bit (MSB/LSB)", + [ T_HELP_1_16 ] = "Cambia a una modalità di protocollo come I2C", + [ T_HELP_1_17 ] = "Scegli come vengono visualizzati i numeri", + [ T_HELP_1_18 ] = "Resistenze di pull-up (OFF/ON)", + [ T_HELP_1_19 ] = "-", + [ T_HELP_1_20 ] = "Mostra tensioni/stati", + [ T_HELP_1_21 ] = "Alimentazione (OFF/ON)", + [ T_HELP_2_1 ] = "Macro di modalità x/elenco completo", + [ T_HELP_2_3 ] = "Start/Start II (dipendente dalla modalità)", + [ T_HELP_2_4 ] = "Stop/Stop II (dipendente dalla modalità)", + [ T_HELP_2_7 ] = "Scrivi stringa", + [ T_HELP_2_8 ] = "Scrivi valore (decimale)", + [ T_HELP_2_9 ] = "Scrivi valore (esadecimale)", + [ T_HELP_2_10 ] = "Scrivi valore (binario)", + [ T_HELP_2_11 ] = "Leggi", + [ T_HELP_SYN_CLOCK_HIGH ] = "Clock alto", + [ T_HELP_SYN_CLOCK_LOW ] = "Clock basso", + [ T_HELP_SYN_CLOCK_TICK ] = "Clock tick", + [ T_HELP_SYN_DATA_HIGH ] = "Dati alti", + [ T_HELP_SYN_DATA_LOW ] = "Dati bassi", + [ T_HELP_SYN_DATA_READ ] = "Leggi lo stato del pin dati", + [ T_HELP_2_18 ] = "Lettura bit", + [ T_HELP_2_19 ] = "Ripeti ad esempio r:10", + [ T_HELP_2_20 ] = "Bit da leggere/scrivere ad esempio 0x55.2", + [ T_HELP_2_21 ] = "Macro utente x/elenco completo", + [ T_HELP_2_22 ] = "Assegna macro utente x", + [ T_HELP_HINT ] = "Concatena più comandi con ; || &&.", + [ T_HELP_FLASH ] = "leggi, scrivi e cancella chip flash utilizzando le informazioni SFDP se disponibili", + [ T_HELP_FLASH_ERASE ] = "Cancella il chip flash. flash erase [-v(erifica)]", + [ T_HELP_FLASH_WRITE ] = "Scrivi file sul chip flash. flash write -f [-e(cancella)] [-v(erifica)]", + [ T_HELP_FLASH_READ ] = "Leggi il chip flash su file. flash read -f ", + [ T_HELP_FLASH_VERIFY ] = "Verifica il chip flash rispetto al file. flash verify -f ", + [ T_HELP_FLASH_TEST ] = "Cancella e scrive l'intero chip con dati fittizzi, verifica. flash test", + [ T_HELP_FLASH_PROBE ] = "Sonda il chip flash per ID e informazioni SFDP. flash probe", + [ T_HELP_FLASH_INIT ] = "Resetta e inizializza il chip flash. Predefinito se non vengono fornite opzioni. flash", + [ T_HELP_FLASH_FILE_FLAG ] = "Flag file. File da scrivere, leggere o verificare. flash verify -f ", + [ T_HELP_FLASH_ERASE_FLAG ] = "Flag cancella. Aggiungi cancella prima della scrittura. flash write -f -e", + [ T_HELP_FLASH_VERIFY_FLAG ] = "Flag verifica. Aggiungi verifica dopo la scrittura o la cancellazione. flash write -f -v", + [ T_INFO_FIRMWARE ] = "Firmware", + [ T_INFO_BOOTLOADER ] = "Bootloader", + [ T_INFO_WITH ] = "con", + [ T_INFO_RAM ] = "RAM", + [ T_INFO_FLASH ] = "FLASH", + [ T_INFO_SN ] = "S/N", + [ T_INFO_WEBSITE ] = "https://BusPirate.com/", + [ T_INFO_TF_CARD ] = "Archiviazione", + [ T_INFO_FILE_SYSTEM ] = "File System", + [ T_NOT_DETECTED ] = "Non rilevato", + [ T_INFO_AVAILABLE_MODES ] = "Modalità disponibili", + [ T_INFO_CURRENT_MODE ] = "Modalità attiva", + [ T_INFO_POWER_SUPPLY ] = "Alimentazione", + [ T_INFO_CURRENT_LIMIT ] = "Limite di corrente", + [ T_INFO_PULLUP_RESISTORS ] = "Resistenze di pull-up", + [ T_INFO_FREQUENCY_GENERATORS ] = "Generatori di frequenza", + [ T_INFO_DISPLAY_FORMAT ] = "Formato display", + [ T_INFO_DATA_FORMAT ] = "Formato dati", + [ T_INFO_BITS ] = "bit", + [ T_INFO_BITORDER ] = "ordine bit", + [ T_CONFIG_FILE ] = "File di configurazione", + [ T_CONFIG_CONFIGURATION_OPTIONS ] = "Opzioni di configurazione", + [ T_CONFIG_LANGUAGE ] = "Language / Jezik / Lingua / 语言", + [ T_CONFIG_ANSI_COLOR_MODE ] = "Modalità colore ANSI", + [ T_CONFIG_ANSI_COLOR_FULLCOLOR ] = "ANSI Full-Color (16M colors)", + [ T_CONFIG_ANSI_COLOR_256 ] = "ANSI-256 color", + [ T_CONFIG_ANSI_TOOLBAR_MODE ] = "Modalità barra degli strumenti ANSI", + [ T_CONFIG_LANGUAGE_ENGLISH ] = "Language - English (US)", + [ T_CONFIG_LANGUAGE_CHINESE ] = "语言 - 中文(简体)", + [ T_CONFIG_LANGUAGE_POLISH ] = "Język - polski (Polska)", + [ T_CONFIG_LANGUAGE_BOSNIAN ] = "Jezik - bosanski (latinica, Bosna i Hercegovina)", + [ T_CONFIG_LANGUAGE_ITALIAN ] = "Lingua - italiano (Italia)", + [ T_CONFIG_DISABLE ] = "Disabilita", + [ T_CONFIG_ENABLE ] = "Abilita", + [ T_CONFIG_SCREENSAVER ] = "Screensaver LCD", + [ T_CONFIG_SCREENSAVER_5 ] = "5 minuti", + [ T_CONFIG_SCREENSAVER_10 ] = "10 minuti", + [ T_CONFIG_SCREENSAVER_15 ] = "15 minuti", + [ T_CONFIG_LEDS_EFFECT ] = "Effetto LED", + [ T_CONFIG_LEDS_EFFECT_SOLID ] = "Solido", + [ T_CONFIG_LEDS_EFFECT_ANGLEWIPE ] = "Pulizia angolare", + [ T_CONFIG_LEDS_EFFECT_CENTERWIPE ] = "Pulizia centrale", + [ T_CONFIG_LEDS_EFFECT_CLOCKWISEWIPE ] = "Pulizia oraria", + [ T_CONFIG_LEDS_EFFECT_TOPDOWNWIPE ] = "Pulizia dall'alto verso il basso", + [ T_CONFIG_LEDS_EFFECT_SCANNER ] = "Scanner", + [ T_CONFIG_LEDS_EFFECT_GENTLE_GLOW ] = "Gentle glow", + [ T_CONFIG_LEDS_EFFECT_CYCLE ] = "Modalità party", + [ T_CONFIG_LEDS_COLOR ] = "Colore LED", + [ T_CONFIG_LEDS_COLOR_RAINBOW ] = "Arcobaleno", + [ T_CONFIG_LEDS_COLOR_RED ] = "Rosso", + [ T_CONFIG_LEDS_COLOR_ORANGE ] = "Arancione", + [ T_CONFIG_LEDS_COLOR_YELLOW ] = "Giallo", + [ T_CONFIG_LEDS_COLOR_GREEN ] = "Verde", + [ T_CONFIG_LEDS_COLOR_BLUE ] = "Blu", + [ T_CONFIG_LEDS_COLOR_PURPLE ] = "Viola", + [ T_CONFIG_LEDS_COLOR_PINK ] = "Rosa", + [ T_CONFIG_LEDS_COLOR_WHITE ] = "White", + [ T_CONFIG_LEDS_BRIGHTNESS ] = "Luminosità LED", + [ T_CONFIG_LEDS_BRIGHTNESS_10 ] = "10%", + [ T_CONFIG_LEDS_BRIGHTNESS_20 ] = "20%", + [ T_CONFIG_LEDS_BRIGHTNESS_30 ] = "30%", + [ T_CONFIG_LEDS_BRIGHTNESS_40 ] = "40%", + [ T_CONFIG_LEDS_BRIGHTNESS_50 ] = "50%", + [ T_CONFIG_LEDS_BRIGHTNESS_100 ] = "100% ATTENZIONE: danneggerà la porta USB senza alimentazione esterna", + [ T_CONFIG_BINMODE_SELECT ] = "Select binary mode", + [ T_HELP_DUMMY_COMMANDS ] = "Comandi fittizzi validi in posizione 1", + [ T_HELP_DUMMY_INIT ] = "Comando di inizializzazione fittizio", + [ T_HELP_DUMMY_TEST ] = "Comando di test fittizio", + [ T_HELP_DUMMY_FLAGS ] = "Flag falsi", + [ T_HELP_DUMMY_B_FLAG ] = "-b richiede il pulsante Bus Pirate da premere. Non richiede parametri", + [ T_HELP_DUMMY_I_FLAG ] = "-i . Richiede parametro numerico intero", + [ T_HELP_DUMMY_FILE_FLAG ] = "-f . Crea/scrivi/leggi . Richiede parametro stringa file", + [ T_HELP_SLE4442 ] = "Interfaccia per scheda smart SLE4442", + [ T_HELP_SLE4442_INIT ] = "Inizializza la scheda con ISO7816-3 ATR. Azione predefinita", + [ T_HELP_SLE4442_DUMP ] = "Visualizza memoria principale, di sicurezza e protetta", + [ T_HELP_SLE4442_UNLOCK ] = "Sblocca la scheda con il Codice di Sicurezza Programmabile (PSC)", + [ T_HELP_SLE4442_WRITE ] = "Scrivi dati sulla scheda (richiede sblocco)", + [ T_HELP_SLE4442_ERASE ] = "Cancella dati nell'intervallo 0x32-0x255 (richiede sblocco)", + [ T_HELP_SLE4442_PSC ] = "Cambia il Codice di Sicurezza Programmabile (PSC)", + [ T_HELP_SLE4442_ADDRESS_FLAG ] = "Flag indirizzo di scrittura", + [ T_HELP_SLE4442_VALUE_FLAG ] = "Flag valore di scrittura", + [ T_HELP_SLE4442_CURRENT_PSC_FLAG ] = "Flag Codice di Sicurezza Programmabile (PSC) corrente", + [ T_HELP_SLE4442_NEW_PSC_FLAG ] = "Flag nuovo Codice di Sicurezza Programmabile (PSC)", + [ T_HELP_SLE4442_FILE_FLAG ] = "Dump file name flag", + [ T_HELP_GCMD_W ] = "alimentazione integrata con fusibile programmabile", + [ T_HELP_GCMD_W_DISABLE ] = "Disabilita l'alimentazione integrata", + [ T_HELP_GCMD_W_ENABLE ] = "Abilita l'alimentazione integrata, mostra il menu di configurazione", + [ T_HELP_GCMD_W_VOLTS ] = "Tensione, 0,8-5,0 volt", + [ T_HELP_GCMD_W_CURRENT_LIMIT ] = "Limite di corrente, 0-500mA", + [ T_HELP_GCMD_P ] = "resistenze di pull-up integrate", + [ T_HELP_HELP ] = "aiuto per i comandi e le modalità Bus Pirate", + [ T_HELP_SYS_COMMAND ] = "Comandi per accedere al sistema di aiuto", + [ T_HELP_SYS_DISPLAY ] = "Mostra l'aiuto sulla modalità di visualizzazione (ad es. oscilloscopio)", + [ T_HELP_SYS_MODE ] = "Mostra comandi e aiuto specifici della modalità", + [ T_HELP_SYS_HELP ] = "Come utilizzare il sistema di aiuto", + [ T_HELP_GCMD_SELFTEST ] = "esegui un'autotest completo del sistema", + [ T_HELP_GCMD_SELFTEST_CMD ] = "Esegui autotest", + [ T_HELP_GCMD_SELFTEST_H_FLAG ] = "Aiuto autotest", + [ T_HELP_AUXIO ] = "imposta lo stato del pin IO, leggi i pin di input", + [ T_HELP_AUXIO_LOW ] = "Output, basso/0. Riserva il pin per l'output", + [ T_HELP_AUXIO_HIGH ] = "Output, alto/1. Riserva il pin per l'output", + [ T_HELP_AUXIO_INPUT ] = "Input, leggi stato. Rilascia il pin riservato", + [ T_HELP_AUXIO_IO ] = "Numero pin IO, 0-7", + [ T_HELP_DISK_HEX ] = "Stampa i contenuti del file in formato esadecimale", + [ T_HELP_DISK_HEX_FILE ] = "Nome del file in formato 8.3 (esempio1.bin)", + [ T_HELP_DISK_HEX_ADDR ] = "Mostra l'offset dell'indirizzo", + [ T_HELP_DISK_HEX_ASCII ] = "Mostra anche il dump ASCII", + [ T_HELP_DISK_HEX_SIZE ] = "Imposta la dimensione della riga in byte", + [ T_HELP_DISK_HEX_OFF ] = "Set file read start offset in bytes", + [ T_HELP_DISK_HEX_PAGER_OFF ] = "Disable the pager for dumping", + [ T_HELP_DISK_CAT ] = "Stampa i contenuti del file come testo", + [ T_HELP_DISK_CAT_FILE ] = "Nome del file in formato 8.3 (esempio1.txt)", + [ T_HELP_DISK_MKDIR ] = "Crea una cartella su archiviazione interna", + [ T_HELP_DISK_MKDIR_DIR ] = "Nome della cartella, max 8 caratteri", + [ T_HELP_DISK_CD ] = "Cambia cartella su archiviazione locale", + [ T_HELP_DISK_CD_DIR ] = "Nome della cartella, max 8 caratteri", + [ T_HELP_DISK_RM ] = "Elimina file o cartella su archiviazione locale", + [ T_HELP_DISK_RM_FILE ] = "Nome del file da eliminare, formato 8.3", + [ T_HELP_DISK_RM_DIR ] = "Nome della cartella da eliminare, max 8 caratteri", + [ T_HELP_DISK_LS ] = "Elenca file e cartelle su archiviazione locale", + [ T_HELP_DISK_LS_DIR ] = "Elenco contenuti di questa cartella, opzionale", + [ T_HELP_DISK_FORMAT ] = "Cancella e formatta l'archiviazione interna nel formato FAT16", + [ T_HELP_DISK_FORMAT_CMD ] = "Tutti i dati verranno persi, rispondi 's' due volte per continuare", + [ T_HELP_DISK_LABEL ] = "get or set the disk label", + [ T_HELP_DISK_LABEL_GET ] = "returns the current label of the disk", + [ T_HELP_DISK_LABEL_SET ] = "sets the current label of the disk", + [ T_HELP_VADC ] = "misura la tensione sui pin IO", + [ T_HELP_VADC_SINGLE ] = "Misurazione singola", + [ T_HELP_VADC_CONTINUOUS ] = "Misurazione continua", + [ T_HELP_VADC_IO ] = "Numero pin IO, 0-7", + [ T_HELP_I2C_SCAN ] = "scansione degli indirizzi I2C, con opzionale numero di parte", + [ T_HELP_I2C_SCAN_VERBOSE ] = "Modalità dettagliata, stampa potenziali numeri di parte", + [ T_HELP_FLAG ] = "Ottieni aiuto aggiuntivo", + [ T_HELP_I2C_SI7021 ] = "Leggi temperatura e umidità dal sensore SI7021/HTU21/SHT21", + [ T_HELP_I2C_MS5611 ] = "Leggi temperatura e pressione dal sensore MS5611", + [ T_HELP_I2C_TSL2561 ] = "Leggi l'intensità luminosa (LUX) dal sensore TSL2561", + [ T_HELP_1WIRE_SCAN ] = "scansiona per dispositivi 1-Wire", + [ T_HELP_1WIRE_DS18B20 ] = "Interroga il sensore di temperatura DS18B20", + [ T_HELP_UART_BRIDGE ] = "apre UART con IO dati grezzi, modalità bridge USB-seriale", + [ T_HELP_UART_BRIDGE_EXIT ] = "UART bridge. Press Bus Pirate button to exit.", + [ T_HELP_UART_BRIDGE_TOOLBAR ] = "ENABLE toolbar while bridge is active (default: disabled)", + [ T_HELP_UART_BRIDGE_SUPPRESS_LOCAL_ECHO ] = "Suppress local echo, don't echo back sent data", + [ T_HELP_UART_NMEA ] = "analizza i dati GPS NMEA", + [ T_HELP_UART_GLITCH_EXIT ] = "UART Glitcher. Press Bus Pirate button to exit.", + [ T_HELP_SECTION_SCRIPT ] = "run scripts, macros and assign button functions", + [ T_HELP_CMD_SCRIPT ] = "Run script files, automation", + [ T_HELP_CMD_BUTTON ] = "Assign button functions", + [ T_HELP_CMD_MACRO ] = "Run macros, load a macro file", + [ T_HELP_CMD_TUTORIAL ] = "Run tutorial files", + [ T_HELP_CMD_PAUSE_KEY ] = "Press any key to continue (default)", + [ T_HELP_CMD_PAUSE_BUTTON ] = "Press the Bus Pirate button to continue", + [ T_HELP_CMD_PAUSE_EXIT ] = "'x' key to exit (e.g. script mode)", + [ T_HELP_BUTTON ] = "Assign script file to button press", + [ T_HELP_BUTTON_SHORT ] = "Assign script file to short button press", + [ T_HELP_BUTTON_LONG ] = "Assign script file to long button press", + [ T_HELP_BUTTON_FILE ] = "Script file to assign to button press", + [ T_HELP_BUTTON_HIDE ] = "Hide comments", + [ T_HELP_BUTTON_EXIT ] = "Exit script on error", + [ T_HELP_LOGIC ] = "logic analyzer control", + [ T_HELP_LOGIC_START ] = "start logic analyzer", + [ T_HELP_LOGIC_STOP ] = "stop logic analyzer", + [ T_HELP_LOGIC_HIDE ] = "hide logic graph", + [ T_HELP_LOGIC_SHOW ] = "show logic graph", + [ T_HELP_LOGIC_NAV ] = "navigate logic graph with arrow keys, x to exit", + [ T_HELP_LOGIC_INFO ] = "show configuration info", + [ T_HELP_LOGIC_FREQUENCY ] = "set sample frequency in Hz", + [ T_HELP_LOGIC_OVERSAMPLE ] = "set oversample rate, multiplies the sample frequency", + [ T_HELP_LOGIC_DEBUG ] = "set debug level: 0-2", + [ T_HELP_LOGIC_SAMPLES ] = "set number of samples", + [ T_HELP_LOGIC_TRIGGER_PIN ] = "set trigger pin, 0-7", + [ T_HELP_LOGIC_TRIGGER_LEVEL ] = "set trigger level, 0-1", + [ T_HELP_LOGIC_LOW_CHAR ] = "set character used for low in graph (ex:_)", + [ T_HELP_LOGIC_HIGH_CHAR ] = "set character used for high in graph (ex:*)", + [ T_HELP_CMD_CLS ] = "Clear and reset the terminal", + [ T_HELP_SECTION_TOOLS ] = "tools and utilities", + [ T_HELP_CMD_LOGIC ] = "Logic analyzer", + [ T_HELP_CMD_SMPS ] = "Switch mode power supply (plank required)", + [ T_INFRARED_CMD_TEST ] = "Test IR RX/TX Toy plank", + [ T_UART_CMD_TEST ] = "Test Dual RS232 plank", + [ T_SPI_CMD_SNIFF ] = "SPI sniffer", + [ T_HELP_UART_GLITCH ] = "UART glitcher", + [ T_HELP_UART_GLITCH_CONFIG ] = "Configure UART glitch parameters", + +}; diff --git a/src/translation/pl-pl.h b/src/translation/pl-pl.h index aaed338f..a71352ce 100644 --- a/src/translation/pl-pl.h +++ b/src/translation/pl-pl.h @@ -1,478 +1,505 @@ -#pragma once - -// NOTE: GENERATED FILE -- DO NOT EDIT DIRECTLY -// This file is auto-generated by `json2h.py` -// Entirely new strings should be added to `en-us.h` -// Translations should be added to the language code's `.json` file - -// en-us is our base language translation file -#include "translation/base.h" -static char const * const pl_pl[T_LAST_ITEM_ALWAYS_AT_THE_END]={ - [ T_ON ] = "Wł.", - [ T_OFF ] = "Wył.", - [ T_GND ] = "GND", - [ T_INPUT ] = "INPUT", - [ T_OUTPUT ] = "OUTPUT", - [ T_EXIT ] = "Wyjście", - [ T_LOADED ] = "Załadowano", - [ T_SAVED ] = "Zapisano", - [ T_HZ ] = "Hz", - [ T_KHZ ] = "kHz", - [ T_MHZ ] = "MHz", - [ T_SPEED ] = "Speed", - [ T_WARN_VOUT_VREF_LOW ] = "VOUT/VREF pin is not powered. Use W to enable power, or attach an external supply", - [ T_USE_PREVIOUS_SETTINGS ] = "Użyć poprzednich ustawień?", - [ T_MODE_ERROR_NO_EFFECT ] = "BŁĄD: polecenie nie ma tutaj efektu", - [ T_MODE_ERROR_NO_EFFECT_HIZ ] = "Polecenienie ma efektu w trybie HiZ, naciśnij 'm' aby wybrać tryb", - [ T_MODE_NO_HELP_AVAILABLE ] = "Brak dostępnej pomocy", - [ T_PRESS_ANY_KEY_TO_EXIT ] = "Naciśnij jakiś klawisz aby wyjść", - [ T_PRESS_ANY_KEY ] = "Press any key", - [ T_PRESS_BUTTON ] = "Press button", - [ T_PRESS_X_TO_EXIT ] = "Press 'x' to exit", - [ T_MODE_MODE_SELECTION ] = "Wybór trybu", - [ T_MODE_MODE ] = "Tryb", - [ T_MODE_NUMBER_DISPLAY_FORMAT ] = "Numeryczny format wyśwetlania", - [ T_MODE_INVALID_OPTION ] = "Nieprawidłowa opcja", - [ T_MODE_CHOOSE_AVAILABLE_PIN ] = "Wybierz dostępny pin:", - [ T_MODE_ALL_PINS_IN_USE ] = "Wszystkie piny w użyciu", - [ T_MODE_PULLUP_RESISTORS ] = "Rezystory Pull-up", - [ T_MODE_POWER_SUPPLY ] = "Zasilanie", - [ T_MODE_DISABLED ] = "Wyłączone", - [ T_MODE_DISPLAY ] = "Display", - [ T_MODE_DISPLAY_SELECTION ] = "Display selection", - [ T_MODE_ENABLED ] = "Włączone", - [ T_MODE_BITORDER ] = "Kolejność bitów", - [ T_MODE_BITORDER_MSB ] = "MSB", - [ T_MODE_BITORDER_LSB ] = "LSB", - [ T_MODE_DELAY ] = "Opóźnienie", - [ T_MODE_US ] = "us", - [ T_MODE_MS ] = "ms", - [ T_MODE_ADC_VOLTAGE ] = "Volts on", - [ T_MODE_ERROR_PARSING_MACRO ] = "Błąd parsowania makra", - [ T_MODE_ERROR_NO_MACROS_AVAILABLE ] = "Brak dostępnych makr", - [ T_MODE_ERROR_MACRO_NOT_DEFINED ] = "Makro nie zdefiniowane", - [ T_MODE_TICK_CLOCK ] = "Tick clock", - [ T_MODE_SET_CLK ] = "Set clock", - [ T_MODE_SET_DAT ] = "Set data", - [ T_MODE_READ_DAT ] = "Read data", - [ T_MODE_NO_VOUT_VREF_ERROR ] = "No voltage detected on VOUT/VREF pin", - [ T_MODE_NO_VOUT_VREF_HINT ] = "Hint: Use W to enable power, or attach an external supply", - [ T_MODE_NO_PULLUP_ERROR ] = "Pull-up not detected on IO pin", - [ T_MODE_NO_PULLUP_HINT ] = "Hint: Use P to enable pull-up resistors, or use external pull-up", - [ T_MODE_PWM_GENERATE_FREQUENCY ] = "Wygeneruj częstotliwość", - [ T_MODE_FREQ_MEASURE_FREQUENCY ] = "Pomiar częstotliwości", - [ T_MODE_FREQ_FREQUENCY ] = "Częstotliwość", - [ T_MODE_FREQ_DUTY_CYCLE ] = "Cykl pracy częstotliwości", - [ T_PSU_DAC_ERROR ] = "Błąd DAC PSU, uruchom self-test", - [ T_PSU_CURRENT_LIMIT_ERROR ] = "Natężenie ponad limit, wyłączono zasilanie", - [ T_PSU_SHORT_ERROR ] = "Potencjalne zwarcie, wyłączono zasilanie", - [ T_PSU_ALREADY_DISABLED_ERROR ] = "Zasilanie już wyłączone", - [ T_SYNTAX_EXCEEDS_MAX_SLOTS ] = "Wynik przekracza dostępną przestrzeń (%d slotów)", - [ T_HWSPI_SPEED_MENU ] = "Prędkość SPI", - [ T_HWSPI_SPEED_MENU_1 ] = "1 do 62500kHz", - [ T_HWSPI_SPEED_PROMPT ] = "kHz (%s%dkHz*%s)", - [ T_HWSPI_BITS_MENU ] = "Bity danych", - [ T_HWSPI_BITS_MENU_1 ] = "4 do 8 bitów", - [ T_HWSPI_BITS_PROMPT ] = "Bity/Bitów (%s%d*%s)", - [ T_HWSPI_CLOCK_POLARITY_MENU ] = "Polaryzacja zegara", - [ T_HWSPI_CLOCK_POLARITY_MENU_1 ] = "Idle LOW", - [ T_HWSPI_CLOCK_POLARITY_MENU_2 ] = "Idle HIGH", - [ T_HWSPI_CLOCK_POLARITY_PROMPT ] = "Polaryzacja", - [ T_HWSPI_CLOCK_PHASE_MENU ] = "Faza zegara", - [ T_HWSPI_CLOCK_PHASE_MENU_1 ] = "LEADING edge", - [ T_HWSPI_CLOCK_PHASE_MENU_2 ] = "TRAILING edge", - [ T_HWSPI_CLOCK_PHASE_PROMPT ] = "Faza", - [ T_HWSPI_CS_IDLE_MENU ] = "Chip select", - [ T_HWSPI_CS_IDLE_MENU_1 ] = "Active HIGH (CS)", - [ T_HWSPI_CS_IDLE_MENU_2 ] = "Active LOW (/CS)", - [ T_HWSPI_CS_IDLE_PROMPT ] = "CS", - [ T_HWSPI_ACTUAL_SPEED_KHZ ] = "Faktyczna prędkość", - [ T_HWSPI_CS_SELECT ] = "CS Włączone", - [ T_HWSPI_CS_DESELECT ] = "CS Wyłączone", - [ T_UART_SPEED_MENU ] = "Prędkość UART", - [ T_UART_SPEED_MENU_1 ] = "1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 itd.", - [ T_UART_SPEED_PROMPT ] = "Szerokość transmisji (%s%d*%s)", - [ T_UART_PARITY_MENU ] = "Parzystość", - [ T_UART_PARITY_MENU_1 ] = "Brak", - [ T_UART_PARITY_MENU_2 ] = "Parzyste", - [ T_UART_PARITY_MENU_3 ] = "Nieparzyste", - [ T_UART_PARITY_PROMPT ] = "Parzystość", - [ T_UART_DATA_BITS_MENU ] = "Bity danych", - [ T_UART_DATA_BITS_MENU_1 ] = "5 do 8 bitów", - [ T_UART_DATA_BITS_PROMPT ] = "(%s%d*%s) Bity/Bitów", - [ T_UART_STOP_BITS_MENU ] = "Bity zatrzymania", - [ T_UART_STOP_BITS_MENU_1 ] = "1", - [ T_UART_STOP_BITS_MENU_2 ] = "2", - [ T_UART_STOP_BITS_PROMPT ] = "Bity", - [ T_UART_BLOCKING_MENU ] = "Używaj funkcji blokujących?", - [ T_UART_BLOCKING_MENU_1 ] = "Nie", - [ T_UART_BLOCKING_MENU_2 ] = "Tak", - [ T_UART_BLOCKING_PROMPT ] = "Blokowanie", - [ T_UART_FLOW_CONTROL_MENU ] = "Hardware flow control", - [ T_UART_FLOW_CONTROL_MENU_1 ] = "None", - [ T_UART_FLOW_CONTROL_MENU_2 ] = "RTS/CTS", - [ T_UART_FLOW_CONTROL_PROMPT ] = "Flow control", - [ T_UART_INVERT_MENU ] = "Signal inversion", - [ T_UART_INVERT_MENU_1 ] = "Non-inverted (Standard)", - [ T_UART_INVERT_MENU_2 ] = "Inverted", - [ T_UART_INVERT_PROMPT ] = "Invert signals", - [ T_UART_ACTUAL_SPEED_BAUD ] = "Faktyczna szerokość transmisji", - [ T_UART_BAUD ] = "szerokość transmisji", - [ T_UART_OPEN ] = "UART OTWARTY", - [ T_UART_OPEN_WITH_READ ] = "UART OTWARTY (ASYNC READ)", - [ T_UART_CLOSE ] = "UART ZAMKNIĘTY", - [ T_UART_NO_DATA_READ ] = "Brak danych do odczytu", - [ T_UART_NO_DATA_TIMEOUT ] = "Odczyt danych przekroczył limit czasu", - [ T_HWI2C_SPEED_MENU ] = "Prędkość I2C", - [ T_HWI2C_SPEED_MENU_1 ] = "1kHz do 1000kHz", - [ T_HWI2C_SPEED_PROMPT ] = "kHz (%s%dkHz*%s)", - [ T_HWI2C_DATA_BITS_MENU ] = "Bity danych", - [ T_HWI2C_DATA_BITS_MENU_1 ] = "8", - [ T_HWI2C_DATA_BITS_MENU_2 ] = "10", - [ T_HWI2C_DATA_BITS_PROMPT ] = "Bitów", - [ T_HWI2C_CLOCK_STRETCH_MENU ] = "Clock stretching", - [ T_HWI2C_CLOCK_STRETCH_PROMPT ] = "(OFF)", - [ T_HWI2C_START ] = "I2C START", - [ T_HWI2C_REPEATED_START ] = "I2C REPEATED START", - [ T_HWI2C_STOP ] = "I2C STOP", - [ T_HWI2C_ACK ] = "ACK", - [ T_HWI2C_NACK ] = "NACK", - [ T_HWI2C_NO_PULLUP_DETECTED ] = "Nie wykryto rezystorów pull-up. Użyj P aby je włączyć", - [ T_HWI2C_NO_VOUT_DETECTED ] = "no power detected", - [ T_HWI2C_TIMEOUT ] = "Przekroczenie limitu czasu I2C", - [ T_HWI2C_I2C_ERROR ] = "Błąd magistrali I2C", - [ T_HW2WIRE_SPEED_MENU ] = "2WIRE speed", - [ T_HW2WIRE_RST_LOW ] = "RST LOW", - [ T_HW2WIRE_RST_HIGH ] = "RST HIGH", - [ T_HW3WIRE_SPEED_MENU_1 ] = "1 to 3900kHz", - [ T_HWLED_DEVICE_MENU ] = "Rodzaj LED", - [ T_HWLED_DEVICE_MENU_1 ] = "WS2812/SK6812/'NeoPixel' (single wire interface)", - [ T_HWLED_DEVICE_MENU_2 ] = "APA102/SK9822 (clock and data interface)", - [ T_HWLED_DEVICE_MENU_3 ] = "LEDy na płytce (18 SK6812s)", - [ T_HWLED_DEVICE_PROMPT ] = "Typ", - [ T_HWLED_NUM_LEDS_MENU ] = "Ilość LEDów w pasku", - [ T_HWLED_NUM_LEDS_MENU_1 ] = "1 do 10000", - [ T_HWLED_NUM_LEDS_PROMPT ] = "LEDy (%s%d*%s)", - [ T_HWLED_RESET ] = "RESET", - [ T_HWLED_FRAME_START ] = "RAMKA STARTu (0x00000000)", - [ T_HWLED_FRAME_STOP ] = "RAMKA STOPu (0xFFFFFFFF)", - [ T_HW1WIRE_RESET ] = "1-Wire RESET", - [ T_HW1WIRE_PRESENCE_DETECT ] = "Wykryto urządzenie", - [ T_HW1WIRE_NO_DEVICE ] = "Nie wykryto urządzenia", - [ T_IR_RX_SENSOR_MENU ] = "RX sensor", - [ T_IR_RX_SENSOR_MENU_LEARNER ] = "20-60kHz learner", - [ T_IR_RX_SENSOR_MENU_BARRIER ] = "38kHz barrier", - [ T_IR_RX_SENSOR_MENU_38K_DEMOD ] = "36-40kHz demodulator", - [ T_IR_RX_SENSOR_MENU_56K_DEMOD ] = "56kHz demodulator", - [ T_IR_TX_SPEED_MENU ] = "TX modulation", - [ T_IR_TX_SPEED_MENU_1 ] = "20kHz to 60kHz", - [ T_IR_TX_SPEED_PROMPT ] = "kHz (%s%dkHz*%s)", - [ T_IR_PROTOCOL_MENU ] = "Protocol", - [ T_IR_PROTOCOL_MENU_RC5 ] = "RC5", - [ T_IR_PROTOCOL_MENU_NEC ] = "NEC", - [ T_CMDLN_INVALID_COMMAND ] = "Niepoprawne polecenie: %s. Użyj ? aby użyskać pomoc.", - [ T_CMDLN_NO_HELP ] = "Pomoc dla tego polecenia jest aktualnie niedostępna.", - [ T_CMDLN_LS ] = "ls {katalog} - listuje pliki w aktualnej lokacji albo {katalogu}.", - [ T_CMDLN_CD ] = "cd {katalog} - przechodzi do {katalogu}.", - [ T_CMDLN_MKDIR ] = "mkdir {katalog} - tworzy {katalog}.", - [ T_CMDLN_RM ] = "rm {plik/katalog} - usuwa plik lub (zawartość) katalog/katalogu.", - [ T_CMDLN_CAT ] = "cat {plik} - wyświetla zawartość {pliku}.", - [ T_CMDLN_MODE ] = "m - zmienia tryb protokołu, pokazuje menu wyboru.", - [ T_CMDLN_PSU_EN ] = "W - włącza zasilanie na płytce, pokazuje menu konfiguracji.", - [ T_CMDLN_RESET ] = "# - resetuje i restartuje Bus Pirate'a.", - [ T_CMDLN_BOOTLOAD ] = "$ - resetuje i wchodzi w tryb bootloadera do aktualizacji.", - [ T_CMDLN_INT_FORMAT ] = "= {wartość} - konwertuje {wartość} do BIN/DEC/HEX/ASCII.", - [ T_CMDLN_INT_INVERSE ] = "| {wartość} - inwertuje bity {wartośći}.", - [ T_CMDLN_HELP ] = "? - pokazuje pomoc dla polecenia i składni.", - [ T_CMDLN_CONFIG_MENU ] = "c - otwieramenu konfiguacji Bus Pirate'a.", - [ T_CMDLN_FREQ_ONE ] = "f {IOx} - jednorazowo mierzy częstotliwość na pinie {IOx}.", - [ T_CMDLN_FREQ_CONT ] = "F {IOx} - mierzy częstotliwość na pinie {IOx} w sposób ciągły.", - [ T_CMDLN_PWM_CONFIG ] = "G - konfiguruje generator częstotliwości (PWM) na dostępnym pinie IOx.", - [ T_CMDLN_PWM_DIS ] = "g {IOx} - wyłącza generator częstotliwości (PWM) na pinie {IOx}.", - [ T_CMDLN_HELP_MODE ] = "h - pokazuje ekran pomocy specyficzny dla trybu.", - [ T_CMDLN_HELP_DISPLAY ] = "hd - show display mode specific help screen.", - [ T_CMDLN_INFO ] = "i - pokazuje informację o Bus Pirate'cie i ekran statusu.", - [ T_CMDLN_BITORDER_MSB ] = "l - ustawia kolejność wyjścia na Najbardziej Znaczący Bit (MSB).", - [ T_CMDLN_BITORDER_LSB ] = "L - ustawia kolejność wyjścia na Najmniej Znaczący Bit (LSB).", - [ T_CMDLN_DISPLAY_FORMAT ] = "o - konfiguruje format wyświetlania numerów.", - [ T_CMDLN_PULLUPS_EN ] = "P - włącza rezystory pull-up na płytce.", - [ T_CMDLN_PULLUPS_DIS ] = "p - wyłącza rezystory pull-up na płytce.", - [ T_CMDLN_PSU_DIS ] = "w - wyłącza zasilanie na płytce.", - [ T_CMDLN_ADC_CONT ] = "V {IOx} - mierzy napięcie na pinie {IOx} w sposób ciągły. Pomiń numer pinu aby mierzyć na wszystkich pinach.", - [ T_CMDLN_ADC_ONE ] = "v {IOx} - jednorazowo mierzy napięciena pinie {IOx}. Pomiń numer pinu aby zmierzyć jednorazowo na wszystkich pinach.", - [ T_CMDLN_SELFTEST ] = "~ - przeprowadza self-test fabryczny. Odłącz wszystkie urządzenia i zmień na tryb HiZ przed rozpoczęciem testu.", - [ T_CMDLN_AUX_IN ] = "@ {IOx} - ustawia pin {IOx} jako wejściowy, czyta stan pinu.", - [ T_CMDLN_AUX_LOW ] = "a {IOx} - ustawia pin {IOx} jako wyjściowy i stan niski.", - [ T_CMDLN_AUX_HIGH ] = "A {IOx} - ustawia pin {IOx} jako wyjściowy i stan wysoki.", - [ T_CMDLN_DUMP ] = "dump {plik} {urządzenie} - zrzuca zawarość pamięci flash {urządzenia} do {pliku}. Uwaga: aktualnie eksperymentalna funkcja, która działa tylko z 25LC020 w trybie SPI.", - [ T_CMDLN_LOAD ] = "load {plik} {urządzenie} - wczytuje zawartość {pliku} do pamięci flash {urządzenia}. Uwaga: aktualnie eksperymentalna funkcja, która działa tylko z 25LC020 w trybie SPI.", - [ T_CMDLN_DISPLAY ] = "d - change display mode, show selection menu.", - [ T_CMDLN_LOGIC ] = "logic - logic analyzer. 1kHz-62500kHz, 0:7, 0:1.", - [ T_CMDLN_HEX ] = "hex - print contents of in HEX", - [ T_HELP_TITLE ] = "General Commands\t\t\tBus Syntax", - [ T_HELP_GENERAL_COMMANDS ] = "General Commands", - [ T_HELP_BUS_SYNTAX ] = "Bus Syntax", - [ T_HELP_DISK_COMMANDS ] = "Disc Commands", - [ T_HELP_BLANK ] = "\t\t\t", - [ T_HELP_SECTION_IO ] = "work with pins, input, output measurement", - [ T_HELP_SECTION_CAPTURE ] = "measure analog and digital signals", - [ T_HELP_SECTION_CONFIGURE ] = "configure the terminal, LEDs, display and mode", - [ T_HELP_SECTION_SYSTEM ] = "restart, firmware updates and diagnostic", - [ T_HELP_SECTION_FILES ] = "list files and navigate the storage", - [ T_HELP_SECTION_PROGRAMS ] = "useful commands and mini-programs", - [ T_HELP_SECTION_MODE ] = "enter a mode to use protocols", - [ T_HELP_SECTION_SYNTAX ] = "send and receive data in modes using bus syntax", - [ T_HELP_SECTION_HELP ] = "get more help", - [ T_HELP_GREATER_THAN ] = "Uruchom Składnię Magistrali (patrz Bus Syntax)", - [ T_HELP_SYNTAX_ADC ] = "Mierzy volty na IO.x\t", - [ T_HELP_CMD_LS ] = "Listuj pliki", - [ T_HELP_CMD_CD ] = "Zmień katalog", - [ T_HELP_CMD_MKDIR ] = "Twórz katalog", - [ T_HELP_CMD_RM ] = "Usuń plik/katalog", - [ T_HELP_CMD_PAUSE ] = "Pause for user input, optional exit", - [ T_HELP_CMD_FORMAT ] = "Format storage disk (FAT16)", - [ T_HELP_CMD_CAT ] = "Pokaż zawartość pliku", - [ T_HELP_CMD_HEX ] = "Print file contents in HEX", - [ T_HELP_CAPTURE_SCOPE ] = "Oscilloscope interface", - [ T_HELP_CAPTURE_LA ] = "Logic analyzer interface", - [ T_HELP_CMD_FLASH ] = "Erase, write, read and verify SPI flash chips", - [ T_HELP_CMD_LABEL ] = "Get or set the disk label", - [ T_HELP_CMD_IMAGE ] = "Write a bitmap image on the LCD", - [ T_HELP_CMD_DUMP ] = "Repeat read command, save ouput to storage", - [ T_HELP_1_2 ] = "Konwertuje x/odwraca x\t", - [ T_HELP_1_3 ] = "Wewnętrzny test (self-test)\t\t", - [ T_HELP_1_4 ] = "Resetuj Bus Pirate'a\t", - [ T_HELP_1_5 ] = "Przejdź do bootloadera\t", - [ T_HELP_1_6 ] = "Opóźnij 1 us/MS (d:4 aby powtórzyć)", - [ T_HELP_1_7 ] = "Ustaw stan pinu IO.x (low/HI/READ)", - [ T_HELP_COMMAND_AUX ] = "Ustaw stan pinu IO x (low/HI/READ)", - [ T_HELP_COMMAND_DISPLAY ] = "Change screen display mode", - [ T_HELP_1_9 ] = "Menu konfiguracyjne\t", - [ T_HELP_1_22 ] = "Pokaż wolty na pinie IOx (jednorazowo/CIĄGLE)", - [ T_HELP_1_10 ] = "Pokaż wolty na wszystkich pinach IOs (jednorazowo/CIĄGLE)", - [ T_HELP_1_11 ] = "Zmierz częstotliwość na pinie IOx (jednorazowo/CIĄGLE)", - [ T_HELP_1_23 ] = "Monitoruj częstotliwość (wył./WŁ.)\t", - [ T_HELP_1_12 ] = "Generuj częstotliwość (wył./WŁ.)", - [ T_HELP_HELP_GENERAL ] = "Global, mode and display help. Try '?', '? mode' and '? display'", - [ T_HELP_HELP_DISPLAY ] = "Help with a display mode such as the scope", - [ T_HELP_HELP_COMMAND ] = "Add -h for command help: ls -h", - [ T_HELP_1_14 ] = "Wersja/Status\t", - [ T_HELP_1_15 ] = "Kolejność bitów (msb/LSB)\t", - [ T_HELP_1_16 ] = "Zmień tryb\t\t", - [ T_HELP_1_17 ] = "Ustaw format wyświetlania numerów", - [ T_HELP_1_18 ] = "Rezystory Pull-up (wył./WŁ.)", - [ T_HELP_1_19 ] = "-\t\t\t", - [ T_HELP_1_20 ] = "Pokaż wolty/stany\t", - [ T_HELP_1_21 ] = "Zasilanie (wył./WŁ.)\t", - [ T_HELP_2_1 ] = "Mode macro x/list all\t", - [ T_HELP_2_3 ] = "Uruchom", - [ T_HELP_2_4 ] = "Zatrzymaj", - [ T_HELP_2_7 ] = "Wyślij stringa", - [ T_HELP_2_8 ] = "", - [ T_HELP_2_9 ] = "", - [ T_HELP_2_10 ] = "Wyślij wartość", - [ T_HELP_2_11 ] = "Przeczytaj", - [ T_HELP_SYN_CLOCK_HIGH ] = "Clock high", - [ T_HELP_SYN_CLOCK_LOW ] = "Clock low", - [ T_HELP_SYN_CLOCK_TICK ] = "Clock tick", - [ T_HELP_SYN_DATA_HIGH ] = "Data high", - [ T_HELP_SYN_DATA_LOW ] = "Data low", - [ T_HELP_SYN_DATA_READ ] = "Read data pin state", - [ T_HELP_2_18 ] = "Bit przeczytany", - [ T_HELP_2_19 ] = "Powtórz np. r:10", - [ T_HELP_2_20 ] = "Ilość bitów do zapisu/odczytu np. 0x55.2", - [ T_HELP_2_21 ] = "Makra użytkownika x/pokaż wszystkie", - [ T_HELP_2_22 ] = "Makra użytkownika przypisz x", - [ T_HELP_HINT ] = "Multiplikuj polecenia przy użyciu ; || &&.\r\n\r\nPatrz -h dla pomocy polecenia: ls -h", - [ T_HELP_FLASH ] = "read, write and erase flash chips using SFDP info if available", - [ T_HELP_FLASH_ERASE ] = "Erase flash chip. flash erase [-v(erify)]", - [ T_HELP_FLASH_WRITE ] = "Write file to flash chip. flash write -f [-e(rase)] [-v(erify)]", - [ T_HELP_FLASH_READ ] = "Read flash chip to file. flash read -f ", - [ T_HELP_FLASH_VERIFY ] = "Verify flash chip against file. flash verify -f ", - [ T_HELP_FLASH_TEST ] = "Erase and write full chip with dummy data, verify. flash test", - [ T_HELP_FLASH_PROBE ] = "Probe flash chip for ID and SFDP info. flash probe", - [ T_HELP_FLASH_INIT ] = "Reset and initialize flash chip. Default if no options given. flash", - [ T_HELP_FLASH_FILE_FLAG ] = "File flag. File to write, read or verify. flash verify -f ", - [ T_HELP_FLASH_ERASE_FLAG ] = "Erase flag. Add erase before write. flash write -f -e", - [ T_HELP_FLASH_VERIFY_FLAG ] = "Verify flag. Add verify after write or erase. flash write -f -v", - [ T_INFO_FIRMWARE ] = "Firmware", - [ T_INFO_BOOTLOADER ] = "Bootloader", - [ T_INFO_WITH ] = "z", - [ T_INFO_RAM ] = "RAM", - [ T_INFO_FLASH ] = "FLASH", - [ T_INFO_SN ] = "S/N", - [ T_INFO_WEBSITE ] = "https://BusPirate.com/", - [ T_INFO_TF_CARD ] = "Karta SD/TF", - [ T_INFO_FILE_SYSTEM ] = "System Plików", - [ T_NOT_DETECTED ] = "Nie Wykryto", - [ T_INFO_AVAILABLE_MODES ] = "Dostępne tryby", - [ T_INFO_CURRENT_MODE ] = "Aktywny tryb", - [ T_INFO_POWER_SUPPLY ] = "Zasilanie", - [ T_INFO_CURRENT_LIMIT ] = "Limit natężenia", - [ T_INFO_PULLUP_RESISTORS ] = "Rezystory pull-up", - [ T_INFO_FREQUENCY_GENERATORS ] = "Generatory częstotliwości", - [ T_INFO_DISPLAY_FORMAT ] = "Format wyświetlania", - [ T_INFO_DATA_FORMAT ] = "Format danych", - [ T_INFO_BITS ] = "bity/bitów", - [ T_INFO_BITORDER ] = "kolejność bitów", - [ T_CONFIG_FILE ] = "Plik konfiguracyjny", - [ T_CONFIG_CONFIGURATION_OPTIONS ] = "Opcje konfiguracyjne", - [ T_CONFIG_LANGUAGE ] = "Language / Jezik / Lingua / 语言", - [ T_CONFIG_ANSI_COLOR_MODE ] = "Tryb kolorowy ANSI", - [ T_CONFIG_ANSI_COLOR_FULLCOLOR ] = "ANSI Full-Color (16M colors)", - [ T_CONFIG_ANSI_COLOR_256 ] = "ANSI-256 color", - [ T_CONFIG_ANSI_TOOLBAR_MODE ] = "Tryb ANSI toolbar", - [ T_CONFIG_LANGUAGE_ENGLISH ] = "Language - English (US)", - [ T_CONFIG_LANGUAGE_CHINESE ] = "语言 - 中文(简体)", - [ T_CONFIG_LANGUAGE_POLISH ] = "Język - polski (Polska)", - [ T_CONFIG_LANGUAGE_BOSNIAN ] = "Jezik - bosanski (latinica, Bosna i Hercegovina)", - [ T_CONFIG_LANGUAGE_ITALIAN ] = "Lingua - italiano (Italia)", - [ T_CONFIG_DISABLE ] = "Wyłącz", - [ T_CONFIG_ENABLE ] = "Włącz", - [ T_CONFIG_SCREENSAVER ] = "Wygaszacz ekranu LCD", - [ T_CONFIG_SCREENSAVER_5 ] = "5 minut", - [ T_CONFIG_SCREENSAVER_10 ] = "10 minut", - [ T_CONFIG_SCREENSAVER_15 ] = "15 minut", - [ T_CONFIG_LEDS_EFFECT ] = "Efekt LED", - [ T_CONFIG_LEDS_EFFECT_SOLID ] = "Stały", - [ T_CONFIG_LEDS_EFFECT_ANGLEWIPE ] = "Angle wipe", - [ T_CONFIG_LEDS_EFFECT_CENTERWIPE ] = "Center wipe", - [ T_CONFIG_LEDS_EFFECT_CLOCKWISEWIPE ] = "Clockwise wipe", - [ T_CONFIG_LEDS_EFFECT_TOPDOWNWIPE ] = "Top side wipe", - [ T_CONFIG_LEDS_EFFECT_SCANNER ] = "Skaner", - [ T_CONFIG_LEDS_EFFECT_GENTLE_GLOW ] = "Gentle glow", - [ T_CONFIG_LEDS_EFFECT_CYCLE ] = "Party mode", - [ T_CONFIG_LEDS_COLOR ] = "Kolor LED", - [ T_CONFIG_LEDS_COLOR_RAINBOW ] = "Tęcza", - [ T_CONFIG_LEDS_COLOR_RED ] = "Czerwony", - [ T_CONFIG_LEDS_COLOR_ORANGE ] = "Pomarańczowy", - [ T_CONFIG_LEDS_COLOR_YELLOW ] = "Żółty", - [ T_CONFIG_LEDS_COLOR_GREEN ] = "Zielony", - [ T_CONFIG_LEDS_COLOR_BLUE ] = "Niebieski", - [ T_CONFIG_LEDS_COLOR_PURPLE ] = "Fioletowy", - [ T_CONFIG_LEDS_COLOR_PINK ] = "Różowy", - [ T_CONFIG_LEDS_COLOR_WHITE ] = "White", - [ T_CONFIG_LEDS_BRIGHTNESS ] = "Jasność LEDów", - [ T_CONFIG_LEDS_BRIGHTNESS_10 ] = "10%", - [ T_CONFIG_LEDS_BRIGHTNESS_20 ] = "20%", - [ T_CONFIG_LEDS_BRIGHTNESS_30 ] = "30%", - [ T_CONFIG_LEDS_BRIGHTNESS_40 ] = "40%", - [ T_CONFIG_LEDS_BRIGHTNESS_50 ] = "50%", - [ T_CONFIG_LEDS_BRIGHTNESS_100 ] = "100% ***UWAGA: uszkodzi port USB bez zewnętrznego zasilacza***", - [ T_CONFIG_BINMODE_SELECT ] = "Select binary mode", - [ T_HELP_DUMMY_COMMANDS ] = "Dummy commands valid in position 1", - [ T_HELP_DUMMY_INIT ] = "Dummy init command", - [ T_HELP_DUMMY_TEST ] = "Dummy test command", - [ T_HELP_DUMMY_FLAGS ] = "Dummy flags", - [ T_HELP_DUMMY_B_FLAG ] = "-b require Bus Pirate button to be pushed. Takes no parameters", - [ T_HELP_DUMMY_I_FLAG ] = "-i . Requires integer number parameter", - [ T_HELP_DUMMY_FILE_FLAG ] = "-f . Create/write/read . Requires file string parameter", - [ T_HELP_SLE4442 ] = "SLE4442 smart card interface", - [ T_HELP_SLE4442_INIT ] = "Initialize card with ISO7816-3 ATR. Default action", - [ T_HELP_SLE4442_DUMP ] = "Display main, security and protect memory", - [ T_HELP_SLE4442_UNLOCK ] = "Unlock card with Programmable Security Code (PSC)", - [ T_HELP_SLE4442_WRITE ] = "Write data to card (requires unlock)", - [ T_HELP_SLE4442_ERASE ] = "Erase data from range 0x32-0x255 (requires unlock)", - [ T_HELP_SLE4442_PSC ] = "Change Programmable Security Code (PSC)", - [ T_HELP_SLE4442_ADDRESS_FLAG ] = "Write address flag", - [ T_HELP_SLE4442_VALUE_FLAG ] = "Write value flag", - [ T_HELP_SLE4442_CURRENT_PSC_FLAG ] = "Current Programmable Security Code (PSC) flag", - [ T_HELP_SLE4442_NEW_PSC_FLAG ] = "New Programmable Security Code (PSC) flag", - [ T_HELP_SLE4442_FILE_FLAG ] = "Dump file name flag", - [ T_HELP_GCMD_W ] = "onboard power supply with programmable fuse", - [ T_HELP_GCMD_W_DISABLE ] = "Disable onboard power supply", - [ T_HELP_GCMD_W_ENABLE ] = "Enable onboard power supply, show configuration menu", - [ T_HELP_GCMD_W_VOLTS ] = "Voltage, 0.8-5.0volts", - [ T_HELP_GCMD_W_CURRENT_LIMIT ] = "Current limit, 0-500mA", - [ T_HELP_GCMD_P ] = "onboard pull-up resistors", - [ T_HELP_HELP ] = "help for Bus Pirate commands and modes", - [ T_HELP_SYS_COMMAND ] = "Commands to access the help system", - [ T_HELP_SYS_DISPLAY ] = "Show display mode help (such as oscilloscope)", - [ T_HELP_SYS_MODE ] = "Show mode specific commands and help", - [ T_HELP_SYS_HELP ] = "How to use the help system", - [ T_HELP_GCMD_SELFTEST ] = "run a complete system self-test", - [ T_HELP_GCMD_SELFTEST_CMD ] = "Run self-test", - [ T_HELP_GCMD_SELFTEST_H_FLAG ] = "Self-test help", - [ T_HELP_AUXIO ] = "set IO pin state, read input pins", - [ T_HELP_AUXIO_LOW ] = "Output, low/0. Reserves pin for output", - [ T_HELP_AUXIO_HIGH ] = "Output, high/1. Reserves pin for output", - [ T_HELP_AUXIO_INPUT ] = "Input, read state. Releases reserved pin", - [ T_HELP_AUXIO_IO ] = "IO pin number, 0-7", - [ T_HELP_DISK_HEX ] = "Print file contents in HEX format", - [ T_HELP_DISK_HEX_FILE ] = "Name of file in 8.3 format (example1.bin)", - [ T_HELP_DISK_HEX_ADDR ] = "Show address offset", - [ T_HELP_DISK_HEX_ASCII ] = "Show also ASCII dump", - [ T_HELP_DISK_HEX_SIZE ] = "Set line size in bytes", - [ T_HELP_DISK_HEX_OFF ] = "Set file read start offset in bytes", - [ T_HELP_DISK_HEX_PAGER_OFF ] = "Disable the pager for dumping", - [ T_HELP_DISK_CAT ] = "print file contents as text", - [ T_HELP_DISK_CAT_FILE ] = "Name of file in 8.3 format (example1.txt)", - [ T_HELP_DISK_MKDIR ] = "create directory on internal storage", - [ T_HELP_DISK_MKDIR_DIR ] = "Directory name, 8 characters max", - [ T_HELP_DISK_CD ] = "change to a directory on local storage", - [ T_HELP_DISK_CD_DIR ] = "Directory name, 8 characters max", - [ T_HELP_DISK_RM ] = "delete file or directory on local storage", - [ T_HELP_DISK_RM_FILE ] = "Name of file to delete, 8.3 format", - [ T_HELP_DISK_RM_DIR ] = "Name of directory to delete, 8 characters max", - [ T_HELP_DISK_LS ] = "list files and directories on local storage", - [ T_HELP_DISK_LS_DIR ] = "List contents of this directory, optional", - [ T_HELP_DISK_FORMAT ] = "erase and format internal storage in FAT16 format", - [ T_HELP_DISK_FORMAT_CMD ] = "All data will be lost, answer 'y' twice to continue", - [ T_HELP_DISK_LABEL ] = "get or set the disk label", - [ T_HELP_DISK_LABEL_GET ] = "returns the current label of the disk", - [ T_HELP_DISK_LABEL_SET ] = "sets the current label of the disk", - [ T_HELP_VADC ] = "measure voltage on IO pins", - [ T_HELP_VADC_SINGLE ] = "Single measurement", - [ T_HELP_VADC_CONTINUOUS ] = "Continuous measurement", - [ T_HELP_VADC_IO ] = "IO pin number, 0-7", - [ T_HELP_I2C_SCAN ] = "scan I2C addresses, with optional part number", - [ T_HELP_I2C_SCAN_VERBOSE ] = "Verbose mode, print potential part numbers", - [ T_HELP_FLAG ] = "Get additional help", - [ T_HELP_I2C_SI7021 ] = "Read temperature and humidity from SI7021/HTU21/SHT21 sensor", - [ T_HELP_I2C_MS5611 ] = "Read temperature and pressure from MS5611 sensor", - [ T_HELP_I2C_TSL2561 ] = "Read light intensity (LUX) from TSL2561 sensor", - [ T_HELP_1WIRE_SCAN ] = "scan for 1-Wire devices", - [ T_HELP_1WIRE_DS18B20 ] = "Query DS18B20 temperature sensor", - [ T_HELP_UART_BRIDGE ] = "open UART with raw data IO, usb to serial bridge mode", - [ T_HELP_UART_BRIDGE_EXIT ] = "UART bridge. Press Bus Pirate button to exit.", - [ T_HELP_UART_BRIDGE_TOOLBAR ] = "ENABLE toolbar while bridge is active (default: disabled)", - [ T_HELP_UART_BRIDGE_SUPPRESS_LOCAL_ECHO ] = "Suppress local echo, don't echo back sent data", - [ T_HELP_UART_NMEA ] = "parse NMEA GPS data", - [ T_HELP_SECTION_SCRIPT ] = "run scripts, macros and assign button functions", - [ T_HELP_CMD_SCRIPT ] = "Run script files, automation", - [ T_HELP_CMD_BUTTON ] = "Assign button functions", - [ T_HELP_CMD_MACRO ] = "Run macros, load a macro file", - [ T_HELP_CMD_TUTORIAL ] = "Run tutorial files", - [ T_HELP_CMD_PAUSE_KEY ] = "Press any key to continue (default)", - [ T_HELP_CMD_PAUSE_BUTTON ] = "Press the Bus Pirate button to continue", - [ T_HELP_CMD_PAUSE_EXIT ] = "'x' key to exit (e.g. script mode)", - [ T_HELP_BUTTON ] = "Assign script file to button press", - [ T_HELP_BUTTON_SHORT ] = "Assign script file to short button press", - [ T_HELP_BUTTON_LONG ] = "Assign script file to long button press", - [ T_HELP_BUTTON_FILE ] = "Script file to assign to button press", - [ T_HELP_BUTTON_HIDE ] = "Hide comments", - [ T_HELP_BUTTON_EXIT ] = "Exit script on error", - [ T_HELP_LOGIC ] = "logic analyzer control", - [ T_HELP_LOGIC_START ] = "start logic analyzer", - [ T_HELP_LOGIC_STOP ] = "stop logic analyzer", - [ T_HELP_LOGIC_HIDE ] = "hide logic graph", - [ T_HELP_LOGIC_SHOW ] = "show logic graph", - [ T_HELP_LOGIC_NAV ] = "navigate logic graph with arrow keys, x to exit", - [ T_HELP_LOGIC_INFO ] = "show configuration info", - [ T_HELP_LOGIC_FREQUENCY ] = "set sample frequency in Hz", - [ T_HELP_LOGIC_OVERSAMPLE ] = "set oversample rate, multiplies the sample frequency", - [ T_HELP_LOGIC_DEBUG ] = "set debug level: 0-2", - [ T_HELP_LOGIC_SAMPLES ] = "set number of samples", - [ T_HELP_LOGIC_TRIGGER_PIN ] = "set trigger pin, 0-7", - [ T_HELP_LOGIC_TRIGGER_LEVEL ] = "set trigger level, 0-1", - [ T_HELP_LOGIC_LOW_CHAR ] = "set character used for low in graph (ex:_)", - [ T_HELP_LOGIC_HIGH_CHAR ] = "set character used for high in graph (ex:*)", - [ T_HELP_CMD_CLS ] = "Clear and reset the terminal", - [ T_HELP_SECTION_TOOLS ] = "tools and utilities", - [ T_HELP_CMD_LOGIC ] = "Logic analyzer", - [ T_HELP_CMD_SMPS ] = "Switch mode power supply (plank required)", - [ T_INFRARED_CMD_TEST ] = "Test IR RX/TX Toy plank", - [ T_UART_CMD_TEST ] = "Test Dual RS232 plank", - [ T_SPI_CMD_SNIFF ] = "SPI sniffer", - -}; +#pragma once + +// NOTE: GENERATED FILE -- DO NOT EDIT DIRECTLY +// This file is auto-generated by `json2h.py` +// Entirely new strings should be added to `en-us.h` +// Translations should be added to the language code's `.json` file + +// en-us is our base language translation file +#include "translation/base.h" +static char const * const pl_pl[T_LAST_ITEM_ALWAYS_AT_THE_END]={ + [ T_ON ] = "Wł.", + [ T_OFF ] = "Wył.", + [ T_GND ] = "GND", + [ T_INPUT ] = "INPUT", + [ T_OUTPUT ] = "OUTPUT", + [ T_EXIT ] = "Wyjście", + [ T_LOADED ] = "Załadowano", + [ T_SAVED ] = "Zapisano", + [ T_HZ ] = "Hz", + [ T_KHZ ] = "kHz", + [ T_MHZ ] = "MHz", + [ T_SPEED ] = "Speed", + [ T_WARN_VOUT_VREF_LOW ] = "VOUT/VREF pin is not powered. Use W to enable power, or attach an external supply", + [ T_USE_PREVIOUS_SETTINGS ] = "Użyć poprzednich ustawień?", + [ T_MODE_ERROR_NO_EFFECT ] = "BŁĄD: polecenie nie ma tutaj efektu", + [ T_MODE_ERROR_NO_EFFECT_HIZ ] = "Polecenienie ma efektu w trybie HiZ, naciśnij 'm' aby wybrać tryb", + [ T_MODE_NO_HELP_AVAILABLE ] = "Brak dostępnej pomocy", + [ T_PRESS_ANY_KEY_TO_EXIT ] = "Naciśnij jakiś klawisz aby wyjść", + [ T_PRESS_ANY_KEY ] = "Press any key", + [ T_PRESS_BUTTON ] = "Press button", + [ T_PRESS_X_TO_EXIT ] = "Press 'x' to exit", + [ T_MODE_MODE_SELECTION ] = "Wybór trybu", + [ T_MODE_MODE ] = "Tryb", + [ T_MODE_NUMBER_DISPLAY_FORMAT ] = "Numeryczny format wyśwetlania", + [ T_MODE_INVALID_OPTION ] = "Nieprawidłowa opcja", + [ T_MODE_CHOOSE_AVAILABLE_PIN ] = "Wybierz dostępny pin:", + [ T_MODE_ALL_PINS_IN_USE ] = "Wszystkie piny w użyciu", + [ T_MODE_PULLUP_RESISTORS ] = "Rezystory Pull-up", + [ T_MODE_POWER_SUPPLY ] = "Zasilanie", + [ T_MODE_DISABLED ] = "Wyłączone", + [ T_MODE_DISPLAY ] = "Display", + [ T_MODE_DISPLAY_SELECTION ] = "Display selection", + [ T_MODE_ENABLED ] = "Włączone", + [ T_MODE_BITORDER ] = "Kolejność bitów", + [ T_MODE_BITORDER_MSB ] = "MSB", + [ T_MODE_BITORDER_LSB ] = "LSB", + [ T_MODE_DELAY ] = "Opóźnienie", + [ T_MODE_US ] = "us", + [ T_MODE_MS ] = "ms", + [ T_MODE_ADC_VOLTAGE ] = "Volts on", + [ T_MODE_ERROR_PARSING_MACRO ] = "Błąd parsowania makra", + [ T_MODE_ERROR_NO_MACROS_AVAILABLE ] = "Brak dostępnych makr", + [ T_MODE_ERROR_MACRO_NOT_DEFINED ] = "Makro nie zdefiniowane", + [ T_MODE_TICK_CLOCK ] = "Tick clock", + [ T_MODE_SET_CLK ] = "Set clock", + [ T_MODE_SET_DAT ] = "Set data", + [ T_MODE_READ_DAT ] = "Read data", + [ T_MODE_NO_VOUT_VREF_ERROR ] = "No voltage detected on VOUT/VREF pin", + [ T_MODE_NO_VOUT_VREF_HINT ] = "Hint: Use W to enable power, or attach an external supply", + [ T_MODE_NO_PULLUP_ERROR ] = "Pull-up not detected on IO pin", + [ T_MODE_NO_PULLUP_HINT ] = "Hint: Use P to enable pull-up resistors, or use external pull-up", + [ T_MODE_PWM_GENERATE_FREQUENCY ] = "Wygeneruj częstotliwość", + [ T_MODE_FREQ_MEASURE_FREQUENCY ] = "Pomiar częstotliwości", + [ T_MODE_FREQ_FREQUENCY ] = "Częstotliwość", + [ T_MODE_FREQ_DUTY_CYCLE ] = "Cykl pracy częstotliwości", + [ T_PSU_DAC_ERROR ] = "Błąd DAC PSU, uruchom self-test", + [ T_PSU_CURRENT_LIMIT_ERROR ] = "Natężenie ponad limit, wyłączono zasilanie", + [ T_PSU_SHORT_ERROR ] = "Potencjalne zwarcie, wyłączono zasilanie", + [ T_PSU_ALREADY_DISABLED_ERROR ] = "Zasilanie już wyłączone", + [ T_SYNTAX_EXCEEDS_MAX_SLOTS ] = "Wynik przekracza dostępną przestrzeń (%d slotów)", + [ T_HWSPI_SPEED_MENU ] = "Prędkość SPI", + [ T_HWSPI_SPEED_MENU_1 ] = "1 do 62500kHz", + [ T_HWSPI_SPEED_PROMPT ] = "kHz (%s%dkHz*%s)", + [ T_HWSPI_BITS_MENU ] = "Bity danych", + [ T_HWSPI_BITS_MENU_1 ] = "4 do 8 bitów", + [ T_HWSPI_BITS_PROMPT ] = "Bity/Bitów (%s%d*%s)", + [ T_HWSPI_CLOCK_POLARITY_MENU ] = "Polaryzacja zegara", + [ T_HWSPI_CLOCK_POLARITY_MENU_1 ] = "Idle LOW", + [ T_HWSPI_CLOCK_POLARITY_MENU_2 ] = "Idle HIGH", + [ T_HWSPI_CLOCK_POLARITY_PROMPT ] = "Polaryzacja", + [ T_HWSPI_CLOCK_PHASE_MENU ] = "Faza zegara", + [ T_HWSPI_CLOCK_PHASE_MENU_1 ] = "LEADING edge", + [ T_HWSPI_CLOCK_PHASE_MENU_2 ] = "TRAILING edge", + [ T_HWSPI_CLOCK_PHASE_PROMPT ] = "Faza", + [ T_HWSPI_CS_IDLE_MENU ] = "Chip select", + [ T_HWSPI_CS_IDLE_MENU_1 ] = "Active HIGH (CS)", + [ T_HWSPI_CS_IDLE_MENU_2 ] = "Active LOW (/CS)", + [ T_HWSPI_CS_IDLE_PROMPT ] = "CS", + [ T_HWSPI_ACTUAL_SPEED_KHZ ] = "Faktyczna prędkość", + [ T_HWSPI_CS_SELECT ] = "CS Włączone", + [ T_HWSPI_CS_DESELECT ] = "CS Wyłączone", + [ T_UART_SPEED_MENU ] = "Prędkość UART", + [ T_UART_SPEED_MENU_1 ] = "1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 itd.", + [ T_UART_SPEED_PROMPT ] = "Szerokość transmisji (%s%d*%s)", + [ T_UART_PARITY_MENU ] = "Parzystość", + [ T_UART_PARITY_MENU_1 ] = "Brak", + [ T_UART_PARITY_MENU_2 ] = "Parzyste", + [ T_UART_PARITY_MENU_3 ] = "Nieparzyste", + [ T_UART_PARITY_PROMPT ] = "Parzystość", + [ T_UART_DATA_BITS_MENU ] = "Bity danych", + [ T_UART_DATA_BITS_MENU_1 ] = "5 do 8 bitów", + [ T_UART_DATA_BITS_PROMPT ] = "(%s%d*%s) Bity/Bitów", + [ T_UART_STOP_BITS_MENU ] = "Bity zatrzymania", + [ T_UART_STOP_BITS_MENU_1 ] = "1", + [ T_UART_STOP_BITS_MENU_2 ] = "2", + [ T_UART_STOP_BITS_PROMPT ] = "Bity", + [ T_UART_BLOCKING_MENU ] = "Używaj funkcji blokujących?", + [ T_UART_BLOCKING_MENU_1 ] = "Nie", + [ T_UART_BLOCKING_MENU_2 ] = "Tak", + [ T_UART_BLOCKING_PROMPT ] = "Blokowanie", + [ T_UART_FLOW_CONTROL_MENU ] = "Hardware flow control", + [ T_UART_FLOW_CONTROL_MENU_1 ] = "None", + [ T_UART_FLOW_CONTROL_MENU_2 ] = "RTS/CTS", + [ T_UART_FLOW_CONTROL_PROMPT ] = "Flow control", + [ T_UART_INVERT_MENU ] = "Signal inversion", + [ T_UART_INVERT_MENU_1 ] = "Non-inverted (Standard)", + [ T_UART_INVERT_MENU_2 ] = "Inverted", + [ T_UART_INVERT_PROMPT ] = "Invert signals", + [ T_UART_GLITCH_TRG_MENU ] = "Glitch trigger character", + [ T_UART_GLITCH_TRG_MENU_1 ] = "1 - 255", + [ T_UART_GLITCH_TRG_PROMPT ] = "ASCII value of trigger character (13)", + [ T_UART_GLITCH_DLY_MENU ] = "Glitch trigger delay", + [ T_UART_GLITCH_DLY_MENU_1 ] = "Delay time in us", + [ T_UART_GLITCH_DLY_PROMPT ] = "Glitch trigger delay (1)", + [ T_UART_GLITCH_VRY_MENU ] = "Glitch vary time", + [ T_UART_GLITCH_VRY_MENU_1 ] = "1 - 10", + [ T_UART_GLITCH_VRY_PROMPT ] = "Glitch vary time (3)", + [ T_UART_GLITCH_CYC_MENU ] = "Glitch cycle delay", + [ T_UART_GLITCH_CYC_MENU_1 ] = "10-1000", + [ T_UART_GLITCH_CYC_PROMPT ] = "Minimum time between glitch cycles in ms (10)", + [ T_UART_GLITCH_FAIL_MENU ] = "Normal response character", + [ T_UART_GLITCH_FAIL_MENU_1 ] = "1 - 255", + [ T_UART_GLITCH_FAIL_PROMPT ] = "ASCII value of first char of normal response (35 - '#')", + [ T_UART_GLITCH_CNT_MENU ] = "Number of glitch attempts", + [ T_UART_GLITCH_CNT_MENU_1 ] = "1 - 10000", + [ T_UART_GLITCH_CNT_PROMPT ] = "Number of glitch attempts before quitting (100)", + [ T_UART_GLITCH_GLITCHED ] = "Target glitch success!", + [ T_UART_GLITCH_CANCELLED ] = "Target glitch cancelled by button", + [ T_UART_GLITCH_DONE ] = "Target glitch count exceeded, no glitch :/", + [ T_UART_TOOL_TIMEOUT ] = "Timout waiting for glitch hardware :/", + [ T_UART_GLITCH_UNKNOWN ] = "Target glitching stopped for unknown reason", + [ T_UART_GLITCH_SETUP_ERR ] = "Error setting up glitcher - check uglitch.bp file", + [ T_UART_ACTUAL_SPEED_BAUD ] = "Faktyczna szerokość transmisji", + [ T_UART_BAUD ] = "szerokość transmisji", + [ T_UART_OPEN ] = "UART OTWARTY", + [ T_UART_OPEN_WITH_READ ] = "UART OTWARTY (ASYNC READ)", + [ T_UART_CLOSE ] = "UART ZAMKNIĘTY", + [ T_UART_NO_DATA_READ ] = "Brak danych do odczytu", + [ T_UART_NO_DATA_TIMEOUT ] = "Odczyt danych przekroczył limit czasu", + [ T_HWI2C_SPEED_MENU ] = "Prędkość I2C", + [ T_HWI2C_SPEED_MENU_1 ] = "1kHz do 1000kHz", + [ T_HWI2C_SPEED_PROMPT ] = "kHz (%s%dkHz*%s)", + [ T_HWI2C_DATA_BITS_MENU ] = "Bity danych", + [ T_HWI2C_DATA_BITS_MENU_1 ] = "8", + [ T_HWI2C_DATA_BITS_MENU_2 ] = "10", + [ T_HWI2C_DATA_BITS_PROMPT ] = "Bitów", + [ T_HWI2C_CLOCK_STRETCH_MENU ] = "Clock stretching", + [ T_HWI2C_CLOCK_STRETCH_PROMPT ] = "(OFF)", + [ T_HWI2C_START ] = "I2C START", + [ T_HWI2C_REPEATED_START ] = "I2C REPEATED START", + [ T_HWI2C_STOP ] = "I2C STOP", + [ T_HWI2C_ACK ] = "ACK", + [ T_HWI2C_NACK ] = "NACK", + [ T_HWI2C_NO_PULLUP_DETECTED ] = "Nie wykryto rezystorów pull-up. Użyj P aby je włączyć", + [ T_HWI2C_NO_VOUT_DETECTED ] = "no power detected", + [ T_HWI2C_TIMEOUT ] = "Przekroczenie limitu czasu I2C", + [ T_HWI2C_I2C_ERROR ] = "Błąd magistrali I2C", + [ T_HW2WIRE_SPEED_MENU ] = "2WIRE speed", + [ T_HW2WIRE_RST_LOW ] = "RST LOW", + [ T_HW2WIRE_RST_HIGH ] = "RST HIGH", + [ T_HW3WIRE_SPEED_MENU_1 ] = "1 to 3900kHz", + [ T_HWLED_DEVICE_MENU ] = "Rodzaj LED", + [ T_HWLED_DEVICE_MENU_1 ] = "WS2812/SK6812/'NeoPixel' (single wire interface)", + [ T_HWLED_DEVICE_MENU_2 ] = "APA102/SK9822 (clock and data interface)", + [ T_HWLED_DEVICE_MENU_3 ] = "LEDy na płytce (18 SK6812s)", + [ T_HWLED_DEVICE_PROMPT ] = "Typ", + [ T_HWLED_NUM_LEDS_MENU ] = "Ilość LEDów w pasku", + [ T_HWLED_NUM_LEDS_MENU_1 ] = "1 do 10000", + [ T_HWLED_NUM_LEDS_PROMPT ] = "LEDy (%s%d*%s)", + [ T_HWLED_RESET ] = "RESET", + [ T_HWLED_FRAME_START ] = "RAMKA STARTu (0x00000000)", + [ T_HWLED_FRAME_STOP ] = "RAMKA STOPu (0xFFFFFFFF)", + [ T_HW1WIRE_RESET ] = "1-Wire RESET", + [ T_HW1WIRE_PRESENCE_DETECT ] = "Wykryto urządzenie", + [ T_HW1WIRE_NO_DEVICE ] = "Nie wykryto urządzenia", + [ T_IR_RX_SENSOR_MENU ] = "RX sensor", + [ T_IR_RX_SENSOR_MENU_LEARNER ] = "20-60kHz learner", + [ T_IR_RX_SENSOR_MENU_BARRIER ] = "38kHz barrier", + [ T_IR_RX_SENSOR_MENU_38K_DEMOD ] = "36-40kHz demodulator", + [ T_IR_RX_SENSOR_MENU_56K_DEMOD ] = "56kHz demodulator", + [ T_IR_TX_SPEED_MENU ] = "TX modulation", + [ T_IR_TX_SPEED_MENU_1 ] = "20kHz to 60kHz", + [ T_IR_TX_SPEED_PROMPT ] = "kHz (%s%dkHz*%s)", + [ T_IR_PROTOCOL_MENU ] = "Protocol", + [ T_IR_PROTOCOL_MENU_RC5 ] = "RC5", + [ T_IR_PROTOCOL_MENU_NEC ] = "NEC", + [ T_CMDLN_INVALID_COMMAND ] = "Niepoprawne polecenie: %s. Użyj ? aby użyskać pomoc.", + [ T_CMDLN_NO_HELP ] = "Pomoc dla tego polecenia jest aktualnie niedostępna.", + [ T_CMDLN_LS ] = "ls {katalog} - listuje pliki w aktualnej lokacji albo {katalogu}.", + [ T_CMDLN_CD ] = "cd {katalog} - przechodzi do {katalogu}.", + [ T_CMDLN_MKDIR ] = "mkdir {katalog} - tworzy {katalog}.", + [ T_CMDLN_RM ] = "rm {plik/katalog} - usuwa plik lub (zawartość) katalog/katalogu.", + [ T_CMDLN_CAT ] = "cat {plik} - wyświetla zawartość {pliku}.", + [ T_CMDLN_MODE ] = "m - zmienia tryb protokołu, pokazuje menu wyboru.", + [ T_CMDLN_PSU_EN ] = "W - włącza zasilanie na płytce, pokazuje menu konfiguracji.", + [ T_CMDLN_RESET ] = "# - resetuje i restartuje Bus Pirate'a.", + [ T_CMDLN_BOOTLOAD ] = "$ - resetuje i wchodzi w tryb bootloadera do aktualizacji.", + [ T_CMDLN_INT_FORMAT ] = "= {wartość} - konwertuje {wartość} do BIN/DEC/HEX/ASCII.", + [ T_CMDLN_INT_INVERSE ] = "| {wartość} - inwertuje bity {wartośći}.", + [ T_CMDLN_HELP ] = "? - pokazuje pomoc dla polecenia i składni.", + [ T_CMDLN_CONFIG_MENU ] = "c - otwieramenu konfiguacji Bus Pirate'a.", + [ T_CMDLN_FREQ_ONE ] = "f {IOx} - jednorazowo mierzy częstotliwość na pinie {IOx}.", + [ T_CMDLN_FREQ_CONT ] = "F {IOx} - mierzy częstotliwość na pinie {IOx} w sposób ciągły.", + [ T_CMDLN_PWM_CONFIG ] = "G - konfiguruje generator częstotliwości (PWM) na dostępnym pinie IOx.", + [ T_CMDLN_PWM_DIS ] = "g {IOx} - wyłącza generator częstotliwości (PWM) na pinie {IOx}.", + [ T_CMDLN_HELP_MODE ] = "h - pokazuje ekran pomocy specyficzny dla trybu.", + [ T_CMDLN_HELP_DISPLAY ] = "hd - show display mode specific help screen.", + [ T_CMDLN_INFO ] = "i - pokazuje informację o Bus Pirate'cie i ekran statusu.", + [ T_CMDLN_BITORDER_MSB ] = "l - ustawia kolejność wyjścia na Najbardziej Znaczący Bit (MSB).", + [ T_CMDLN_BITORDER_LSB ] = "L - ustawia kolejność wyjścia na Najmniej Znaczący Bit (LSB).", + [ T_CMDLN_DISPLAY_FORMAT ] = "o - konfiguruje format wyświetlania numerów.", + [ T_CMDLN_PULLUPS_EN ] = "P - włącza rezystory pull-up na płytce.", + [ T_CMDLN_PULLUPS_DIS ] = "p - wyłącza rezystory pull-up na płytce.", + [ T_CMDLN_PSU_DIS ] = "w - wyłącza zasilanie na płytce.", + [ T_CMDLN_ADC_CONT ] = "V {IOx} - mierzy napięcie na pinie {IOx} w sposób ciągły. Pomiń numer pinu aby mierzyć na wszystkich pinach.", + [ T_CMDLN_ADC_ONE ] = "v {IOx} - jednorazowo mierzy napięciena pinie {IOx}. Pomiń numer pinu aby zmierzyć jednorazowo na wszystkich pinach.", + [ T_CMDLN_SELFTEST ] = "~ - przeprowadza self-test fabryczny. Odłącz wszystkie urządzenia i zmień na tryb HiZ przed rozpoczęciem testu.", + [ T_CMDLN_AUX_IN ] = "@ {IOx} - ustawia pin {IOx} jako wejściowy, czyta stan pinu.", + [ T_CMDLN_AUX_LOW ] = "a {IOx} - ustawia pin {IOx} jako wyjściowy i stan niski.", + [ T_CMDLN_AUX_HIGH ] = "A {IOx} - ustawia pin {IOx} jako wyjściowy i stan wysoki.", + [ T_CMDLN_DUMP ] = "dump {plik} {urządzenie} - zrzuca zawarość pamięci flash {urządzenia} do {pliku}. Uwaga: aktualnie eksperymentalna funkcja, która działa tylko z 25LC020 w trybie SPI.", + [ T_CMDLN_LOAD ] = "load {plik} {urządzenie} - wczytuje zawartość {pliku} do pamięci flash {urządzenia}. Uwaga: aktualnie eksperymentalna funkcja, która działa tylko z 25LC020 w trybie SPI.", + [ T_CMDLN_DISPLAY ] = "d - change display mode, show selection menu.", + [ T_CMDLN_LOGIC ] = "logic - logic analyzer. 1kHz-62500kHz, 0:7, 0:1.", + [ T_CMDLN_HEX ] = "hex - print contents of in HEX", + [ T_HELP_TITLE ] = "General Commands\t\t\tBus Syntax", + [ T_HELP_GENERAL_COMMANDS ] = "General Commands", + [ T_HELP_BUS_SYNTAX ] = "Bus Syntax", + [ T_HELP_DISK_COMMANDS ] = "Disc Commands", + [ T_HELP_BLANK ] = "\t\t\t", + [ T_HELP_SECTION_IO ] = "work with pins, input, output measurement", + [ T_HELP_SECTION_CAPTURE ] = "measure analog and digital signals", + [ T_HELP_SECTION_CONFIGURE ] = "configure the terminal, LEDs, display and mode", + [ T_HELP_SECTION_SYSTEM ] = "restart, firmware updates and diagnostic", + [ T_HELP_SECTION_FILES ] = "list files and navigate the storage", + [ T_HELP_SECTION_PROGRAMS ] = "useful commands and mini-programs", + [ T_HELP_SECTION_MODE ] = "enter a mode to use protocols", + [ T_HELP_SECTION_SYNTAX ] = "send and receive data in modes using bus syntax", + [ T_HELP_SECTION_HELP ] = "get more help", + [ T_HELP_GREATER_THAN ] = "Uruchom Składnię Magistrali (patrz Bus Syntax)", + [ T_HELP_SYNTAX_ADC ] = "Mierzy volty na IO.x\t", + [ T_HELP_CMD_LS ] = "Listuj pliki", + [ T_HELP_CMD_CD ] = "Zmień katalog", + [ T_HELP_CMD_MKDIR ] = "Twórz katalog", + [ T_HELP_CMD_RM ] = "Usuń plik/katalog", + [ T_HELP_CMD_PAUSE ] = "Pause for user input, optional exit", + [ T_HELP_CMD_FORMAT ] = "Format storage disk (FAT16)", + [ T_HELP_CMD_CAT ] = "Pokaż zawartość pliku", + [ T_HELP_CMD_HEX ] = "Print file contents in HEX", + [ T_HELP_CAPTURE_SCOPE ] = "Oscilloscope interface", + [ T_HELP_CAPTURE_LA ] = "Logic analyzer interface", + [ T_HELP_CMD_FLASH ] = "Erase, write, read and verify SPI flash chips", + [ T_HELP_CMD_LABEL ] = "Get or set the disk label", + [ T_HELP_CMD_IMAGE ] = "Write a bitmap image on the LCD", + [ T_HELP_CMD_DUMP ] = "Repeat read command, save ouput to storage", + [ T_HELP_1_2 ] = "Konwertuje x/odwraca x\t", + [ T_HELP_1_3 ] = "Wewnętrzny test (self-test)\t\t", + [ T_HELP_1_4 ] = "Resetuj Bus Pirate'a\t", + [ T_HELP_1_5 ] = "Przejdź do bootloadera\t", + [ T_HELP_1_6 ] = "Opóźnij 1 us/MS (d:4 aby powtórzyć)", + [ T_HELP_1_7 ] = "Ustaw stan pinu IO.x (low/HI/READ)", + [ T_HELP_COMMAND_AUX ] = "Ustaw stan pinu IO x (low/HI/READ)", + [ T_HELP_COMMAND_DISPLAY ] = "Change screen display mode", + [ T_HELP_1_9 ] = "Menu konfiguracyjne\t", + [ T_HELP_1_22 ] = "Pokaż wolty na pinie IOx (jednorazowo/CIĄGLE)", + [ T_HELP_1_10 ] = "Pokaż wolty na wszystkich pinach IOs (jednorazowo/CIĄGLE)", + [ T_HELP_1_11 ] = "Zmierz częstotliwość na pinie IOx (jednorazowo/CIĄGLE)", + [ T_HELP_1_23 ] = "Monitoruj częstotliwość (wył./WŁ.)\t", + [ T_HELP_1_12 ] = "Generuj częstotliwość (wył./WŁ.)", + [ T_HELP_HELP_GENERAL ] = "Global, mode and display help. Try '?', '? mode' and '? display'", + [ T_HELP_HELP_DISPLAY ] = "Help with a display mode such as the scope", + [ T_HELP_HELP_COMMAND ] = "Add -h for command help: ls -h", + [ T_HELP_1_14 ] = "Wersja/Status\t", + [ T_HELP_1_15 ] = "Kolejność bitów (msb/LSB)\t", + [ T_HELP_1_16 ] = "Zmień tryb\t\t", + [ T_HELP_1_17 ] = "Ustaw format wyświetlania numerów", + [ T_HELP_1_18 ] = "Rezystory Pull-up (wył./WŁ.)", + [ T_HELP_1_19 ] = "-\t\t\t", + [ T_HELP_1_20 ] = "Pokaż wolty/stany\t", + [ T_HELP_1_21 ] = "Zasilanie (wył./WŁ.)\t", + [ T_HELP_2_1 ] = "Mode macro x/list all\t", + [ T_HELP_2_3 ] = "Uruchom", + [ T_HELP_2_4 ] = "Zatrzymaj", + [ T_HELP_2_7 ] = "Wyślij stringa", + [ T_HELP_2_8 ] = "", + [ T_HELP_2_9 ] = "", + [ T_HELP_2_10 ] = "Wyślij wartość", + [ T_HELP_2_11 ] = "Przeczytaj", + [ T_HELP_SYN_CLOCK_HIGH ] = "Clock high", + [ T_HELP_SYN_CLOCK_LOW ] = "Clock low", + [ T_HELP_SYN_CLOCK_TICK ] = "Clock tick", + [ T_HELP_SYN_DATA_HIGH ] = "Data high", + [ T_HELP_SYN_DATA_LOW ] = "Data low", + [ T_HELP_SYN_DATA_READ ] = "Read data pin state", + [ T_HELP_2_18 ] = "Bit przeczytany", + [ T_HELP_2_19 ] = "Powtórz np. r:10", + [ T_HELP_2_20 ] = "Ilość bitów do zapisu/odczytu np. 0x55.2", + [ T_HELP_2_21 ] = "Makra użytkownika x/pokaż wszystkie", + [ T_HELP_2_22 ] = "Makra użytkownika przypisz x", + [ T_HELP_HINT ] = "Multiplikuj polecenia przy użyciu ; || &&.\r\n\r\nPatrz -h dla pomocy polecenia: ls -h", + [ T_HELP_FLASH ] = "read, write and erase flash chips using SFDP info if available", + [ T_HELP_FLASH_ERASE ] = "Erase flash chip. flash erase [-v(erify)]", + [ T_HELP_FLASH_WRITE ] = "Write file to flash chip. flash write -f [-e(rase)] [-v(erify)]", + [ T_HELP_FLASH_READ ] = "Read flash chip to file. flash read -f ", + [ T_HELP_FLASH_VERIFY ] = "Verify flash chip against file. flash verify -f ", + [ T_HELP_FLASH_TEST ] = "Erase and write full chip with dummy data, verify. flash test", + [ T_HELP_FLASH_PROBE ] = "Probe flash chip for ID and SFDP info. flash probe", + [ T_HELP_FLASH_INIT ] = "Reset and initialize flash chip. Default if no options given. flash", + [ T_HELP_FLASH_FILE_FLAG ] = "File flag. File to write, read or verify. flash verify -f ", + [ T_HELP_FLASH_ERASE_FLAG ] = "Erase flag. Add erase before write. flash write -f -e", + [ T_HELP_FLASH_VERIFY_FLAG ] = "Verify flag. Add verify after write or erase. flash write -f -v", + [ T_INFO_FIRMWARE ] = "Firmware", + [ T_INFO_BOOTLOADER ] = "Bootloader", + [ T_INFO_WITH ] = "z", + [ T_INFO_RAM ] = "RAM", + [ T_INFO_FLASH ] = "FLASH", + [ T_INFO_SN ] = "S/N", + [ T_INFO_WEBSITE ] = "https://BusPirate.com/", + [ T_INFO_TF_CARD ] = "Karta SD/TF", + [ T_INFO_FILE_SYSTEM ] = "System Plików", + [ T_NOT_DETECTED ] = "Nie Wykryto", + [ T_INFO_AVAILABLE_MODES ] = "Dostępne tryby", + [ T_INFO_CURRENT_MODE ] = "Aktywny tryb", + [ T_INFO_POWER_SUPPLY ] = "Zasilanie", + [ T_INFO_CURRENT_LIMIT ] = "Limit natężenia", + [ T_INFO_PULLUP_RESISTORS ] = "Rezystory pull-up", + [ T_INFO_FREQUENCY_GENERATORS ] = "Generatory częstotliwości", + [ T_INFO_DISPLAY_FORMAT ] = "Format wyświetlania", + [ T_INFO_DATA_FORMAT ] = "Format danych", + [ T_INFO_BITS ] = "bity/bitów", + [ T_INFO_BITORDER ] = "kolejność bitów", + [ T_CONFIG_FILE ] = "Plik konfiguracyjny", + [ T_CONFIG_CONFIGURATION_OPTIONS ] = "Opcje konfiguracyjne", + [ T_CONFIG_LANGUAGE ] = "Language / Jezik / Lingua / 语言", + [ T_CONFIG_ANSI_COLOR_MODE ] = "Tryb kolorowy ANSI", + [ T_CONFIG_ANSI_COLOR_FULLCOLOR ] = "ANSI Full-Color (16M colors)", + [ T_CONFIG_ANSI_COLOR_256 ] = "ANSI-256 color", + [ T_CONFIG_ANSI_TOOLBAR_MODE ] = "Tryb ANSI toolbar", + [ T_CONFIG_LANGUAGE_ENGLISH ] = "Language - English (US)", + [ T_CONFIG_LANGUAGE_CHINESE ] = "语言 - 中文(简体)", + [ T_CONFIG_LANGUAGE_POLISH ] = "Język - polski (Polska)", + [ T_CONFIG_LANGUAGE_BOSNIAN ] = "Jezik - bosanski (latinica, Bosna i Hercegovina)", + [ T_CONFIG_LANGUAGE_ITALIAN ] = "Lingua - italiano (Italia)", + [ T_CONFIG_DISABLE ] = "Wyłącz", + [ T_CONFIG_ENABLE ] = "Włącz", + [ T_CONFIG_SCREENSAVER ] = "Wygaszacz ekranu LCD", + [ T_CONFIG_SCREENSAVER_5 ] = "5 minut", + [ T_CONFIG_SCREENSAVER_10 ] = "10 minut", + [ T_CONFIG_SCREENSAVER_15 ] = "15 minut", + [ T_CONFIG_LEDS_EFFECT ] = "Efekt LED", + [ T_CONFIG_LEDS_EFFECT_SOLID ] = "Stały", + [ T_CONFIG_LEDS_EFFECT_ANGLEWIPE ] = "Angle wipe", + [ T_CONFIG_LEDS_EFFECT_CENTERWIPE ] = "Center wipe", + [ T_CONFIG_LEDS_EFFECT_CLOCKWISEWIPE ] = "Clockwise wipe", + [ T_CONFIG_LEDS_EFFECT_TOPDOWNWIPE ] = "Top side wipe", + [ T_CONFIG_LEDS_EFFECT_SCANNER ] = "Skaner", + [ T_CONFIG_LEDS_EFFECT_GENTLE_GLOW ] = "Gentle glow", + [ T_CONFIG_LEDS_EFFECT_CYCLE ] = "Party mode", + [ T_CONFIG_LEDS_COLOR ] = "Kolor LED", + [ T_CONFIG_LEDS_COLOR_RAINBOW ] = "Tęcza", + [ T_CONFIG_LEDS_COLOR_RED ] = "Czerwony", + [ T_CONFIG_LEDS_COLOR_ORANGE ] = "Pomarańczowy", + [ T_CONFIG_LEDS_COLOR_YELLOW ] = "Żółty", + [ T_CONFIG_LEDS_COLOR_GREEN ] = "Zielony", + [ T_CONFIG_LEDS_COLOR_BLUE ] = "Niebieski", + [ T_CONFIG_LEDS_COLOR_PURPLE ] = "Fioletowy", + [ T_CONFIG_LEDS_COLOR_PINK ] = "Różowy", + [ T_CONFIG_LEDS_COLOR_WHITE ] = "White", + [ T_CONFIG_LEDS_BRIGHTNESS ] = "Jasność LEDów", + [ T_CONFIG_LEDS_BRIGHTNESS_10 ] = "10%", + [ T_CONFIG_LEDS_BRIGHTNESS_20 ] = "20%", + [ T_CONFIG_LEDS_BRIGHTNESS_30 ] = "30%", + [ T_CONFIG_LEDS_BRIGHTNESS_40 ] = "40%", + [ T_CONFIG_LEDS_BRIGHTNESS_50 ] = "50%", + [ T_CONFIG_LEDS_BRIGHTNESS_100 ] = "100% ***UWAGA: uszkodzi port USB bez zewnętrznego zasilacza***", + [ T_CONFIG_BINMODE_SELECT ] = "Select binary mode", + [ T_HELP_DUMMY_COMMANDS ] = "Dummy commands valid in position 1", + [ T_HELP_DUMMY_INIT ] = "Dummy init command", + [ T_HELP_DUMMY_TEST ] = "Dummy test command", + [ T_HELP_DUMMY_FLAGS ] = "Dummy flags", + [ T_HELP_DUMMY_B_FLAG ] = "-b require Bus Pirate button to be pushed. Takes no parameters", + [ T_HELP_DUMMY_I_FLAG ] = "-i . Requires integer number parameter", + [ T_HELP_DUMMY_FILE_FLAG ] = "-f . Create/write/read . Requires file string parameter", + [ T_HELP_SLE4442 ] = "SLE4442 smart card interface", + [ T_HELP_SLE4442_INIT ] = "Initialize card with ISO7816-3 ATR. Default action", + [ T_HELP_SLE4442_DUMP ] = "Display main, security and protect memory", + [ T_HELP_SLE4442_UNLOCK ] = "Unlock card with Programmable Security Code (PSC)", + [ T_HELP_SLE4442_WRITE ] = "Write data to card (requires unlock)", + [ T_HELP_SLE4442_ERASE ] = "Erase data from range 0x32-0x255 (requires unlock)", + [ T_HELP_SLE4442_PSC ] = "Change Programmable Security Code (PSC)", + [ T_HELP_SLE4442_ADDRESS_FLAG ] = "Write address flag", + [ T_HELP_SLE4442_VALUE_FLAG ] = "Write value flag", + [ T_HELP_SLE4442_CURRENT_PSC_FLAG ] = "Current Programmable Security Code (PSC) flag", + [ T_HELP_SLE4442_NEW_PSC_FLAG ] = "New Programmable Security Code (PSC) flag", + [ T_HELP_SLE4442_FILE_FLAG ] = "Dump file name flag", + [ T_HELP_GCMD_W ] = "onboard power supply with programmable fuse", + [ T_HELP_GCMD_W_DISABLE ] = "Disable onboard power supply", + [ T_HELP_GCMD_W_ENABLE ] = "Enable onboard power supply, show configuration menu", + [ T_HELP_GCMD_W_VOLTS ] = "Voltage, 0.8-5.0volts", + [ T_HELP_GCMD_W_CURRENT_LIMIT ] = "Current limit, 0-500mA", + [ T_HELP_GCMD_P ] = "onboard pull-up resistors", + [ T_HELP_HELP ] = "help for Bus Pirate commands and modes", + [ T_HELP_SYS_COMMAND ] = "Commands to access the help system", + [ T_HELP_SYS_DISPLAY ] = "Show display mode help (such as oscilloscope)", + [ T_HELP_SYS_MODE ] = "Show mode specific commands and help", + [ T_HELP_SYS_HELP ] = "How to use the help system", + [ T_HELP_GCMD_SELFTEST ] = "run a complete system self-test", + [ T_HELP_GCMD_SELFTEST_CMD ] = "Run self-test", + [ T_HELP_GCMD_SELFTEST_H_FLAG ] = "Self-test help", + [ T_HELP_AUXIO ] = "set IO pin state, read input pins", + [ T_HELP_AUXIO_LOW ] = "Output, low/0. Reserves pin for output", + [ T_HELP_AUXIO_HIGH ] = "Output, high/1. Reserves pin for output", + [ T_HELP_AUXIO_INPUT ] = "Input, read state. Releases reserved pin", + [ T_HELP_AUXIO_IO ] = "IO pin number, 0-7", + [ T_HELP_DISK_HEX ] = "Print file contents in HEX format", + [ T_HELP_DISK_HEX_FILE ] = "Name of file in 8.3 format (example1.bin)", + [ T_HELP_DISK_HEX_ADDR ] = "Show address offset", + [ T_HELP_DISK_HEX_ASCII ] = "Show also ASCII dump", + [ T_HELP_DISK_HEX_SIZE ] = "Set line size in bytes", + [ T_HELP_DISK_HEX_OFF ] = "Set file read start offset in bytes", + [ T_HELP_DISK_HEX_PAGER_OFF ] = "Disable the pager for dumping", + [ T_HELP_DISK_CAT ] = "print file contents as text", + [ T_HELP_DISK_CAT_FILE ] = "Name of file in 8.3 format (example1.txt)", + [ T_HELP_DISK_MKDIR ] = "create directory on internal storage", + [ T_HELP_DISK_MKDIR_DIR ] = "Directory name, 8 characters max", + [ T_HELP_DISK_CD ] = "change to a directory on local storage", + [ T_HELP_DISK_CD_DIR ] = "Directory name, 8 characters max", + [ T_HELP_DISK_RM ] = "delete file or directory on local storage", + [ T_HELP_DISK_RM_FILE ] = "Name of file to delete, 8.3 format", + [ T_HELP_DISK_RM_DIR ] = "Name of directory to delete, 8 characters max", + [ T_HELP_DISK_LS ] = "list files and directories on local storage", + [ T_HELP_DISK_LS_DIR ] = "List contents of this directory, optional", + [ T_HELP_DISK_FORMAT ] = "erase and format internal storage in FAT16 format", + [ T_HELP_DISK_FORMAT_CMD ] = "All data will be lost, answer 'y' twice to continue", + [ T_HELP_DISK_LABEL ] = "get or set the disk label", + [ T_HELP_DISK_LABEL_GET ] = "returns the current label of the disk", + [ T_HELP_DISK_LABEL_SET ] = "sets the current label of the disk", + [ T_HELP_VADC ] = "measure voltage on IO pins", + [ T_HELP_VADC_SINGLE ] = "Single measurement", + [ T_HELP_VADC_CONTINUOUS ] = "Continuous measurement", + [ T_HELP_VADC_IO ] = "IO pin number, 0-7", + [ T_HELP_I2C_SCAN ] = "scan I2C addresses, with optional part number", + [ T_HELP_I2C_SCAN_VERBOSE ] = "Verbose mode, print potential part numbers", + [ T_HELP_FLAG ] = "Get additional help", + [ T_HELP_I2C_SI7021 ] = "Read temperature and humidity from SI7021/HTU21/SHT21 sensor", + [ T_HELP_I2C_MS5611 ] = "Read temperature and pressure from MS5611 sensor", + [ T_HELP_I2C_TSL2561 ] = "Read light intensity (LUX) from TSL2561 sensor", + [ T_HELP_1WIRE_SCAN ] = "scan for 1-Wire devices", + [ T_HELP_1WIRE_DS18B20 ] = "Query DS18B20 temperature sensor", + [ T_HELP_UART_BRIDGE ] = "open UART with raw data IO, usb to serial bridge mode", + [ T_HELP_UART_BRIDGE_EXIT ] = "UART bridge. Press Bus Pirate button to exit.", + [ T_HELP_UART_BRIDGE_TOOLBAR ] = "ENABLE toolbar while bridge is active (default: disabled)", + [ T_HELP_UART_BRIDGE_SUPPRESS_LOCAL_ECHO ] = "Suppress local echo, don't echo back sent data", + [ T_HELP_UART_NMEA ] = "parse NMEA GPS data", + [ T_HELP_UART_GLITCH_EXIT ] = "UART Glitcher. Press Bus Pirate button to exit.", + [ T_HELP_SECTION_SCRIPT ] = "run scripts, macros and assign button functions", + [ T_HELP_CMD_SCRIPT ] = "Run script files, automation", + [ T_HELP_CMD_BUTTON ] = "Assign button functions", + [ T_HELP_CMD_MACRO ] = "Run macros, load a macro file", + [ T_HELP_CMD_TUTORIAL ] = "Run tutorial files", + [ T_HELP_CMD_PAUSE_KEY ] = "Press any key to continue (default)", + [ T_HELP_CMD_PAUSE_BUTTON ] = "Press the Bus Pirate button to continue", + [ T_HELP_CMD_PAUSE_EXIT ] = "'x' key to exit (e.g. script mode)", + [ T_HELP_BUTTON ] = "Assign script file to button press", + [ T_HELP_BUTTON_SHORT ] = "Assign script file to short button press", + [ T_HELP_BUTTON_LONG ] = "Assign script file to long button press", + [ T_HELP_BUTTON_FILE ] = "Script file to assign to button press", + [ T_HELP_BUTTON_HIDE ] = "Hide comments", + [ T_HELP_BUTTON_EXIT ] = "Exit script on error", + [ T_HELP_LOGIC ] = "logic analyzer control", + [ T_HELP_LOGIC_START ] = "start logic analyzer", + [ T_HELP_LOGIC_STOP ] = "stop logic analyzer", + [ T_HELP_LOGIC_HIDE ] = "hide logic graph", + [ T_HELP_LOGIC_SHOW ] = "show logic graph", + [ T_HELP_LOGIC_NAV ] = "navigate logic graph with arrow keys, x to exit", + [ T_HELP_LOGIC_INFO ] = "show configuration info", + [ T_HELP_LOGIC_FREQUENCY ] = "set sample frequency in Hz", + [ T_HELP_LOGIC_OVERSAMPLE ] = "set oversample rate, multiplies the sample frequency", + [ T_HELP_LOGIC_DEBUG ] = "set debug level: 0-2", + [ T_HELP_LOGIC_SAMPLES ] = "set number of samples", + [ T_HELP_LOGIC_TRIGGER_PIN ] = "set trigger pin, 0-7", + [ T_HELP_LOGIC_TRIGGER_LEVEL ] = "set trigger level, 0-1", + [ T_HELP_LOGIC_LOW_CHAR ] = "set character used for low in graph (ex:_)", + [ T_HELP_LOGIC_HIGH_CHAR ] = "set character used for high in graph (ex:*)", + [ T_HELP_CMD_CLS ] = "Clear and reset the terminal", + [ T_HELP_SECTION_TOOLS ] = "tools and utilities", + [ T_HELP_CMD_LOGIC ] = "Logic analyzer", + [ T_HELP_CMD_SMPS ] = "Switch mode power supply (plank required)", + [ T_INFRARED_CMD_TEST ] = "Test IR RX/TX Toy plank", + [ T_UART_CMD_TEST ] = "Test Dual RS232 plank", + [ T_SPI_CMD_SNIFF ] = "SPI sniffer", + [ T_HELP_UART_GLITCH ] = "UART glitcher", + [ T_HELP_UART_GLITCH_CONFIG ] = "Configure UART glitch parameters", + +}; diff --git a/src/translation/zh-cn.h b/src/translation/zh-cn.h index ebbe98cc..900e799d 100644 --- a/src/translation/zh-cn.h +++ b/src/translation/zh-cn.h @@ -1,478 +1,505 @@ -#pragma once - -// NOTE: GENERATED FILE -- DO NOT EDIT DIRECTLY -// This file is auto-generated by `json2h.py` -// Entirely new strings should be added to `en-us.h` -// Translations should be added to the language code's `.json` file - -// en-us is our base language translation file -#include "translation/base.h" -static char const * const zh_cn[T_LAST_ITEM_ALWAYS_AT_THE_END]={ - [ T_ON ] = "已开启", - [ T_OFF ] = "已关闭", - [ T_GND ] = "GND", - [ T_INPUT ] = "INPUT", - [ T_OUTPUT ] = "OUTPUT", - [ T_EXIT ] = "Exit", - [ T_LOADED ] = "Loaded", - [ T_SAVED ] = "Saved", - [ T_HZ ] = "Hz", - [ T_KHZ ] = "kHz", - [ T_MHZ ] = "MHz", - [ T_SPEED ] = "Speed", - [ T_WARN_VOUT_VREF_LOW ] = "VOUT/VREF pin is not powered. Use W to enable power, or attach an external supply", - [ T_USE_PREVIOUS_SETTINGS ] = "Use previous settings?", - [ T_MODE_ERROR_NO_EFFECT ] = "错误:该指令在当前模式无效", - [ T_MODE_ERROR_NO_EFFECT_HIZ ] = "该指令在当前HiZ模式无效,请按m键选择模式", - [ T_MODE_NO_HELP_AVAILABLE ] = "没有可用的帮助", - [ T_PRESS_ANY_KEY_TO_EXIT ] = "按任意键退出页面", - [ T_PRESS_ANY_KEY ] = "Press any key", - [ T_PRESS_BUTTON ] = "Press button", - [ T_PRESS_X_TO_EXIT ] = "Press 'x' to exit", - [ T_MODE_MODE_SELECTION ] = "Mode selection", - [ T_MODE_MODE ] = "模式", - [ T_MODE_NUMBER_DISPLAY_FORMAT ] = "Number display format", - [ T_MODE_INVALID_OPTION ] = "该选择无效!", - [ T_MODE_CHOOSE_AVAILABLE_PIN ] = "请选择可用的pin:", - [ T_MODE_ALL_PINS_IN_USE ] = "所有pins都被选用了!", - [ T_MODE_PULLUP_RESISTORS ] = "上拉电阻", - [ T_MODE_POWER_SUPPLY ] = "电源", - [ T_MODE_DISABLED ] = "不可用", - [ T_MODE_DISPLAY ] = "Display", - [ T_MODE_DISPLAY_SELECTION ] = "Display selection", - [ T_MODE_ENABLED ] = "可用", - [ T_MODE_BITORDER ] = "Bitorder", - [ T_MODE_BITORDER_MSB ] = "MSB", - [ T_MODE_BITORDER_LSB ] = "LSB", - [ T_MODE_DELAY ] = "Delay", - [ T_MODE_US ] = "us", - [ T_MODE_MS ] = "ms", - [ T_MODE_ADC_VOLTAGE ] = "Volts on", - [ T_MODE_ERROR_PARSING_MACRO ] = "Error parsing macro", - [ T_MODE_ERROR_NO_MACROS_AVAILABLE ] = "No macros available", - [ T_MODE_ERROR_MACRO_NOT_DEFINED ] = "Macro not defined", - [ T_MODE_TICK_CLOCK ] = "Tick clock", - [ T_MODE_SET_CLK ] = "Set clock", - [ T_MODE_SET_DAT ] = "Set data", - [ T_MODE_READ_DAT ] = "Read data", - [ T_MODE_NO_VOUT_VREF_ERROR ] = "No voltage detected on VOUT/VREF pin", - [ T_MODE_NO_VOUT_VREF_HINT ] = "Hint: Use W to enable power, or attach an external supply", - [ T_MODE_NO_PULLUP_ERROR ] = "Pull-up not detected on IO pin", - [ T_MODE_NO_PULLUP_HINT ] = "Hint: Use P to enable pull-up resistors, or use external pull-up", - [ T_MODE_PWM_GENERATE_FREQUENCY ] = "生成频率", - [ T_MODE_FREQ_MEASURE_FREQUENCY ] = "频率测试", - [ T_MODE_FREQ_FREQUENCY ] = "频率", - [ T_MODE_FREQ_DUTY_CYCLE ] = "占空比/工作周期", - [ T_PSU_DAC_ERROR ] = "PSU DAC error, please run self-test", - [ T_PSU_CURRENT_LIMIT_ERROR ] = "Current over limit, power supply disabled", - [ T_PSU_SHORT_ERROR ] = "Potential short circuit, power supply disabled", - [ T_PSU_ALREADY_DISABLED_ERROR ] = "Power supply already disabled", - [ T_SYNTAX_EXCEEDS_MAX_SLOTS ] = "Result exceeds available space (%d slots)", - [ T_HWSPI_SPEED_MENU ] = "SPI通信速率", - [ T_HWSPI_SPEED_MENU_1 ] = "1 to 62500kHz", - [ T_HWSPI_SPEED_PROMPT ] = "kHz (100kHz*)", - [ T_HWSPI_BITS_MENU ] = "数据位", - [ T_HWSPI_BITS_MENU_1 ] = "4 to 8 bits", - [ T_HWSPI_BITS_PROMPT ] = "4 到 8 (8*)", - [ T_HWSPI_CLOCK_POLARITY_MENU ] = "时钟极性\r\n 1. 低怠速*\r\n 2. 高怠速", - [ T_HWSPI_CLOCK_POLARITY_MENU_1 ] = "Idle LOW", - [ T_HWSPI_CLOCK_POLARITY_MENU_2 ] = "Idle HIGH", - [ T_HWSPI_CLOCK_POLARITY_PROMPT ] = "极性", - [ T_HWSPI_CLOCK_PHASE_MENU ] = "时钟相位\r\n 1. LEADING edge\r\n 2. TRAILING edge*", - [ T_HWSPI_CLOCK_PHASE_MENU_1 ] = "LEADING edge", - [ T_HWSPI_CLOCK_PHASE_MENU_2 ] = "TRAILING edge", - [ T_HWSPI_CLOCK_PHASE_PROMPT ] = "Phase", - [ T_HWSPI_CS_IDLE_MENU ] = "Chip select\r\n 1. Active HIGH (CS)\r\n 2. Active LOW (!CS)*", - [ T_HWSPI_CS_IDLE_MENU_1 ] = "Active HIGH (CS)", - [ T_HWSPI_CS_IDLE_MENU_2 ] = "Active LOW (/CS)", - [ T_HWSPI_CS_IDLE_PROMPT ] = "片选/芯片选择", - [ T_HWSPI_ACTUAL_SPEED_KHZ ] = "实际速度", - [ T_HWSPI_CS_SELECT ] = "芯片选择 Select (%d)", - [ T_HWSPI_CS_DESELECT ] = "芯片选择 Deselect (%d)", - [ T_UART_SPEED_MENU ] = "UART 速", - [ T_UART_SPEED_MENU_1 ] = "1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 etc", - [ T_UART_SPEED_PROMPT ] = "Baud (115200*)", - [ T_UART_PARITY_MENU ] = "Parity\r\n 1. None*\r\n 2. Even\r\n 3. Odd", - [ T_UART_PARITY_MENU_1 ] = "None", - [ T_UART_PARITY_MENU_2 ] = "Even", - [ T_UART_PARITY_MENU_3 ] = "Odd", - [ T_UART_PARITY_PROMPT ] = "Parity", - [ T_UART_DATA_BITS_MENU ] = "Data bits", - [ T_UART_DATA_BITS_MENU_1 ] = "5 to 8 bits", - [ T_UART_DATA_BITS_PROMPT ] = "5 to 8 bits (8*)", - [ T_UART_STOP_BITS_MENU ] = "Stop bits\r\n 1. 1*\r\n 2. 2", - [ T_UART_STOP_BITS_MENU_1 ] = "1", - [ T_UART_STOP_BITS_MENU_2 ] = "2", - [ T_UART_STOP_BITS_PROMPT ] = "Bits", - [ T_UART_BLOCKING_MENU ] = "使用屏蔽功能?Use blocking functions?\r\n 1. No\r\n 2. Yes", - [ T_UART_BLOCKING_MENU_1 ] = "No", - [ T_UART_BLOCKING_MENU_2 ] = "Yes", - [ T_UART_BLOCKING_PROMPT ] = "屏蔽Block", - [ T_UART_FLOW_CONTROL_MENU ] = "Hardware flow control", - [ T_UART_FLOW_CONTROL_MENU_1 ] = "None", - [ T_UART_FLOW_CONTROL_MENU_2 ] = "RTS/CTS", - [ T_UART_FLOW_CONTROL_PROMPT ] = "Flow control", - [ T_UART_INVERT_MENU ] = "Signal inversion", - [ T_UART_INVERT_MENU_1 ] = "Non-inverted (Standard)", - [ T_UART_INVERT_MENU_2 ] = "Inverted", - [ T_UART_INVERT_PROMPT ] = "Invert signals", - [ T_UART_ACTUAL_SPEED_BAUD ] = "实际速度", - [ T_UART_BAUD ] = "baud波特率", - [ T_UART_OPEN ] = "UART OPEN", - [ T_UART_OPEN_WITH_READ ] = "UART OPEN (ASYNC READ)", - [ T_UART_CLOSE ] = "UART CLOSE", - [ T_UART_NO_DATA_READ ] = "No data to read", - [ T_UART_NO_DATA_TIMEOUT ] = "Data read timeout", - [ T_HWI2C_SPEED_MENU ] = "I2C speed", - [ T_HWI2C_SPEED_MENU_1 ] = "1kHz to 1000kHz", - [ T_HWI2C_SPEED_PROMPT ] = "kHz (400kHz*)", - [ T_HWI2C_DATA_BITS_MENU ] = "Data bits\r\n 1. 8*\r\n 2. 10", - [ T_HWI2C_DATA_BITS_MENU_1 ] = "8", - [ T_HWI2C_DATA_BITS_MENU_2 ] = "10", - [ T_HWI2C_DATA_BITS_PROMPT ] = "Bits", - [ T_HWI2C_CLOCK_STRETCH_MENU ] = "Clock stretching", - [ T_HWI2C_CLOCK_STRETCH_PROMPT ] = "(OFF)", - [ T_HWI2C_START ] = "I2C START", - [ T_HWI2C_REPEATED_START ] = "I2C REPEATED START", - [ T_HWI2C_STOP ] = "I2C STOP", - [ T_HWI2C_ACK ] = "ACK", - [ T_HWI2C_NACK ] = "NACK", - [ T_HWI2C_NO_PULLUP_DETECTED ] = "no pull-up detected", - [ T_HWI2C_NO_VOUT_DETECTED ] = "no power detected", - [ T_HWI2C_TIMEOUT ] = "I2C timeout", - [ T_HWI2C_I2C_ERROR ] = "I2C bus error", - [ T_HW2WIRE_SPEED_MENU ] = "2WIRE speed", - [ T_HW2WIRE_RST_LOW ] = "RST LOW", - [ T_HW2WIRE_RST_HIGH ] = "RST HIGH", - [ T_HW3WIRE_SPEED_MENU_1 ] = "1 to 3900kHz", - [ T_HWLED_DEVICE_MENU ] = "LED type\r\n 1. WS2812/SK6812/'NeoPixel' (single wire interface)* \r\n 2. APA102/SK9822 (clock and data interface)", - [ T_HWLED_DEVICE_MENU_1 ] = "WS2812/SK6812/'NeoPixel' (single wire interface)", - [ T_HWLED_DEVICE_MENU_2 ] = "APA102/SK9822 (clock and data interface)", - [ T_HWLED_DEVICE_MENU_3 ] = "Onboard LEDs (18 SK6812s)", - [ T_HWLED_DEVICE_PROMPT ] = "Type", - [ T_HWLED_NUM_LEDS_MENU ] = "Number of LEDs in the strip", - [ T_HWLED_NUM_LEDS_MENU_1 ] = "1 to 10000", - [ T_HWLED_NUM_LEDS_PROMPT ] = "1 to 10000 (1*)", - [ T_HWLED_RESET ] = "RESET", - [ T_HWLED_FRAME_START ] = "START FRAME (0x00000000)", - [ T_HWLED_FRAME_STOP ] = "STOP FRAME (0xFFFFFFFF)", - [ T_HW1WIRE_RESET ] = "1-Wire RESET", - [ T_HW1WIRE_PRESENCE_DETECT ] = "Presence detected", - [ T_HW1WIRE_NO_DEVICE ] = "No device detected", - [ T_IR_RX_SENSOR_MENU ] = "RX sensor", - [ T_IR_RX_SENSOR_MENU_LEARNER ] = "20-60kHz learner", - [ T_IR_RX_SENSOR_MENU_BARRIER ] = "38kHz barrier", - [ T_IR_RX_SENSOR_MENU_38K_DEMOD ] = "36-40kHz demodulator", - [ T_IR_RX_SENSOR_MENU_56K_DEMOD ] = "56kHz demodulator", - [ T_IR_TX_SPEED_MENU ] = "TX modulation", - [ T_IR_TX_SPEED_MENU_1 ] = "20kHz to 60kHz", - [ T_IR_TX_SPEED_PROMPT ] = "kHz (%s%dkHz*%s)", - [ T_IR_PROTOCOL_MENU ] = "Protocol", - [ T_IR_PROTOCOL_MENU_RC5 ] = "RC5", - [ T_IR_PROTOCOL_MENU_NEC ] = "NEC", - [ T_CMDLN_INVALID_COMMAND ] = "Invalid command: %s. Type ? for help.", - [ T_CMDLN_NO_HELP ] = "Help not currently available for this command.", - [ T_CMDLN_LS ] = "ls - list files in the current location or location.", - [ T_CMDLN_CD ] = "cd - change to location.", - [ T_CMDLN_MKDIR ] = "mkdir - create .", - [ T_CMDLN_RM ] = "rm - remove file or (empty) directory.", - [ T_CMDLN_CAT ] = "cat - print the contents of .", - [ T_CMDLN_MODE ] = "m - change protocol mode. m to skip the menu.", - [ T_CMDLN_PSU_EN ] = "W - enable onboard power supply, show configuration menu.", - [ T_CMDLN_RESET ] = "# - reset and restart the Bus Pirate.", - [ T_CMDLN_BOOTLOAD ] = "$ - reset and enter bootloader mode for updates.", - [ T_CMDLN_INT_FORMAT ] = "= - convert to BIN/DEC/HEX/ASCII.", - [ T_CMDLN_INT_INVERSE ] = "| - inverse the bits in .", - [ T_CMDLN_HELP ] = "? - show command and syntax help.", - [ T_CMDLN_CONFIG_MENU ] = "c - open Bus Pirate configuration menu.", - [ T_CMDLN_FREQ_ONE ] = "f - measure frequency on once.", - [ T_CMDLN_FREQ_CONT ] = "F - measure frequency on continuously.", - [ T_CMDLN_PWM_CONFIG ] = "G - configure frequency generator (PWM) on an available IOx pin.", - [ T_CMDLN_PWM_DIS ] = "g - disable frequency generator (PWM) on pin .", - [ T_CMDLN_HELP_MODE ] = "h - show mode specific help screen.", - [ T_CMDLN_HELP_DISPLAY ] = "hd - show display mode specific help screen.", - [ T_CMDLN_INFO ] = "i - show Bus Pirate info and status screen.", - [ T_CMDLN_BITORDER_MSB ] = "l - set Most Significant Bit output order.", - [ T_CMDLN_BITORDER_LSB ] = "L - set Least Significant Bit ouput order.", - [ T_CMDLN_DISPLAY_FORMAT ] = "o - configure number output display format.", - [ T_CMDLN_PULLUPS_EN ] = "P - enable onboard pull-up resistors.", - [ T_CMDLN_PULLUPS_DIS ] = "p - disable onboard pull-up resistors.", - [ T_CMDLN_PSU_DIS ] = "w - disable onboard power supply.", - [ T_CMDLN_ADC_CONT ] = "V - continuous voltage measurement on pin . Omit the pin number to measure voltage on all pins.", - [ T_CMDLN_ADC_ONE ] = "v - single voltage measurement on pin . Omit the pin number to measure voltage on all pins once.", - [ T_CMDLN_SELFTEST ] = "~ - perform a factory self-test. Disconnect any attached devices and change to HiZ mode before starting the test.", - [ T_CMDLN_AUX_IN ] = "@ - make pin input, read the pin state.", - [ T_CMDLN_AUX_LOW ] = "a - make pin output and low.", - [ T_CMDLN_AUX_HIGH ] = "A - make pin output and high.", - [ T_CMDLN_DUMP ] = "dump - dump contents of flash to . Warning: currently a prototype that only works with 25LC020 in SPI mode.", - [ T_CMDLN_LOAD ] = "load - load contents of to flash . Warning: currently a prototype that only works with 25LC020 in SPI mode.", - [ T_CMDLN_DISPLAY ] = "d - change display mode, show selection menu.", - [ T_CMDLN_LOGIC ] = "logic - logic analyzer. 1kHz-62500kHz, 0:7, 0:1.", - [ T_CMDLN_HEX ] = "hex - print contents of in HEX", - [ T_HELP_TITLE ] = "General Commands\t\t\tProtocol Interaction", - [ T_HELP_GENERAL_COMMANDS ] = "General Commands", - [ T_HELP_BUS_SYNTAX ] = "Bus Syntax", - [ T_HELP_DISK_COMMANDS ] = "Disk Commands", - [ T_HELP_BLANK ] = "\t\t\t", - [ T_HELP_SECTION_IO ] = "work with pins, input, output measurement", - [ T_HELP_SECTION_CAPTURE ] = "measure analog and digital signals", - [ T_HELP_SECTION_CONFIGURE ] = "configure the terminal, LEDs, display and mode", - [ T_HELP_SECTION_SYSTEM ] = "restart, firmware updates and diagnostic", - [ T_HELP_SECTION_FILES ] = "list files and navigate the storage", - [ T_HELP_SECTION_PROGRAMS ] = "useful commands and mini-programs", - [ T_HELP_SECTION_MODE ] = "enter a mode to use protocols", - [ T_HELP_SECTION_SYNTAX ] = "send and receive data in modes using bus syntax", - [ T_HELP_SECTION_HELP ] = "get more help", - [ T_HELP_GREATER_THAN ] = "Run bus syntax", - [ T_HELP_SYNTAX_ADC ] = "Measure volts on IO.x", - [ T_HELP_CMD_LS ] = "List files", - [ T_HELP_CMD_CD ] = "Change directory", - [ T_HELP_CMD_MKDIR ] = "Make directory", - [ T_HELP_CMD_RM ] = "Remove file/directory", - [ T_HELP_CMD_PAUSE ] = "Pause for user input, optional exit", - [ T_HELP_CMD_FORMAT ] = "Format storage disk (FAT16)", - [ T_HELP_CMD_CAT ] = "Print file contents as text", - [ T_HELP_CMD_HEX ] = "Print file contents in HEX", - [ T_HELP_CAPTURE_SCOPE ] = "Oscilloscope interface", - [ T_HELP_CAPTURE_LA ] = "Logic analyzer interface", - [ T_HELP_CMD_FLASH ] = "Erase, write, read and verify SPI flash chips", - [ T_HELP_CMD_LABEL ] = "Get or set the disk label", - [ T_HELP_CMD_IMAGE ] = "Write a bitmap image on the LCD", - [ T_HELP_CMD_DUMP ] = "Repeat read command, save ouput to storage", - [ T_HELP_1_2 ] = "Converts X/reverse X\t", - [ T_HELP_1_3 ] = "自检测试\t\t", - [ T_HELP_1_4 ] = "重启Bus Pirate\t", - [ T_HELP_1_5 ] = "切换到系统启动加载器\t", - [ T_HELP_1_6 ] = "Delay 1 us/ms\t\t", - [ T_HELP_1_7 ] = "AUXPIN (low/HI/READ)\t", - [ T_HELP_COMMAND_AUX ] = "Set IO x state (low/HI/READ)", - [ T_HELP_COMMAND_DISPLAY ] = "Change screen display mode", - [ T_HELP_1_9 ] = "AUX assignment (aux/CS)\t", - [ T_HELP_1_22 ] = "Show volts on IOx (once/CONT)", - [ T_HELP_1_10 ] = "Show volts all IOs (once/CONT)", - [ T_HELP_1_11 ] = "Measure freq on IOx (once/CONT)", - [ T_HELP_1_23 ] = "Monitor freq (off/ON)\t", - [ T_HELP_1_12 ] = "生成频率(关/开)", - [ T_HELP_HELP_GENERAL ] = "Global, mode and display help. Try '?', '? mode' and '? display'", - [ T_HELP_HELP_DISPLAY ] = "Help with a display mode such as the scope", - [ T_HELP_HELP_COMMAND ] = "Add -h for command help: ls -h", - [ T_HELP_1_14 ] = "版本详情/statusinfo\t", - [ T_HELP_1_15 ] = "Bitorder (msb/LSB)\t", - [ T_HELP_1_16 ] = "切换模式\t\t", - [ T_HELP_1_17 ] = "Set number display format", - [ T_HELP_1_18 ] = "上拉电阻(关/开)", - [ T_HELP_1_19 ] = "-\t\t\t", - [ T_HELP_1_20 ] = "Show volts/states\t", - [ T_HELP_1_21 ] = "电源(关/开)\t", - [ T_HELP_2_1 ] = "Mode macro x/list all", - [ T_HELP_2_3 ] = "Start", - [ T_HELP_2_4 ] = "Stop", - [ T_HELP_2_7 ] = "Send string", - [ T_HELP_2_8 ] = "", - [ T_HELP_2_9 ] = "", - [ T_HELP_2_10 ] = "Send value", - [ T_HELP_2_11 ] = "Read", - [ T_HELP_SYN_CLOCK_HIGH ] = "Clock high", - [ T_HELP_SYN_CLOCK_LOW ] = "Clock low", - [ T_HELP_SYN_CLOCK_TICK ] = "Clock tick", - [ T_HELP_SYN_DATA_HIGH ] = "Data high", - [ T_HELP_SYN_DATA_LOW ] = "Data low", - [ T_HELP_SYN_DATA_READ ] = "Read data pin state", - [ T_HELP_2_18 ] = "Bit read", - [ T_HELP_2_19 ] = "Repeat e.g. r:10", - [ T_HELP_2_20 ] = "Bits to read/write e.g. 0x55.2", - [ T_HELP_2_21 ] = "User macro x/list all", - [ T_HELP_2_22 ] = "User macro assign x", - [ T_HELP_HINT ] = "Chain multiple commands with ; || &&.", - [ T_HELP_FLASH ] = "read, write and erase flash chips using SFDP info if available", - [ T_HELP_FLASH_ERASE ] = "Erase flash chip. flash erase [-v(erify)]", - [ T_HELP_FLASH_WRITE ] = "Write file to flash chip. flash write -f [-e(rase)] [-v(erify)]", - [ T_HELP_FLASH_READ ] = "Read flash chip to file. flash read -f ", - [ T_HELP_FLASH_VERIFY ] = "Verify flash chip against file. flash verify -f ", - [ T_HELP_FLASH_TEST ] = "Erase and write full chip with dummy data, verify. flash test", - [ T_HELP_FLASH_PROBE ] = "Probe flash chip for ID and SFDP info. flash probe", - [ T_HELP_FLASH_INIT ] = "Reset and initialize flash chip. Default if no options given. flash", - [ T_HELP_FLASH_FILE_FLAG ] = "File flag. File to write, read or verify. flash verify -f ", - [ T_HELP_FLASH_ERASE_FLAG ] = "Erase flag. Add erase before write. flash write -f -e", - [ T_HELP_FLASH_VERIFY_FLAG ] = "Verify flag. Add verify after write or erase. flash write -f -v", - [ T_INFO_FIRMWARE ] = "固件", - [ T_INFO_BOOTLOADER ] = "系统启动加载器", - [ T_INFO_WITH ] = "with", - [ T_INFO_RAM ] = "RAM随机储存器", - [ T_INFO_FLASH ] = "FLASH", - [ T_INFO_SN ] = "S/N序列号", - [ T_INFO_WEBSITE ] = "https://BusPirate.com/", - [ T_INFO_TF_CARD ] = "TF卡", - [ T_INFO_FILE_SYSTEM ] = "文件系统", - [ T_NOT_DETECTED ] = "未侦察到", - [ T_INFO_AVAILABLE_MODES ] = "可选用的模式", - [ T_INFO_CURRENT_MODE ] = "主动模式", - [ T_INFO_POWER_SUPPLY ] = "电源", - [ T_INFO_CURRENT_LIMIT ] = "限制电流", - [ T_INFO_PULLUP_RESISTORS ] = "上拉电阻", - [ T_INFO_FREQUENCY_GENERATORS ] = "频率生成器", - [ T_INFO_DISPLAY_FORMAT ] = "显示格式", - [ T_INFO_DATA_FORMAT ] = "数据格式", - [ T_INFO_BITS ] = "比特位", - [ T_INFO_BITORDER ] = "比特位次序", - [ T_CONFIG_FILE ] = "Configuration file", - [ T_CONFIG_CONFIGURATION_OPTIONS ] = "Configuration options", - [ T_CONFIG_LANGUAGE ] = "Language / Jezik / Lingua / 语言", - [ T_CONFIG_ANSI_COLOR_MODE ] = "ANSI color mode", - [ T_CONFIG_ANSI_COLOR_FULLCOLOR ] = "ANSI Full-Color (16M colors)", - [ T_CONFIG_ANSI_COLOR_256 ] = "ANSI-256 color", - [ T_CONFIG_ANSI_TOOLBAR_MODE ] = "ANSI toolbar mode", - [ T_CONFIG_LANGUAGE_ENGLISH ] = "Language - English (US)", - [ T_CONFIG_LANGUAGE_CHINESE ] = "语言 - 中文(简体)", - [ T_CONFIG_LANGUAGE_POLISH ] = "Język - polski (Polska)", - [ T_CONFIG_LANGUAGE_BOSNIAN ] = "Jezik - bosanski (latinica, Bosna i Hercegovina)", - [ T_CONFIG_LANGUAGE_ITALIAN ] = "Lingua - italiano (Italia)", - [ T_CONFIG_DISABLE ] = "Disable", - [ T_CONFIG_ENABLE ] = "Enable", - [ T_CONFIG_SCREENSAVER ] = "LCD screensaver", - [ T_CONFIG_SCREENSAVER_5 ] = "5 minutes", - [ T_CONFIG_SCREENSAVER_10 ] = "10 minutes", - [ T_CONFIG_SCREENSAVER_15 ] = "15 minutes", - [ T_CONFIG_LEDS_EFFECT ] = "LED effect", - [ T_CONFIG_LEDS_EFFECT_SOLID ] = "Solid", - [ T_CONFIG_LEDS_EFFECT_ANGLEWIPE ] = "Angle wipe", - [ T_CONFIG_LEDS_EFFECT_CENTERWIPE ] = "Center wipe", - [ T_CONFIG_LEDS_EFFECT_CLOCKWISEWIPE ] = "Clockwise wipe", - [ T_CONFIG_LEDS_EFFECT_TOPDOWNWIPE ] = "Top side wipe", - [ T_CONFIG_LEDS_EFFECT_SCANNER ] = "Scanner", - [ T_CONFIG_LEDS_EFFECT_GENTLE_GLOW ] = "Gentle glow", - [ T_CONFIG_LEDS_EFFECT_CYCLE ] = "Cycle", - [ T_CONFIG_LEDS_COLOR ] = "LED color", - [ T_CONFIG_LEDS_COLOR_RAINBOW ] = "Rainbow", - [ T_CONFIG_LEDS_COLOR_RED ] = "Red", - [ T_CONFIG_LEDS_COLOR_ORANGE ] = "Orange", - [ T_CONFIG_LEDS_COLOR_YELLOW ] = "Yellow", - [ T_CONFIG_LEDS_COLOR_GREEN ] = "Green", - [ T_CONFIG_LEDS_COLOR_BLUE ] = "Blue", - [ T_CONFIG_LEDS_COLOR_PURPLE ] = "Purple", - [ T_CONFIG_LEDS_COLOR_PINK ] = "Pink", - [ T_CONFIG_LEDS_COLOR_WHITE ] = "White", - [ T_CONFIG_LEDS_BRIGHTNESS ] = "LED brightness", - [ T_CONFIG_LEDS_BRIGHTNESS_10 ] = "10%", - [ T_CONFIG_LEDS_BRIGHTNESS_20 ] = "20%", - [ T_CONFIG_LEDS_BRIGHTNESS_30 ] = "30%", - [ T_CONFIG_LEDS_BRIGHTNESS_40 ] = "40%", - [ T_CONFIG_LEDS_BRIGHTNESS_50 ] = "50%", - [ T_CONFIG_LEDS_BRIGHTNESS_100 ] = "100% ***WARNING: will damage USB port without external power supply***", - [ T_CONFIG_BINMODE_SELECT ] = "Select binary mode", - [ T_HELP_DUMMY_COMMANDS ] = "Dummy commands valid in position 1", - [ T_HELP_DUMMY_INIT ] = "Dummy init command", - [ T_HELP_DUMMY_TEST ] = "Dummy test command", - [ T_HELP_DUMMY_FLAGS ] = "Dummy flags", - [ T_HELP_DUMMY_B_FLAG ] = "-b require Bus Pirate button to be pushed. Takes no parameters", - [ T_HELP_DUMMY_I_FLAG ] = "-i . Requires integer number parameter", - [ T_HELP_DUMMY_FILE_FLAG ] = "-f . Create/write/read . Requires file string parameter", - [ T_HELP_SLE4442 ] = "SLE4442 smart card interface", - [ T_HELP_SLE4442_INIT ] = "Initialize card with ISO7816-3 ATR. Default action", - [ T_HELP_SLE4442_DUMP ] = "Display main, security and protect memory", - [ T_HELP_SLE4442_UNLOCK ] = "Unlock card with Programmable Security Code (PSC)", - [ T_HELP_SLE4442_WRITE ] = "Write data to card (requires unlock)", - [ T_HELP_SLE4442_ERASE ] = "Erase data from range 0x32-0x255 (requires unlock)", - [ T_HELP_SLE4442_PSC ] = "Change Programmable Security Code (PSC)", - [ T_HELP_SLE4442_ADDRESS_FLAG ] = "Write address flag", - [ T_HELP_SLE4442_VALUE_FLAG ] = "Write value flag", - [ T_HELP_SLE4442_CURRENT_PSC_FLAG ] = "Current Programmable Security Code (PSC) flag", - [ T_HELP_SLE4442_NEW_PSC_FLAG ] = "New Programmable Security Code (PSC) flag", - [ T_HELP_SLE4442_FILE_FLAG ] = "Dump file name flag", - [ T_HELP_GCMD_W ] = "onboard power supply with programmable fuse", - [ T_HELP_GCMD_W_DISABLE ] = "Disable onboard power supply", - [ T_HELP_GCMD_W_ENABLE ] = "Enable onboard power supply, show configuration menu", - [ T_HELP_GCMD_W_VOLTS ] = "Voltage, 0.8-5.0volts", - [ T_HELP_GCMD_W_CURRENT_LIMIT ] = "Current limit, 0-500mA", - [ T_HELP_GCMD_P ] = "onboard pull-up resistors", - [ T_HELP_HELP ] = "help for Bus Pirate commands and modes", - [ T_HELP_SYS_COMMAND ] = "Commands to access the help system", - [ T_HELP_SYS_DISPLAY ] = "Show display mode help (such as oscilloscope)", - [ T_HELP_SYS_MODE ] = "Show mode specific commands and help", - [ T_HELP_SYS_HELP ] = "How to use the help system", - [ T_HELP_GCMD_SELFTEST ] = "run a complete system self-test", - [ T_HELP_GCMD_SELFTEST_CMD ] = "Run self-test", - [ T_HELP_GCMD_SELFTEST_H_FLAG ] = "Self-test help", - [ T_HELP_AUXIO ] = "set IO pin state, read input pins", - [ T_HELP_AUXIO_LOW ] = "Output, low/0. Reserves pin for output", - [ T_HELP_AUXIO_HIGH ] = "Output, high/1. Reserves pin for output", - [ T_HELP_AUXIO_INPUT ] = "Input, read state. Releases reserved pin", - [ T_HELP_AUXIO_IO ] = "IO pin number, 0-7", - [ T_HELP_DISK_HEX ] = "Print file contents in HEX format", - [ T_HELP_DISK_HEX_FILE ] = "Name of file in 8.3 format (example1.bin)", - [ T_HELP_DISK_HEX_ADDR ] = "Show address offset", - [ T_HELP_DISK_HEX_ASCII ] = "Show also ASCII dump", - [ T_HELP_DISK_HEX_SIZE ] = "Set line size in bytes", - [ T_HELP_DISK_HEX_OFF ] = "Set file read start offset in bytes", - [ T_HELP_DISK_HEX_PAGER_OFF ] = "Disable the pager for dumping", - [ T_HELP_DISK_CAT ] = "print file contents as text", - [ T_HELP_DISK_CAT_FILE ] = "Name of file in 8.3 format (example1.txt)", - [ T_HELP_DISK_MKDIR ] = "create directory on internal storage", - [ T_HELP_DISK_MKDIR_DIR ] = "Directory name, 8 characters max", - [ T_HELP_DISK_CD ] = "change to a directory on local storage", - [ T_HELP_DISK_CD_DIR ] = "Directory name, 8 characters max", - [ T_HELP_DISK_RM ] = "delete file or directory on local storage", - [ T_HELP_DISK_RM_FILE ] = "Name of file to delete, 8.3 format", - [ T_HELP_DISK_RM_DIR ] = "Name of directory to delete, 8 characters max", - [ T_HELP_DISK_LS ] = "list files and directories on local storage", - [ T_HELP_DISK_LS_DIR ] = "List contents of this directory, optional", - [ T_HELP_DISK_FORMAT ] = "erase and format internal storage in FAT16 format", - [ T_HELP_DISK_FORMAT_CMD ] = "All data will be lost, answer 'y' twice to continue", - [ T_HELP_DISK_LABEL ] = "get or set the disk label", - [ T_HELP_DISK_LABEL_GET ] = "returns the current label of the disk", - [ T_HELP_DISK_LABEL_SET ] = "sets the current label of the disk", - [ T_HELP_VADC ] = "measure voltage on IO pins", - [ T_HELP_VADC_SINGLE ] = "Single measurement", - [ T_HELP_VADC_CONTINUOUS ] = "Continuous measurement", - [ T_HELP_VADC_IO ] = "IO pin number, 0-7", - [ T_HELP_I2C_SCAN ] = "scan I2C addresses, with optional part number", - [ T_HELP_I2C_SCAN_VERBOSE ] = "Verbose mode, print potential part numbers", - [ T_HELP_FLAG ] = "Get additional help", - [ T_HELP_I2C_SI7021 ] = "Read temperature and humidity from SI7021/HTU21/SHT21 sensor", - [ T_HELP_I2C_MS5611 ] = "Read temperature and pressure from MS5611 sensor", - [ T_HELP_I2C_TSL2561 ] = "Read light intensity (LUX) from TSL2561 sensor", - [ T_HELP_1WIRE_SCAN ] = "scan for 1-Wire devices", - [ T_HELP_1WIRE_DS18B20 ] = "Query DS18B20 temperature sensor", - [ T_HELP_UART_BRIDGE ] = "open UART with raw data IO, usb to serial bridge mode", - [ T_HELP_UART_BRIDGE_EXIT ] = "UART bridge. Press Bus Pirate button to exit.", - [ T_HELP_UART_BRIDGE_TOOLBAR ] = "ENABLE toolbar while bridge is active (default: disabled)", - [ T_HELP_UART_BRIDGE_SUPPRESS_LOCAL_ECHO ] = "Suppress local echo, don't echo back sent data", - [ T_HELP_UART_NMEA ] = "parse NMEA GPS data", - [ T_HELP_SECTION_SCRIPT ] = "run scripts, macros and assign button functions", - [ T_HELP_CMD_SCRIPT ] = "Run script files, automation", - [ T_HELP_CMD_BUTTON ] = "Assign button functions", - [ T_HELP_CMD_MACRO ] = "Run macros, load a macro file", - [ T_HELP_CMD_TUTORIAL ] = "Run tutorial files", - [ T_HELP_CMD_PAUSE_KEY ] = "Press any key to continue (default)", - [ T_HELP_CMD_PAUSE_BUTTON ] = "Press the Bus Pirate button to continue", - [ T_HELP_CMD_PAUSE_EXIT ] = "'x' key to exit (e.g. script mode)", - [ T_HELP_BUTTON ] = "Assign script file to button press", - [ T_HELP_BUTTON_SHORT ] = "Assign script file to short button press", - [ T_HELP_BUTTON_LONG ] = "Assign script file to long button press", - [ T_HELP_BUTTON_FILE ] = "Script file to assign to button press", - [ T_HELP_BUTTON_HIDE ] = "Hide comments", - [ T_HELP_BUTTON_EXIT ] = "Exit script on error", - [ T_HELP_LOGIC ] = "logic analyzer control", - [ T_HELP_LOGIC_START ] = "start logic analyzer", - [ T_HELP_LOGIC_STOP ] = "stop logic analyzer", - [ T_HELP_LOGIC_HIDE ] = "hide logic graph", - [ T_HELP_LOGIC_SHOW ] = "show logic graph", - [ T_HELP_LOGIC_NAV ] = "navigate logic graph with arrow keys, x to exit", - [ T_HELP_LOGIC_INFO ] = "show configuration info", - [ T_HELP_LOGIC_FREQUENCY ] = "set sample frequency in Hz", - [ T_HELP_LOGIC_OVERSAMPLE ] = "set oversample rate, multiplies the sample frequency", - [ T_HELP_LOGIC_DEBUG ] = "set debug level: 0-2", - [ T_HELP_LOGIC_SAMPLES ] = "set number of samples", - [ T_HELP_LOGIC_TRIGGER_PIN ] = "set trigger pin, 0-7", - [ T_HELP_LOGIC_TRIGGER_LEVEL ] = "set trigger level, 0-1", - [ T_HELP_LOGIC_LOW_CHAR ] = "set character used for low in graph (ex:_)", - [ T_HELP_LOGIC_HIGH_CHAR ] = "set character used for high in graph (ex:*)", - [ T_HELP_CMD_CLS ] = "Clear and reset the terminal", - [ T_HELP_SECTION_TOOLS ] = "tools and utilities", - [ T_HELP_CMD_LOGIC ] = "Logic analyzer", - [ T_HELP_CMD_SMPS ] = "Switch mode power supply (plank required)", - [ T_INFRARED_CMD_TEST ] = "Test IR RX/TX Toy plank", - [ T_UART_CMD_TEST ] = "Test Dual RS232 plank", - [ T_SPI_CMD_SNIFF ] = "SPI sniffer", - -}; +#pragma once + +// NOTE: GENERATED FILE -- DO NOT EDIT DIRECTLY +// This file is auto-generated by `json2h.py` +// Entirely new strings should be added to `en-us.h` +// Translations should be added to the language code's `.json` file + +// en-us is our base language translation file +#include "translation/base.h" +static char const * const zh_cn[T_LAST_ITEM_ALWAYS_AT_THE_END]={ + [ T_ON ] = "已开启", + [ T_OFF ] = "已关闭", + [ T_GND ] = "GND", + [ T_INPUT ] = "INPUT", + [ T_OUTPUT ] = "OUTPUT", + [ T_EXIT ] = "Exit", + [ T_LOADED ] = "Loaded", + [ T_SAVED ] = "Saved", + [ T_HZ ] = "Hz", + [ T_KHZ ] = "kHz", + [ T_MHZ ] = "MHz", + [ T_SPEED ] = "Speed", + [ T_WARN_VOUT_VREF_LOW ] = "VOUT/VREF pin is not powered. Use W to enable power, or attach an external supply", + [ T_USE_PREVIOUS_SETTINGS ] = "Use previous settings?", + [ T_MODE_ERROR_NO_EFFECT ] = "错误:该指令在当前模式无效", + [ T_MODE_ERROR_NO_EFFECT_HIZ ] = "该指令在当前HiZ模式无效,请按m键选择模式", + [ T_MODE_NO_HELP_AVAILABLE ] = "没有可用的帮助", + [ T_PRESS_ANY_KEY_TO_EXIT ] = "按任意键退出页面", + [ T_PRESS_ANY_KEY ] = "Press any key", + [ T_PRESS_BUTTON ] = "Press button", + [ T_PRESS_X_TO_EXIT ] = "Press 'x' to exit", + [ T_MODE_MODE_SELECTION ] = "Mode selection", + [ T_MODE_MODE ] = "模式", + [ T_MODE_NUMBER_DISPLAY_FORMAT ] = "Number display format", + [ T_MODE_INVALID_OPTION ] = "该选择无效!", + [ T_MODE_CHOOSE_AVAILABLE_PIN ] = "请选择可用的pin:", + [ T_MODE_ALL_PINS_IN_USE ] = "所有pins都被选用了!", + [ T_MODE_PULLUP_RESISTORS ] = "上拉电阻", + [ T_MODE_POWER_SUPPLY ] = "电源", + [ T_MODE_DISABLED ] = "不可用", + [ T_MODE_DISPLAY ] = "Display", + [ T_MODE_DISPLAY_SELECTION ] = "Display selection", + [ T_MODE_ENABLED ] = "可用", + [ T_MODE_BITORDER ] = "Bitorder", + [ T_MODE_BITORDER_MSB ] = "MSB", + [ T_MODE_BITORDER_LSB ] = "LSB", + [ T_MODE_DELAY ] = "Delay", + [ T_MODE_US ] = "us", + [ T_MODE_MS ] = "ms", + [ T_MODE_ADC_VOLTAGE ] = "Volts on", + [ T_MODE_ERROR_PARSING_MACRO ] = "Error parsing macro", + [ T_MODE_ERROR_NO_MACROS_AVAILABLE ] = "No macros available", + [ T_MODE_ERROR_MACRO_NOT_DEFINED ] = "Macro not defined", + [ T_MODE_TICK_CLOCK ] = "Tick clock", + [ T_MODE_SET_CLK ] = "Set clock", + [ T_MODE_SET_DAT ] = "Set data", + [ T_MODE_READ_DAT ] = "Read data", + [ T_MODE_NO_VOUT_VREF_ERROR ] = "No voltage detected on VOUT/VREF pin", + [ T_MODE_NO_VOUT_VREF_HINT ] = "Hint: Use W to enable power, or attach an external supply", + [ T_MODE_NO_PULLUP_ERROR ] = "Pull-up not detected on IO pin", + [ T_MODE_NO_PULLUP_HINT ] = "Hint: Use P to enable pull-up resistors, or use external pull-up", + [ T_MODE_PWM_GENERATE_FREQUENCY ] = "生成频率", + [ T_MODE_FREQ_MEASURE_FREQUENCY ] = "频率测试", + [ T_MODE_FREQ_FREQUENCY ] = "频率", + [ T_MODE_FREQ_DUTY_CYCLE ] = "占空比/工作周期", + [ T_PSU_DAC_ERROR ] = "PSU DAC error, please run self-test", + [ T_PSU_CURRENT_LIMIT_ERROR ] = "Current over limit, power supply disabled", + [ T_PSU_SHORT_ERROR ] = "Potential short circuit, power supply disabled", + [ T_PSU_ALREADY_DISABLED_ERROR ] = "Power supply already disabled", + [ T_SYNTAX_EXCEEDS_MAX_SLOTS ] = "Result exceeds available space (%d slots)", + [ T_HWSPI_SPEED_MENU ] = "SPI通信速率", + [ T_HWSPI_SPEED_MENU_1 ] = "1 to 62500kHz", + [ T_HWSPI_SPEED_PROMPT ] = "kHz (100kHz*)", + [ T_HWSPI_BITS_MENU ] = "数据位", + [ T_HWSPI_BITS_MENU_1 ] = "4 to 8 bits", + [ T_HWSPI_BITS_PROMPT ] = "4 到 8 (8*)", + [ T_HWSPI_CLOCK_POLARITY_MENU ] = "时钟极性\r\n 1. 低怠速*\r\n 2. 高怠速", + [ T_HWSPI_CLOCK_POLARITY_MENU_1 ] = "Idle LOW", + [ T_HWSPI_CLOCK_POLARITY_MENU_2 ] = "Idle HIGH", + [ T_HWSPI_CLOCK_POLARITY_PROMPT ] = "极性", + [ T_HWSPI_CLOCK_PHASE_MENU ] = "时钟相位\r\n 1. LEADING edge\r\n 2. TRAILING edge*", + [ T_HWSPI_CLOCK_PHASE_MENU_1 ] = "LEADING edge", + [ T_HWSPI_CLOCK_PHASE_MENU_2 ] = "TRAILING edge", + [ T_HWSPI_CLOCK_PHASE_PROMPT ] = "Phase", + [ T_HWSPI_CS_IDLE_MENU ] = "Chip select\r\n 1. Active HIGH (CS)\r\n 2. Active LOW (!CS)*", + [ T_HWSPI_CS_IDLE_MENU_1 ] = "Active HIGH (CS)", + [ T_HWSPI_CS_IDLE_MENU_2 ] = "Active LOW (/CS)", + [ T_HWSPI_CS_IDLE_PROMPT ] = "片选/芯片选择", + [ T_HWSPI_ACTUAL_SPEED_KHZ ] = "实际速度", + [ T_HWSPI_CS_SELECT ] = "芯片选择 Select (%d)", + [ T_HWSPI_CS_DESELECT ] = "芯片选择 Deselect (%d)", + [ T_UART_SPEED_MENU ] = "UART 速", + [ T_UART_SPEED_MENU_1 ] = "1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 etc", + [ T_UART_SPEED_PROMPT ] = "Baud (115200*)", + [ T_UART_PARITY_MENU ] = "Parity\r\n 1. None*\r\n 2. Even\r\n 3. Odd", + [ T_UART_PARITY_MENU_1 ] = "None", + [ T_UART_PARITY_MENU_2 ] = "Even", + [ T_UART_PARITY_MENU_3 ] = "Odd", + [ T_UART_PARITY_PROMPT ] = "Parity", + [ T_UART_DATA_BITS_MENU ] = "Data bits", + [ T_UART_DATA_BITS_MENU_1 ] = "5 to 8 bits", + [ T_UART_DATA_BITS_PROMPT ] = "5 to 8 bits (8*)", + [ T_UART_STOP_BITS_MENU ] = "Stop bits\r\n 1. 1*\r\n 2. 2", + [ T_UART_STOP_BITS_MENU_1 ] = "1", + [ T_UART_STOP_BITS_MENU_2 ] = "2", + [ T_UART_STOP_BITS_PROMPT ] = "Bits", + [ T_UART_BLOCKING_MENU ] = "使用屏蔽功能?Use blocking functions?\r\n 1. No\r\n 2. Yes", + [ T_UART_BLOCKING_MENU_1 ] = "No", + [ T_UART_BLOCKING_MENU_2 ] = "Yes", + [ T_UART_BLOCKING_PROMPT ] = "屏蔽Block", + [ T_UART_FLOW_CONTROL_MENU ] = "Hardware flow control", + [ T_UART_FLOW_CONTROL_MENU_1 ] = "None", + [ T_UART_FLOW_CONTROL_MENU_2 ] = "RTS/CTS", + [ T_UART_FLOW_CONTROL_PROMPT ] = "Flow control", + [ T_UART_INVERT_MENU ] = "Signal inversion", + [ T_UART_INVERT_MENU_1 ] = "Non-inverted (Standard)", + [ T_UART_INVERT_MENU_2 ] = "Inverted", + [ T_UART_INVERT_PROMPT ] = "Invert signals", + [ T_UART_GLITCH_TRG_MENU ] = "Glitch trigger character", + [ T_UART_GLITCH_TRG_MENU_1 ] = "1 - 255", + [ T_UART_GLITCH_TRG_PROMPT ] = "ASCII value of trigger character (13)", + [ T_UART_GLITCH_DLY_MENU ] = "Glitch trigger delay", + [ T_UART_GLITCH_DLY_MENU_1 ] = "Delay time in us", + [ T_UART_GLITCH_DLY_PROMPT ] = "Glitch trigger delay (1)", + [ T_UART_GLITCH_VRY_MENU ] = "Glitch vary time", + [ T_UART_GLITCH_VRY_MENU_1 ] = "1 - 10", + [ T_UART_GLITCH_VRY_PROMPT ] = "Glitch vary time (3)", + [ T_UART_GLITCH_CYC_MENU ] = "Glitch cycle delay", + [ T_UART_GLITCH_CYC_MENU_1 ] = "10-1000", + [ T_UART_GLITCH_CYC_PROMPT ] = "Minimum time between glitch cycles in ms (10)", + [ T_UART_GLITCH_FAIL_MENU ] = "Normal response character", + [ T_UART_GLITCH_FAIL_MENU_1 ] = "1 - 255", + [ T_UART_GLITCH_FAIL_PROMPT ] = "ASCII value of first char of normal response (35 - '#')", + [ T_UART_GLITCH_CNT_MENU ] = "Number of glitch attempts", + [ T_UART_GLITCH_CNT_MENU_1 ] = "1 - 10000", + [ T_UART_GLITCH_CNT_PROMPT ] = "Number of glitch attempts before quitting (100)", + [ T_UART_GLITCH_GLITCHED ] = "Target glitch success!", + [ T_UART_GLITCH_CANCELLED ] = "Target glitch cancelled by button", + [ T_UART_GLITCH_DONE ] = "Target glitch count exceeded, no glitch :/", + [ T_UART_TOOL_TIMEOUT ] = "Timout waiting for glitch hardware :/", + [ T_UART_GLITCH_UNKNOWN ] = "Target glitching stopped for unknown reason", + [ T_UART_GLITCH_SETUP_ERR ] = "Error setting up glitcher - check uglitch.bp file", + [ T_UART_ACTUAL_SPEED_BAUD ] = "实际速度", + [ T_UART_BAUD ] = "baud波特率", + [ T_UART_OPEN ] = "UART OPEN", + [ T_UART_OPEN_WITH_READ ] = "UART OPEN (ASYNC READ)", + [ T_UART_CLOSE ] = "UART CLOSE", + [ T_UART_NO_DATA_READ ] = "No data to read", + [ T_UART_NO_DATA_TIMEOUT ] = "Data read timeout", + [ T_HWI2C_SPEED_MENU ] = "I2C speed", + [ T_HWI2C_SPEED_MENU_1 ] = "1kHz to 1000kHz", + [ T_HWI2C_SPEED_PROMPT ] = "kHz (400kHz*)", + [ T_HWI2C_DATA_BITS_MENU ] = "Data bits\r\n 1. 8*\r\n 2. 10", + [ T_HWI2C_DATA_BITS_MENU_1 ] = "8", + [ T_HWI2C_DATA_BITS_MENU_2 ] = "10", + [ T_HWI2C_DATA_BITS_PROMPT ] = "Bits", + [ T_HWI2C_CLOCK_STRETCH_MENU ] = "Clock stretching", + [ T_HWI2C_CLOCK_STRETCH_PROMPT ] = "(OFF)", + [ T_HWI2C_START ] = "I2C START", + [ T_HWI2C_REPEATED_START ] = "I2C REPEATED START", + [ T_HWI2C_STOP ] = "I2C STOP", + [ T_HWI2C_ACK ] = "ACK", + [ T_HWI2C_NACK ] = "NACK", + [ T_HWI2C_NO_PULLUP_DETECTED ] = "no pull-up detected", + [ T_HWI2C_NO_VOUT_DETECTED ] = "no power detected", + [ T_HWI2C_TIMEOUT ] = "I2C timeout", + [ T_HWI2C_I2C_ERROR ] = "I2C bus error", + [ T_HW2WIRE_SPEED_MENU ] = "2WIRE speed", + [ T_HW2WIRE_RST_LOW ] = "RST LOW", + [ T_HW2WIRE_RST_HIGH ] = "RST HIGH", + [ T_HW3WIRE_SPEED_MENU_1 ] = "1 to 3900kHz", + [ T_HWLED_DEVICE_MENU ] = "LED type\r\n 1. WS2812/SK6812/'NeoPixel' (single wire interface)* \r\n 2. APA102/SK9822 (clock and data interface)", + [ T_HWLED_DEVICE_MENU_1 ] = "WS2812/SK6812/'NeoPixel' (single wire interface)", + [ T_HWLED_DEVICE_MENU_2 ] = "APA102/SK9822 (clock and data interface)", + [ T_HWLED_DEVICE_MENU_3 ] = "Onboard LEDs (18 SK6812s)", + [ T_HWLED_DEVICE_PROMPT ] = "Type", + [ T_HWLED_NUM_LEDS_MENU ] = "Number of LEDs in the strip", + [ T_HWLED_NUM_LEDS_MENU_1 ] = "1 to 10000", + [ T_HWLED_NUM_LEDS_PROMPT ] = "1 to 10000 (1*)", + [ T_HWLED_RESET ] = "RESET", + [ T_HWLED_FRAME_START ] = "START FRAME (0x00000000)", + [ T_HWLED_FRAME_STOP ] = "STOP FRAME (0xFFFFFFFF)", + [ T_HW1WIRE_RESET ] = "1-Wire RESET", + [ T_HW1WIRE_PRESENCE_DETECT ] = "Presence detected", + [ T_HW1WIRE_NO_DEVICE ] = "No device detected", + [ T_IR_RX_SENSOR_MENU ] = "RX sensor", + [ T_IR_RX_SENSOR_MENU_LEARNER ] = "20-60kHz learner", + [ T_IR_RX_SENSOR_MENU_BARRIER ] = "38kHz barrier", + [ T_IR_RX_SENSOR_MENU_38K_DEMOD ] = "36-40kHz demodulator", + [ T_IR_RX_SENSOR_MENU_56K_DEMOD ] = "56kHz demodulator", + [ T_IR_TX_SPEED_MENU ] = "TX modulation", + [ T_IR_TX_SPEED_MENU_1 ] = "20kHz to 60kHz", + [ T_IR_TX_SPEED_PROMPT ] = "kHz (%s%dkHz*%s)", + [ T_IR_PROTOCOL_MENU ] = "Protocol", + [ T_IR_PROTOCOL_MENU_RC5 ] = "RC5", + [ T_IR_PROTOCOL_MENU_NEC ] = "NEC", + [ T_CMDLN_INVALID_COMMAND ] = "Invalid command: %s. Type ? for help.", + [ T_CMDLN_NO_HELP ] = "Help not currently available for this command.", + [ T_CMDLN_LS ] = "ls - list files in the current location or location.", + [ T_CMDLN_CD ] = "cd - change to location.", + [ T_CMDLN_MKDIR ] = "mkdir - create .", + [ T_CMDLN_RM ] = "rm - remove file or (empty) directory.", + [ T_CMDLN_CAT ] = "cat - print the contents of .", + [ T_CMDLN_MODE ] = "m - change protocol mode. m to skip the menu.", + [ T_CMDLN_PSU_EN ] = "W - enable onboard power supply, show configuration menu.", + [ T_CMDLN_RESET ] = "# - reset and restart the Bus Pirate.", + [ T_CMDLN_BOOTLOAD ] = "$ - reset and enter bootloader mode for updates.", + [ T_CMDLN_INT_FORMAT ] = "= - convert to BIN/DEC/HEX/ASCII.", + [ T_CMDLN_INT_INVERSE ] = "| - inverse the bits in .", + [ T_CMDLN_HELP ] = "? - show command and syntax help.", + [ T_CMDLN_CONFIG_MENU ] = "c - open Bus Pirate configuration menu.", + [ T_CMDLN_FREQ_ONE ] = "f - measure frequency on once.", + [ T_CMDLN_FREQ_CONT ] = "F - measure frequency on continuously.", + [ T_CMDLN_PWM_CONFIG ] = "G - configure frequency generator (PWM) on an available IOx pin.", + [ T_CMDLN_PWM_DIS ] = "g - disable frequency generator (PWM) on pin .", + [ T_CMDLN_HELP_MODE ] = "h - show mode specific help screen.", + [ T_CMDLN_HELP_DISPLAY ] = "hd - show display mode specific help screen.", + [ T_CMDLN_INFO ] = "i - show Bus Pirate info and status screen.", + [ T_CMDLN_BITORDER_MSB ] = "l - set Most Significant Bit output order.", + [ T_CMDLN_BITORDER_LSB ] = "L - set Least Significant Bit ouput order.", + [ T_CMDLN_DISPLAY_FORMAT ] = "o - configure number output display format.", + [ T_CMDLN_PULLUPS_EN ] = "P - enable onboard pull-up resistors.", + [ T_CMDLN_PULLUPS_DIS ] = "p - disable onboard pull-up resistors.", + [ T_CMDLN_PSU_DIS ] = "w - disable onboard power supply.", + [ T_CMDLN_ADC_CONT ] = "V - continuous voltage measurement on pin . Omit the pin number to measure voltage on all pins.", + [ T_CMDLN_ADC_ONE ] = "v - single voltage measurement on pin . Omit the pin number to measure voltage on all pins once.", + [ T_CMDLN_SELFTEST ] = "~ - perform a factory self-test. Disconnect any attached devices and change to HiZ mode before starting the test.", + [ T_CMDLN_AUX_IN ] = "@ - make pin input, read the pin state.", + [ T_CMDLN_AUX_LOW ] = "a - make pin output and low.", + [ T_CMDLN_AUX_HIGH ] = "A - make pin output and high.", + [ T_CMDLN_DUMP ] = "dump - dump contents of flash to . Warning: currently a prototype that only works with 25LC020 in SPI mode.", + [ T_CMDLN_LOAD ] = "load - load contents of to flash . Warning: currently a prototype that only works with 25LC020 in SPI mode.", + [ T_CMDLN_DISPLAY ] = "d - change display mode, show selection menu.", + [ T_CMDLN_LOGIC ] = "logic - logic analyzer. 1kHz-62500kHz, 0:7, 0:1.", + [ T_CMDLN_HEX ] = "hex - print contents of in HEX", + [ T_HELP_TITLE ] = "General Commands\t\t\tProtocol Interaction", + [ T_HELP_GENERAL_COMMANDS ] = "General Commands", + [ T_HELP_BUS_SYNTAX ] = "Bus Syntax", + [ T_HELP_DISK_COMMANDS ] = "Disk Commands", + [ T_HELP_BLANK ] = "\t\t\t", + [ T_HELP_SECTION_IO ] = "work with pins, input, output measurement", + [ T_HELP_SECTION_CAPTURE ] = "measure analog and digital signals", + [ T_HELP_SECTION_CONFIGURE ] = "configure the terminal, LEDs, display and mode", + [ T_HELP_SECTION_SYSTEM ] = "restart, firmware updates and diagnostic", + [ T_HELP_SECTION_FILES ] = "list files and navigate the storage", + [ T_HELP_SECTION_PROGRAMS ] = "useful commands and mini-programs", + [ T_HELP_SECTION_MODE ] = "enter a mode to use protocols", + [ T_HELP_SECTION_SYNTAX ] = "send and receive data in modes using bus syntax", + [ T_HELP_SECTION_HELP ] = "get more help", + [ T_HELP_GREATER_THAN ] = "Run bus syntax", + [ T_HELP_SYNTAX_ADC ] = "Measure volts on IO.x", + [ T_HELP_CMD_LS ] = "List files", + [ T_HELP_CMD_CD ] = "Change directory", + [ T_HELP_CMD_MKDIR ] = "Make directory", + [ T_HELP_CMD_RM ] = "Remove file/directory", + [ T_HELP_CMD_PAUSE ] = "Pause for user input, optional exit", + [ T_HELP_CMD_FORMAT ] = "Format storage disk (FAT16)", + [ T_HELP_CMD_CAT ] = "Print file contents as text", + [ T_HELP_CMD_HEX ] = "Print file contents in HEX", + [ T_HELP_CAPTURE_SCOPE ] = "Oscilloscope interface", + [ T_HELP_CAPTURE_LA ] = "Logic analyzer interface", + [ T_HELP_CMD_FLASH ] = "Erase, write, read and verify SPI flash chips", + [ T_HELP_CMD_LABEL ] = "Get or set the disk label", + [ T_HELP_CMD_IMAGE ] = "Write a bitmap image on the LCD", + [ T_HELP_CMD_DUMP ] = "Repeat read command, save ouput to storage", + [ T_HELP_1_2 ] = "Converts X/reverse X\t", + [ T_HELP_1_3 ] = "自检测试\t\t", + [ T_HELP_1_4 ] = "重启Bus Pirate\t", + [ T_HELP_1_5 ] = "切换到系统启动加载器\t", + [ T_HELP_1_6 ] = "Delay 1 us/ms\t\t", + [ T_HELP_1_7 ] = "AUXPIN (low/HI/READ)\t", + [ T_HELP_COMMAND_AUX ] = "Set IO x state (low/HI/READ)", + [ T_HELP_COMMAND_DISPLAY ] = "Change screen display mode", + [ T_HELP_1_9 ] = "AUX assignment (aux/CS)\t", + [ T_HELP_1_22 ] = "Show volts on IOx (once/CONT)", + [ T_HELP_1_10 ] = "Show volts all IOs (once/CONT)", + [ T_HELP_1_11 ] = "Measure freq on IOx (once/CONT)", + [ T_HELP_1_23 ] = "Monitor freq (off/ON)\t", + [ T_HELP_1_12 ] = "生成频率(关/开)", + [ T_HELP_HELP_GENERAL ] = "Global, mode and display help. Try '?', '? mode' and '? display'", + [ T_HELP_HELP_DISPLAY ] = "Help with a display mode such as the scope", + [ T_HELP_HELP_COMMAND ] = "Add -h for command help: ls -h", + [ T_HELP_1_14 ] = "版本详情/statusinfo\t", + [ T_HELP_1_15 ] = "Bitorder (msb/LSB)\t", + [ T_HELP_1_16 ] = "切换模式\t\t", + [ T_HELP_1_17 ] = "Set number display format", + [ T_HELP_1_18 ] = "上拉电阻(关/开)", + [ T_HELP_1_19 ] = "-\t\t\t", + [ T_HELP_1_20 ] = "Show volts/states\t", + [ T_HELP_1_21 ] = "电源(关/开)\t", + [ T_HELP_2_1 ] = "Mode macro x/list all", + [ T_HELP_2_3 ] = "Start", + [ T_HELP_2_4 ] = "Stop", + [ T_HELP_2_7 ] = "Send string", + [ T_HELP_2_8 ] = "", + [ T_HELP_2_9 ] = "", + [ T_HELP_2_10 ] = "Send value", + [ T_HELP_2_11 ] = "Read", + [ T_HELP_SYN_CLOCK_HIGH ] = "Clock high", + [ T_HELP_SYN_CLOCK_LOW ] = "Clock low", + [ T_HELP_SYN_CLOCK_TICK ] = "Clock tick", + [ T_HELP_SYN_DATA_HIGH ] = "Data high", + [ T_HELP_SYN_DATA_LOW ] = "Data low", + [ T_HELP_SYN_DATA_READ ] = "Read data pin state", + [ T_HELP_2_18 ] = "Bit read", + [ T_HELP_2_19 ] = "Repeat e.g. r:10", + [ T_HELP_2_20 ] = "Bits to read/write e.g. 0x55.2", + [ T_HELP_2_21 ] = "User macro x/list all", + [ T_HELP_2_22 ] = "User macro assign x", + [ T_HELP_HINT ] = "Chain multiple commands with ; || &&.", + [ T_HELP_FLASH ] = "read, write and erase flash chips using SFDP info if available", + [ T_HELP_FLASH_ERASE ] = "Erase flash chip. flash erase [-v(erify)]", + [ T_HELP_FLASH_WRITE ] = "Write file to flash chip. flash write -f [-e(rase)] [-v(erify)]", + [ T_HELP_FLASH_READ ] = "Read flash chip to file. flash read -f ", + [ T_HELP_FLASH_VERIFY ] = "Verify flash chip against file. flash verify -f ", + [ T_HELP_FLASH_TEST ] = "Erase and write full chip with dummy data, verify. flash test", + [ T_HELP_FLASH_PROBE ] = "Probe flash chip for ID and SFDP info. flash probe", + [ T_HELP_FLASH_INIT ] = "Reset and initialize flash chip. Default if no options given. flash", + [ T_HELP_FLASH_FILE_FLAG ] = "File flag. File to write, read or verify. flash verify -f ", + [ T_HELP_FLASH_ERASE_FLAG ] = "Erase flag. Add erase before write. flash write -f -e", + [ T_HELP_FLASH_VERIFY_FLAG ] = "Verify flag. Add verify after write or erase. flash write -f -v", + [ T_INFO_FIRMWARE ] = "固件", + [ T_INFO_BOOTLOADER ] = "系统启动加载器", + [ T_INFO_WITH ] = "with", + [ T_INFO_RAM ] = "RAM随机储存器", + [ T_INFO_FLASH ] = "FLASH", + [ T_INFO_SN ] = "S/N序列号", + [ T_INFO_WEBSITE ] = "https://BusPirate.com/", + [ T_INFO_TF_CARD ] = "TF卡", + [ T_INFO_FILE_SYSTEM ] = "文件系统", + [ T_NOT_DETECTED ] = "未侦察到", + [ T_INFO_AVAILABLE_MODES ] = "可选用的模式", + [ T_INFO_CURRENT_MODE ] = "主动模式", + [ T_INFO_POWER_SUPPLY ] = "电源", + [ T_INFO_CURRENT_LIMIT ] = "限制电流", + [ T_INFO_PULLUP_RESISTORS ] = "上拉电阻", + [ T_INFO_FREQUENCY_GENERATORS ] = "频率生成器", + [ T_INFO_DISPLAY_FORMAT ] = "显示格式", + [ T_INFO_DATA_FORMAT ] = "数据格式", + [ T_INFO_BITS ] = "比特位", + [ T_INFO_BITORDER ] = "比特位次序", + [ T_CONFIG_FILE ] = "Configuration file", + [ T_CONFIG_CONFIGURATION_OPTIONS ] = "Configuration options", + [ T_CONFIG_LANGUAGE ] = "Language / Jezik / Lingua / 语言", + [ T_CONFIG_ANSI_COLOR_MODE ] = "ANSI color mode", + [ T_CONFIG_ANSI_COLOR_FULLCOLOR ] = "ANSI Full-Color (16M colors)", + [ T_CONFIG_ANSI_COLOR_256 ] = "ANSI-256 color", + [ T_CONFIG_ANSI_TOOLBAR_MODE ] = "ANSI toolbar mode", + [ T_CONFIG_LANGUAGE_ENGLISH ] = "Language - English (US)", + [ T_CONFIG_LANGUAGE_CHINESE ] = "语言 - 中文(简体)", + [ T_CONFIG_LANGUAGE_POLISH ] = "Język - polski (Polska)", + [ T_CONFIG_LANGUAGE_BOSNIAN ] = "Jezik - bosanski (latinica, Bosna i Hercegovina)", + [ T_CONFIG_LANGUAGE_ITALIAN ] = "Lingua - italiano (Italia)", + [ T_CONFIG_DISABLE ] = "Disable", + [ T_CONFIG_ENABLE ] = "Enable", + [ T_CONFIG_SCREENSAVER ] = "LCD screensaver", + [ T_CONFIG_SCREENSAVER_5 ] = "5 minutes", + [ T_CONFIG_SCREENSAVER_10 ] = "10 minutes", + [ T_CONFIG_SCREENSAVER_15 ] = "15 minutes", + [ T_CONFIG_LEDS_EFFECT ] = "LED effect", + [ T_CONFIG_LEDS_EFFECT_SOLID ] = "Solid", + [ T_CONFIG_LEDS_EFFECT_ANGLEWIPE ] = "Angle wipe", + [ T_CONFIG_LEDS_EFFECT_CENTERWIPE ] = "Center wipe", + [ T_CONFIG_LEDS_EFFECT_CLOCKWISEWIPE ] = "Clockwise wipe", + [ T_CONFIG_LEDS_EFFECT_TOPDOWNWIPE ] = "Top side wipe", + [ T_CONFIG_LEDS_EFFECT_SCANNER ] = "Scanner", + [ T_CONFIG_LEDS_EFFECT_GENTLE_GLOW ] = "Gentle glow", + [ T_CONFIG_LEDS_EFFECT_CYCLE ] = "Cycle", + [ T_CONFIG_LEDS_COLOR ] = "LED color", + [ T_CONFIG_LEDS_COLOR_RAINBOW ] = "Rainbow", + [ T_CONFIG_LEDS_COLOR_RED ] = "Red", + [ T_CONFIG_LEDS_COLOR_ORANGE ] = "Orange", + [ T_CONFIG_LEDS_COLOR_YELLOW ] = "Yellow", + [ T_CONFIG_LEDS_COLOR_GREEN ] = "Green", + [ T_CONFIG_LEDS_COLOR_BLUE ] = "Blue", + [ T_CONFIG_LEDS_COLOR_PURPLE ] = "Purple", + [ T_CONFIG_LEDS_COLOR_PINK ] = "Pink", + [ T_CONFIG_LEDS_COLOR_WHITE ] = "White", + [ T_CONFIG_LEDS_BRIGHTNESS ] = "LED brightness", + [ T_CONFIG_LEDS_BRIGHTNESS_10 ] = "10%", + [ T_CONFIG_LEDS_BRIGHTNESS_20 ] = "20%", + [ T_CONFIG_LEDS_BRIGHTNESS_30 ] = "30%", + [ T_CONFIG_LEDS_BRIGHTNESS_40 ] = "40%", + [ T_CONFIG_LEDS_BRIGHTNESS_50 ] = "50%", + [ T_CONFIG_LEDS_BRIGHTNESS_100 ] = "100% ***WARNING: will damage USB port without external power supply***", + [ T_CONFIG_BINMODE_SELECT ] = "Select binary mode", + [ T_HELP_DUMMY_COMMANDS ] = "Dummy commands valid in position 1", + [ T_HELP_DUMMY_INIT ] = "Dummy init command", + [ T_HELP_DUMMY_TEST ] = "Dummy test command", + [ T_HELP_DUMMY_FLAGS ] = "Dummy flags", + [ T_HELP_DUMMY_B_FLAG ] = "-b require Bus Pirate button to be pushed. Takes no parameters", + [ T_HELP_DUMMY_I_FLAG ] = "-i . Requires integer number parameter", + [ T_HELP_DUMMY_FILE_FLAG ] = "-f . Create/write/read . Requires file string parameter", + [ T_HELP_SLE4442 ] = "SLE4442 smart card interface", + [ T_HELP_SLE4442_INIT ] = "Initialize card with ISO7816-3 ATR. Default action", + [ T_HELP_SLE4442_DUMP ] = "Display main, security and protect memory", + [ T_HELP_SLE4442_UNLOCK ] = "Unlock card with Programmable Security Code (PSC)", + [ T_HELP_SLE4442_WRITE ] = "Write data to card (requires unlock)", + [ T_HELP_SLE4442_ERASE ] = "Erase data from range 0x32-0x255 (requires unlock)", + [ T_HELP_SLE4442_PSC ] = "Change Programmable Security Code (PSC)", + [ T_HELP_SLE4442_ADDRESS_FLAG ] = "Write address flag", + [ T_HELP_SLE4442_VALUE_FLAG ] = "Write value flag", + [ T_HELP_SLE4442_CURRENT_PSC_FLAG ] = "Current Programmable Security Code (PSC) flag", + [ T_HELP_SLE4442_NEW_PSC_FLAG ] = "New Programmable Security Code (PSC) flag", + [ T_HELP_SLE4442_FILE_FLAG ] = "Dump file name flag", + [ T_HELP_GCMD_W ] = "onboard power supply with programmable fuse", + [ T_HELP_GCMD_W_DISABLE ] = "Disable onboard power supply", + [ T_HELP_GCMD_W_ENABLE ] = "Enable onboard power supply, show configuration menu", + [ T_HELP_GCMD_W_VOLTS ] = "Voltage, 0.8-5.0volts", + [ T_HELP_GCMD_W_CURRENT_LIMIT ] = "Current limit, 0-500mA", + [ T_HELP_GCMD_P ] = "onboard pull-up resistors", + [ T_HELP_HELP ] = "help for Bus Pirate commands and modes", + [ T_HELP_SYS_COMMAND ] = "Commands to access the help system", + [ T_HELP_SYS_DISPLAY ] = "Show display mode help (such as oscilloscope)", + [ T_HELP_SYS_MODE ] = "Show mode specific commands and help", + [ T_HELP_SYS_HELP ] = "How to use the help system", + [ T_HELP_GCMD_SELFTEST ] = "run a complete system self-test", + [ T_HELP_GCMD_SELFTEST_CMD ] = "Run self-test", + [ T_HELP_GCMD_SELFTEST_H_FLAG ] = "Self-test help", + [ T_HELP_AUXIO ] = "set IO pin state, read input pins", + [ T_HELP_AUXIO_LOW ] = "Output, low/0. Reserves pin for output", + [ T_HELP_AUXIO_HIGH ] = "Output, high/1. Reserves pin for output", + [ T_HELP_AUXIO_INPUT ] = "Input, read state. Releases reserved pin", + [ T_HELP_AUXIO_IO ] = "IO pin number, 0-7", + [ T_HELP_DISK_HEX ] = "Print file contents in HEX format", + [ T_HELP_DISK_HEX_FILE ] = "Name of file in 8.3 format (example1.bin)", + [ T_HELP_DISK_HEX_ADDR ] = "Show address offset", + [ T_HELP_DISK_HEX_ASCII ] = "Show also ASCII dump", + [ T_HELP_DISK_HEX_SIZE ] = "Set line size in bytes", + [ T_HELP_DISK_HEX_OFF ] = "Set file read start offset in bytes", + [ T_HELP_DISK_HEX_PAGER_OFF ] = "Disable the pager for dumping", + [ T_HELP_DISK_CAT ] = "print file contents as text", + [ T_HELP_DISK_CAT_FILE ] = "Name of file in 8.3 format (example1.txt)", + [ T_HELP_DISK_MKDIR ] = "create directory on internal storage", + [ T_HELP_DISK_MKDIR_DIR ] = "Directory name, 8 characters max", + [ T_HELP_DISK_CD ] = "change to a directory on local storage", + [ T_HELP_DISK_CD_DIR ] = "Directory name, 8 characters max", + [ T_HELP_DISK_RM ] = "delete file or directory on local storage", + [ T_HELP_DISK_RM_FILE ] = "Name of file to delete, 8.3 format", + [ T_HELP_DISK_RM_DIR ] = "Name of directory to delete, 8 characters max", + [ T_HELP_DISK_LS ] = "list files and directories on local storage", + [ T_HELP_DISK_LS_DIR ] = "List contents of this directory, optional", + [ T_HELP_DISK_FORMAT ] = "erase and format internal storage in FAT16 format", + [ T_HELP_DISK_FORMAT_CMD ] = "All data will be lost, answer 'y' twice to continue", + [ T_HELP_DISK_LABEL ] = "get or set the disk label", + [ T_HELP_DISK_LABEL_GET ] = "returns the current label of the disk", + [ T_HELP_DISK_LABEL_SET ] = "sets the current label of the disk", + [ T_HELP_VADC ] = "measure voltage on IO pins", + [ T_HELP_VADC_SINGLE ] = "Single measurement", + [ T_HELP_VADC_CONTINUOUS ] = "Continuous measurement", + [ T_HELP_VADC_IO ] = "IO pin number, 0-7", + [ T_HELP_I2C_SCAN ] = "scan I2C addresses, with optional part number", + [ T_HELP_I2C_SCAN_VERBOSE ] = "Verbose mode, print potential part numbers", + [ T_HELP_FLAG ] = "Get additional help", + [ T_HELP_I2C_SI7021 ] = "Read temperature and humidity from SI7021/HTU21/SHT21 sensor", + [ T_HELP_I2C_MS5611 ] = "Read temperature and pressure from MS5611 sensor", + [ T_HELP_I2C_TSL2561 ] = "Read light intensity (LUX) from TSL2561 sensor", + [ T_HELP_1WIRE_SCAN ] = "scan for 1-Wire devices", + [ T_HELP_1WIRE_DS18B20 ] = "Query DS18B20 temperature sensor", + [ T_HELP_UART_BRIDGE ] = "open UART with raw data IO, usb to serial bridge mode", + [ T_HELP_UART_BRIDGE_EXIT ] = "UART bridge. Press Bus Pirate button to exit.", + [ T_HELP_UART_BRIDGE_TOOLBAR ] = "ENABLE toolbar while bridge is active (default: disabled)", + [ T_HELP_UART_BRIDGE_SUPPRESS_LOCAL_ECHO ] = "Suppress local echo, don't echo back sent data", + [ T_HELP_UART_NMEA ] = "parse NMEA GPS data", + [ T_HELP_UART_GLITCH_EXIT ] = "UART Glitcher. Press Bus Pirate button to exit.", + [ T_HELP_SECTION_SCRIPT ] = "run scripts, macros and assign button functions", + [ T_HELP_CMD_SCRIPT ] = "Run script files, automation", + [ T_HELP_CMD_BUTTON ] = "Assign button functions", + [ T_HELP_CMD_MACRO ] = "Run macros, load a macro file", + [ T_HELP_CMD_TUTORIAL ] = "Run tutorial files", + [ T_HELP_CMD_PAUSE_KEY ] = "Press any key to continue (default)", + [ T_HELP_CMD_PAUSE_BUTTON ] = "Press the Bus Pirate button to continue", + [ T_HELP_CMD_PAUSE_EXIT ] = "'x' key to exit (e.g. script mode)", + [ T_HELP_BUTTON ] = "Assign script file to button press", + [ T_HELP_BUTTON_SHORT ] = "Assign script file to short button press", + [ T_HELP_BUTTON_LONG ] = "Assign script file to long button press", + [ T_HELP_BUTTON_FILE ] = "Script file to assign to button press", + [ T_HELP_BUTTON_HIDE ] = "Hide comments", + [ T_HELP_BUTTON_EXIT ] = "Exit script on error", + [ T_HELP_LOGIC ] = "logic analyzer control", + [ T_HELP_LOGIC_START ] = "start logic analyzer", + [ T_HELP_LOGIC_STOP ] = "stop logic analyzer", + [ T_HELP_LOGIC_HIDE ] = "hide logic graph", + [ T_HELP_LOGIC_SHOW ] = "show logic graph", + [ T_HELP_LOGIC_NAV ] = "navigate logic graph with arrow keys, x to exit", + [ T_HELP_LOGIC_INFO ] = "show configuration info", + [ T_HELP_LOGIC_FREQUENCY ] = "set sample frequency in Hz", + [ T_HELP_LOGIC_OVERSAMPLE ] = "set oversample rate, multiplies the sample frequency", + [ T_HELP_LOGIC_DEBUG ] = "set debug level: 0-2", + [ T_HELP_LOGIC_SAMPLES ] = "set number of samples", + [ T_HELP_LOGIC_TRIGGER_PIN ] = "set trigger pin, 0-7", + [ T_HELP_LOGIC_TRIGGER_LEVEL ] = "set trigger level, 0-1", + [ T_HELP_LOGIC_LOW_CHAR ] = "set character used for low in graph (ex:_)", + [ T_HELP_LOGIC_HIGH_CHAR ] = "set character used for high in graph (ex:*)", + [ T_HELP_CMD_CLS ] = "Clear and reset the terminal", + [ T_HELP_SECTION_TOOLS ] = "tools and utilities", + [ T_HELP_CMD_LOGIC ] = "Logic analyzer", + [ T_HELP_CMD_SMPS ] = "Switch mode power supply (plank required)", + [ T_INFRARED_CMD_TEST ] = "Test IR RX/TX Toy plank", + [ T_UART_CMD_TEST ] = "Test Dual RS232 plank", + [ T_SPI_CMD_SNIFF ] = "SPI sniffer", + [ T_HELP_UART_GLITCH ] = "UART glitcher", + [ T_HELP_UART_GLITCH_CONFIG ] = "Configure UART glitch parameters", + +}; From c642f0fff0cc362e129e58a09f9f408aabfe2c22 Mon Sep 17 00:00:00 2001 From: Matthew Brugman Date: Thu, 9 Jan 2025 22:12:58 -0800 Subject: [PATCH 2/8] adding some PIO stuffs [hg] fixed printf parameter type mismatch --- src/CMakeLists.txt | 1 + src/commands/uart/glitch.c | 55 ++++++++++++++++++++++++++++-------- src/commands/uart/glitch.pio | 38 +++++++++++++++++++++++++ 3 files changed, 82 insertions(+), 12 deletions(-) create mode 100644 src/commands/uart/glitch.pio diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 44148cbd..a5647f80 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -494,6 +494,7 @@ foreach(revision ${revisions}) #pico_generate_pio_header(${revision} ${CMAKE_CURRENT_LIST_DIR}/pirate/pwm.pio) pico_generate_pio_header(${revision} ${CMAKE_CURRENT_LIST_DIR}/pirate/onewire_library.pio) pico_generate_pio_header(${revision} ${CMAKE_CURRENT_LIST_DIR}/lib/pio_pwm/pwm.pio) + pico_generate_pio_header(${revision} ${CMAKE_CURRENT_LIST_DIR}/commands/uart/glitch.pio) pico_set_program_name(${revision} ${revision}) pico_set_program_version(${revision} "0.1.0") diff --git a/src/commands/uart/glitch.c b/src/commands/uart/glitch.c index d76ea777..0f83e13e 100644 --- a/src/commands/uart/glitch.c +++ b/src/commands/uart/glitch.c @@ -34,9 +34,10 @@ ************************************************************/ #include -#include "pico/stdlib.h" -#include "pico/time.h" #include +#include +#include "pico/stdlib.h" +//#include "pico/time.h" #include "hardware/uart.h" #include "pirate.h" #include "pirate/bio.h" @@ -49,7 +50,10 @@ #include "ui/ui_prompt.h" #include "bytecode.h" #include "pirate/button.h" -#include + +#include "hardware/pio.h" +#include "pio_config.h" +#include "glitch.pio.h" // uncomment below if all of the definitions in src/debug_rtt.c/h have // been done for this @@ -62,7 +66,7 @@ static const char* const usage[] = { "glitch\t[-h(elp)] [-c(onfig)]", "UART glitch generator", "Exit: press Bus Pirate button" }; - +// config struct typedef struct _uart_glitch_config { uint32_t glitch_trg; // character sent from BP UART to trigger the glitch uint32_t glitch_delay; // how long (us) after trigger stop bit to fire trigger @@ -72,20 +76,25 @@ typedef struct _uart_glitch_config { uint32_t retry_count; // number of times to try glitching before quitting } _uart_glitch_config; +static struct _uart_glitch_config uart_glitch_config; + +// help text static const struct ui_help_options options[] = { { 1, "", T_HELP_UART_GLITCH }, // command help { 0, "-t", T_HELP_UART_BRIDGE_TOOLBAR }, { 0, "-h", T_HELP_FLAG }, // help }; +// LCD display pin text static const char pin_labels[][5] = { "TRG", "RDY" }; -static struct _uart_glitch_config uart_glitch_config; - - +// timer stuffs static repeating_timer_t ticker; static uint32_t tick_count_ms = 0; +// pio struct +static struct _pio_config glitch_pio; + /************************************************* * CONFIGURATION PARAMETERS FOR GLITCHING * ************************************************* @@ -279,8 +288,8 @@ bool setup_hardware() { bio_set_function(M_UART_GLITCH_RDY, GPIO_FUNC_SIO); bio_output(M_UART_GLITCH_TRG); bio_input(M_UART_GLITCH_RDY); - system_bio_update_purpose_and_label(true, M_UART_GLITCH_TRG, BP_PIN_MODE, pin_labels[0]); - system_bio_update_purpose_and_label(true, M_UART_GLITCH_RDY, BP_PIN_MODE, pin_labels[1]); + system_bio_update_purpose_and_label(true, M_UART_GLITCH_TRG, BP_PIN_IO, pin_labels[0]); + system_bio_update_purpose_and_label(true, M_UART_GLITCH_RDY, BP_PIN_IO, pin_labels[1]); // set the trigger low right away bio_put(M_UART_GLITCH_TRG, 0); @@ -288,6 +297,21 @@ bool setup_hardware() { // set up timer ticker_init(); + glitch_pio.pio = PIO_MODE_PIO; + glitch_pio.sm = 0; + glitch_pio.program = &uart_glitch_program; + glitch_pio.offset = pio_add_program(glitch_pio.pio, glitch_pio.program); + + uart_glitch_program_init(glitch_pio.pio, + glitch_pio.sm, + glitch_pio.offset, + bio2bufiopin[M_UART_GLITCH_TRG], + bio2bufiopin[M_UART_TX]); + + printf("%sglitch install: pio %p, sm %d, offset %d, program 0x%p%s\n", + ui_term_color_info(), + glitch_pio.pio, glitch_pio.sm, glitch_pio.offset, glitch_pio.program, + ui_term_color_reset()); return (true); } @@ -300,6 +324,13 @@ void teardown_hardware() { // kill the timer ticker_kill(); + + pio_remove_program(glitch_pio.pio, glitch_pio.program, glitch_pio.offset); + + printf("%sglitch remove: pio %p, sm %d, offset %d, program 0x%p%s\n", + ui_term_color_info(), + glitch_pio.pio, glitch_pio.sm, glitch_pio.offset, glitch_pio.program, + ui_term_color_reset()); } void uart_glitch_handler(struct command_result* res) { @@ -388,8 +419,8 @@ void uart_glitch_handler(struct command_result* res) { // delay before turning on the output. Remember! The // timer is starting right after we stuff the character // into the buffer, not after it's actually sent - busy_wait_us(this_glitch_time); - bio_put(M_UART_GLITCH_TRG, 1); + //busy_wait_us(this_glitch_time); + //bio_put(M_UART_GLITCH_TRG, 1); // wait for a char to be RX'd. Allow the button // to break us out, if necessary @@ -420,7 +451,7 @@ void uart_glitch_handler(struct command_result* res) { // short delay to wait for next character busy_wait_us_32(100); } - bio_put(M_UART_GLITCH_TRG, 0); + //bio_put(M_UART_GLITCH_TRG, 0); printf("Attempt %d at %dus RX: %s\r\n", tries + 1, this_glitch_time, resp_string); diff --git a/src/commands/uart/glitch.pio b/src/commands/uart/glitch.pio new file mode 100644 index 00000000..915f6b5b --- /dev/null +++ b/src/commands/uart/glitch.pio @@ -0,0 +1,38 @@ +; +; +; + +.program uart_glitch + +.wrap_target +set x 31 +set y 2 + +return_loop: + wait 0 pin 0 + wait 1 pin 0 + jmp y-- return_loop + set pins 1 + +high_loop: + jmp x-- high_loop + set pins 0 + +.wrap + +% c-sdk { +#include "hardware/clocks.h" +static inline void uart_glitch_program_init(PIO pio, uint sm, uint offset, uint glitch_pin, uint tx_pin) { + pio_sm_config c = uart_glitch_program_get_default_config(offset); + + sm_config_set_set_pins (&c, glitch_pin, 1); + sm_config_set_in_pins (&c, tx_pin); + + float div = clock_get_hz(clk_sys) / (1e6); + sm_config_set_clkdiv(&c, div); + + pio_sm_init(pio, sm, offset, &c); + + pio_sm_set_enabled(pio, sm, true); +} +%} \ No newline at end of file From 2702b5d40485a4e346978dff8a0cf17b94c3814d Mon Sep 17 00:00:00 2001 From: Matthew Brugman Date: Thu, 9 Jan 2025 22:13:36 -0800 Subject: [PATCH 3/8] commit before rebase from upstream [hg] also update glitch remove output to mirror install output --- src/commands/uart/glitch.c | 23 +++++++++++----------- src/commands/uart/glitch.pio | 38 ++++++++++++++++++++++-------------- 2 files changed, 34 insertions(+), 27 deletions(-) diff --git a/src/commands/uart/glitch.c b/src/commands/uart/glitch.c index 0f83e13e..875e9ed7 100644 --- a/src/commands/uart/glitch.c +++ b/src/commands/uart/glitch.c @@ -284,12 +284,9 @@ bool setup_hardware() { PRINT_INFO("glitch::Entering setup_hardware()\r\n"); bio_put(M_UART_RTS, 0); - bio_set_function(M_UART_GLITCH_TRG, GPIO_FUNC_SIO); - bio_set_function(M_UART_GLITCH_RDY, GPIO_FUNC_SIO); - bio_output(M_UART_GLITCH_TRG); - bio_input(M_UART_GLITCH_RDY); - system_bio_update_purpose_and_label(true, M_UART_GLITCH_TRG, BP_PIN_IO, pin_labels[0]); - system_bio_update_purpose_and_label(true, M_UART_GLITCH_RDY, BP_PIN_IO, pin_labels[1]); + //bio_set_function(M_UART_GLITCH_TRG, GPIO_FUNC_SIO); + //bio_set_function(M_UART_GLITCH_RDY, GPIO_FUNC_SIO); + // set the trigger low right away bio_put(M_UART_GLITCH_TRG, 0); @@ -305,12 +302,12 @@ bool setup_hardware() { uart_glitch_program_init(glitch_pio.pio, glitch_pio.sm, glitch_pio.offset, - bio2bufiopin[M_UART_GLITCH_TRG], - bio2bufiopin[M_UART_TX]); + bio2bufiopin[M_UART_GLITCH_TRG]/*, + bio2bufiopin[M_UART_TX]*/); - printf("%sglitch install: pio %p, sm %d, offset %d, program 0x%p%s\n", + printf("%sglitch install: pio %p, sm %d, offset %d, pin %d%s\n", ui_term_color_info(), - glitch_pio.pio, glitch_pio.sm, glitch_pio.offset, glitch_pio.program, + glitch_pio.pio, glitch_pio.sm, glitch_pio.offset, bio2bufiopin[M_UART_GLITCH_TRG], ui_term_color_reset()); return (true); } @@ -327,9 +324,9 @@ void teardown_hardware() { pio_remove_program(glitch_pio.pio, glitch_pio.program, glitch_pio.offset); - printf("%sglitch remove: pio %p, sm %d, offset %d, program 0x%p%s\n", + printf("%sglitch remove: pio %p, sm %d, offset %d, pin %d%s\n", ui_term_color_info(), - glitch_pio.pio, glitch_pio.sm, glitch_pio.offset, glitch_pio.program, + glitch_pio.pio, glitch_pio.sm, glitch_pio.offset, bio2bufiopin[M_UART_GLITCH_TRG], ui_term_color_reset()); } @@ -396,6 +393,7 @@ void uart_glitch_handler(struct command_result* res) { while (!glitched && !cancelled && !done && !tool_timeout) { // check for external device ready; allow BP button to // exit + /* tick_start = get_ticks(); while (!bio_get(M_UART_GLITCH_RDY) && !cancelled && !tool_timeout) { if (button_get(0)) { @@ -411,6 +409,7 @@ void uart_glitch_handler(struct command_result* res) { if (tool_timeout) { break; } + */ // serial out the trigger character PRINT_DEBUG("glitch::UART-ing char\r\n"); diff --git a/src/commands/uart/glitch.pio b/src/commands/uart/glitch.pio index 915f6b5b..b17c98ad 100644 --- a/src/commands/uart/glitch.pio +++ b/src/commands/uart/glitch.pio @@ -4,31 +4,39 @@ .program uart_glitch -.wrap_target -set x 31 -set y 2 +jump_target: + set pins 1 [10] + ;set pins 0 [9] + jmp jump_target -return_loop: - wait 0 pin 0 - wait 1 pin 0 - jmp y-- return_loop - set pins 1 +;.wrap_target +;set x 31 +;set y 2 -high_loop: - jmp x-- high_loop - set pins 0 +;return_loop: +; wait 0 pin 0 +; wait 1 pin 0 +; jmp y-- return_loop +; set pins 1 -.wrap +;high_loop: +; jmp x-- high_loop +; set pins 0 + +;.wrap % c-sdk { #include "hardware/clocks.h" -static inline void uart_glitch_program_init(PIO pio, uint sm, uint offset, uint glitch_pin, uint tx_pin) { +static inline void uart_glitch_program_init(PIO pio, uint sm, uint offset, uint glitch_pin/*, uint tx_pin*/) { pio_sm_config c = uart_glitch_program_get_default_config(offset); sm_config_set_set_pins (&c, glitch_pin, 1); - sm_config_set_in_pins (&c, tx_pin); + pio_gpio_init(pio, glitch_pin); + pio_sm_set_consecutive_pindirs(pio, sm, glitch_pin, 1, true); + + //sm_config_set_in_pins (pio, tx_pin); - float div = clock_get_hz(clk_sys) / (1e6); + float div = clock_get_hz(clk_sys) / (10000.0); sm_config_set_clkdiv(&c, div); pio_sm_init(pio, sm, offset, &c); From a8db89a65b1f83d1841449f91f0e1f11d8239167 Mon Sep 17 00:00:00 2001 From: Matthew Brugman Date: Thu, 9 Jan 2025 22:13:52 -0800 Subject: [PATCH 4/8] OK, PIO outputs working :) --- src/commands/uart/glitch.c | 4 ++-- src/commands/uart/glitch.pio | 42 +++++++++++++++++------------------- 2 files changed, 22 insertions(+), 24 deletions(-) diff --git a/src/commands/uart/glitch.c b/src/commands/uart/glitch.c index 875e9ed7..68ea6e1e 100644 --- a/src/commands/uart/glitch.c +++ b/src/commands/uart/glitch.c @@ -302,8 +302,8 @@ bool setup_hardware() { uart_glitch_program_init(glitch_pio.pio, glitch_pio.sm, glitch_pio.offset, - bio2bufiopin[M_UART_GLITCH_TRG]/*, - bio2bufiopin[M_UART_TX]*/); + bio2bufiopin[M_UART_GLITCH_TRG], + bio2bufiopin[M_UART_TX]); printf("%sglitch install: pio %p, sm %d, offset %d, pin %d%s\n", ui_term_color_info(), diff --git a/src/commands/uart/glitch.pio b/src/commands/uart/glitch.pio index b17c98ad..e953e237 100644 --- a/src/commands/uart/glitch.pio +++ b/src/commands/uart/glitch.pio @@ -4,40 +4,38 @@ .program uart_glitch -jump_target: - set pins 1 [10] - ;set pins 0 [9] - jmp jump_target +;jump_target: +; set pins 1 [10] +; set pins 0 [9] +; jmp jump_target -;.wrap_target -;set x 31 -;set y 2 +.wrap_target + set x 31 + set y 2 -;return_loop: -; wait 0 pin 0 -; wait 1 pin 0 -; jmp y-- return_loop -; set pins 1 +return_loop: + wait 0 pin 0 + wait 1 pin 0 + jmp y-- return_loop + set pins 1 -;high_loop: -; jmp x-- high_loop -; set pins 0 +high_loop: + jmp x-- high_loop + set pins 0 -;.wrap +.wrap % c-sdk { #include "hardware/clocks.h" -static inline void uart_glitch_program_init(PIO pio, uint sm, uint offset, uint glitch_pin/*, uint tx_pin*/) { +static inline void uart_glitch_program_init(PIO pio, uint sm, uint offset, uint glitch_pin, uint tx_pin) { pio_sm_config c = uart_glitch_program_get_default_config(offset); sm_config_set_set_pins (&c, glitch_pin, 1); + sm_config_set_in_pins(&c, tx_pin); + pio_gpio_init(pio, glitch_pin); pio_sm_set_consecutive_pindirs(pio, sm, glitch_pin, 1, true); - - //sm_config_set_in_pins (pio, tx_pin); - - float div = clock_get_hz(clk_sys) / (10000.0); - sm_config_set_clkdiv(&c, div); + pio_sm_set_consecutive_pindirs(pio, sm, tx_pin, 1, false); pio_sm_init(pio, sm, offset, &c); From 3727b4ab7fc9aa5914577d4ec8e30fc50614fd32 Mon Sep 17 00:00:00 2001 From: Matthew Brugman Date: Thu, 9 Jan 2025 22:14:20 -0800 Subject: [PATCH 5/8] finalize parameters, verify timing [hg] keep explicit return value from `setup_hardward()` --- src/commands/uart/glitch.c | 99 ++++++++++++++++++++++++++---------- src/commands/uart/glitch.pio | 32 +++++++----- src/translation/base.h | 3 ++ src/translation/bs-ba.h | 9 ++-- src/translation/en-us.h | 9 ++-- src/translation/en-us.json | 9 ++-- src/translation/it-it.h | 9 ++-- src/translation/pl-pl.h | 9 ++-- src/translation/zh-cn.h | 9 ++-- 9 files changed, 128 insertions(+), 60 deletions(-) diff --git a/src/commands/uart/glitch.c b/src/commands/uart/glitch.c index 68ea6e1e..802af6c6 100644 --- a/src/commands/uart/glitch.c +++ b/src/commands/uart/glitch.c @@ -71,6 +71,7 @@ typedef struct _uart_glitch_config { uint32_t glitch_trg; // character sent from BP UART to trigger the glitch uint32_t glitch_delay; // how long (us) after trigger stop bit to fire trigger uint32_t glitch_wander; // amount of time (us) to vary glitch timing + uint32_t glitch_time; // amount of time (us) to have output on uint32_t glitch_recycle; // minimum time (ms) between one glitch cycle and the next uint32_t fail_resp; // first character response from device on bad password uint32_t retry_count; // number of times to try glitching before quitting @@ -101,8 +102,12 @@ static struct _pio_config glitch_pio; * .glitch_trg - the ASCII character code that * starts the glitch cycle. Typcially a * carraige return (ASCII code 13, '\n') + * .glitch_delay - amount of time from end of + * send char to start of glitch output on * .glitch_wander - the amount of time of time to * vary the glitch timing in microseconds + * .glitch_time - amount of time to keep glitch + * output high * .glitch_cyc - a short delay between turning off * the glitch output and sending the character * again. @@ -114,6 +119,7 @@ static struct _pio_config glitch_pio; static const struct prompt_item uart_glitch_trg_menu[] = { { T_UART_GLITCH_TRG_MENU_1 } }; static const struct prompt_item uart_glitch_dly_menu[] = { { T_UART_GLITCH_DLY_MENU_1 } }; static const struct prompt_item uart_glitch_vry_menu[] = { { T_UART_GLITCH_VRY_MENU_1 } }; +static const struct prompt_item uart_glitch_lng_menu[] = { { T_UART_GLITCH_LNG_MENU_1 } }; static const struct prompt_item uart_glitch_cyc_menu[] = { { T_UART_GLITCH_CYC_MENU_1 } }; static const struct prompt_item uart_glitch_fail_menu[] = { { T_UART_GLITCH_FAIL_MENU_1 } }; static const struct prompt_item uart_glitch_cnt_menu[] = { { T_UART_GLITCH_CNT_MENU_1 } }; @@ -132,7 +138,7 @@ static const struct ui_prompt uart_menu[] = { [0] = { .description = T_UART_GLIT .menu_items_count = count_of(uart_glitch_dly_menu), .prompt_text = T_UART_GLITCH_DLY_PROMPT, .minval = 1, - .maxval = 255, + .maxval = 500, .defval = 1, .menu_action = 0, .config = &prompt_int_cfg }, @@ -145,7 +151,16 @@ static const struct ui_prompt uart_menu[] = { [0] = { .description = T_UART_GLIT .defval = 1, .menu_action = 0, .config = &prompt_int_cfg }, - [3] = { .description = T_UART_GLITCH_CYC_MENU, + [3] = { .description = T_UART_GLITCH_LNG_MENU, + .menu_items = uart_glitch_lng_menu, + .menu_items_count = count_of(uart_glitch_lng_menu), + .prompt_text = T_UART_GLITCH_LNG_PROMPT, + .minval = 1, + .maxval = 500, + .defval = 1, + .menu_action = 0, + .config = &prompt_int_cfg }, + [4] = { .description = T_UART_GLITCH_CYC_MENU, .menu_items = uart_glitch_cyc_menu, .menu_items_count = count_of(uart_glitch_cyc_menu), .prompt_text = T_UART_GLITCH_CYC_PROMPT, @@ -154,7 +169,7 @@ static const struct ui_prompt uart_menu[] = { [0] = { .description = T_UART_GLIT .defval = 10, .menu_action = 0, .config = &prompt_int_cfg }, - [4] = { .description = T_UART_GLITCH_FAIL_MENU, + [5] = { .description = T_UART_GLITCH_FAIL_MENU, .menu_items = uart_glitch_fail_menu, .menu_items_count = count_of(uart_glitch_fail_menu), .prompt_text = T_UART_GLITCH_FAIL_PROMPT, @@ -163,7 +178,7 @@ static const struct ui_prompt uart_menu[] = { [0] = { .description = T_UART_GLIT .defval = 35, .menu_action = 0, .config = &prompt_int_cfg }, - [5] = { .description = T_UART_GLITCH_CNT_MENU, + [6] = { .description = T_UART_GLITCH_CNT_MENU, .menu_items = uart_glitch_cnt_menu, .menu_items_count = count_of(uart_glitch_cnt_menu), .prompt_text = T_UART_GLITCH_CNT_PROMPT, @@ -178,6 +193,7 @@ void glitch_settings(void) { ui_prompt_mode_settings_int(GET_T(T_UART_GLITCH_TRG_MENU), uart_glitch_config.glitch_trg, "(ASCII)"); ui_prompt_mode_settings_int(GET_T(T_UART_GLITCH_DLY_MENU), uart_glitch_config.glitch_delay, "us"); ui_prompt_mode_settings_int(GET_T(T_UART_GLITCH_VRY_MENU), uart_glitch_config.glitch_wander, "us"); + ui_prompt_mode_settings_int(GET_T(T_UART_GLITCH_LNG_MENU), uart_glitch_config.glitch_time, "us"); ui_prompt_mode_settings_int(GET_T(T_UART_GLITCH_CYC_MENU), uart_glitch_config.glitch_recycle, "ms"); ui_prompt_mode_settings_int(GET_T(T_UART_GLITCH_FAIL_MENU), uart_glitch_config.fail_resp, "(ASCII)"); ui_prompt_mode_settings_int(GET_T(T_UART_GLITCH_CNT_MENU), uart_glitch_config.retry_count, 0x00); @@ -193,6 +209,7 @@ uint32_t uart_glitch_setup(void) { { "$.trigger", &uart_glitch_config.glitch_trg, MODE_CONFIG_FORMAT_DECIMAL }, { "$.delay", &uart_glitch_config.glitch_delay, MODE_CONFIG_FORMAT_DECIMAL }, { "$.wander", &uart_glitch_config.glitch_wander, MODE_CONFIG_FORMAT_DECIMAL }, + { "$.time", &uart_glitch_config.glitch_time, MODE_CONFIG_FORMAT_DECIMAL }, { "$.recycle", &uart_glitch_config.glitch_recycle, MODE_CONFIG_FORMAT_DECIMAL }, { "$.failchar", &uart_glitch_config.fail_resp, MODE_CONFIG_FORMAT_DECIMAL }, { "$.retries", &uart_glitch_config.retry_count, MODE_CONFIG_FORMAT_DECIMAL }, @@ -234,18 +251,25 @@ uint32_t uart_glitch_setup(void) { if (result.exit) { return 0; } - uart_glitch_config.glitch_recycle = temp; + uart_glitch_config.glitch_time = temp; + ui_prompt_uint32(&result, &uart_menu[4], &temp); if (result.exit) { return 0; } - uart_glitch_config.fail_resp = temp; + uart_glitch_config.glitch_recycle = temp; ui_prompt_uint32(&result, &uart_menu[5], &temp); if (result.exit) { return 0; } + uart_glitch_config.fail_resp = temp; + + ui_prompt_uint32(&result, &uart_menu[6], &temp); + if (result.exit) { + return 0; + } uart_glitch_config.retry_count = temp; printf("\r\n"); @@ -272,7 +296,7 @@ static inline uint32_t get_ticks() { } /******************************************************** - * Bus Pirate pins 0 and 1 are used for glitchhing: + * Bus Pirate pins 0 and 1 are used for glitching: * - Pin 0 is the triggered glitch output (to be used to * do the actual glitching by some other device) * - Pin 1 is an input used for the external glitching @@ -284,10 +308,6 @@ bool setup_hardware() { PRINT_INFO("glitch::Entering setup_hardware()\r\n"); bio_put(M_UART_RTS, 0); - //bio_set_function(M_UART_GLITCH_TRG, GPIO_FUNC_SIO); - //bio_set_function(M_UART_GLITCH_RDY, GPIO_FUNC_SIO); - - // set the trigger low right away bio_put(M_UART_GLITCH_TRG, 0); @@ -305,10 +325,11 @@ bool setup_hardware() { bio2bufiopin[M_UART_GLITCH_TRG], bio2bufiopin[M_UART_TX]); - printf("%sglitch install: pio %p, sm %d, offset %d, pin %d%s\n", - ui_term_color_info(), - glitch_pio.pio, glitch_pio.sm, glitch_pio.offset, bio2bufiopin[M_UART_GLITCH_TRG], - ui_term_color_reset()); + system_bio_update_purpose_and_label(true, M_UART_GLITCH_TRG, BP_PIN_MODE, pin_labels[0]); + system_bio_update_purpose_and_label(true, M_UART_GLITCH_RDY, BP_PIN_IO, pin_labels[1]); + bio_output(M_UART_GLITCH_TRG); + bio_input(M_UART_GLITCH_RDY); + return (true); } @@ -323,11 +344,6 @@ void teardown_hardware() { ticker_kill(); pio_remove_program(glitch_pio.pio, glitch_pio.program, glitch_pio.offset); - - printf("%sglitch remove: pio %p, sm %d, offset %d, pin %d%s\n", - ui_term_color_info(), - glitch_pio.pio, glitch_pio.sm, glitch_pio.offset, bio2bufiopin[M_UART_GLITCH_TRG], - ui_term_color_reset()); } void uart_glitch_handler(struct command_result* res) { @@ -358,7 +374,24 @@ void uart_glitch_handler(struct command_result* res) { printf("\r\n%sHardware setup!%s\r\n", ui_term_color_info(), ui_term_color_reset()); - printf("\r\n%s%s%s\r\n", ui_term_color_notice(), GET_T(T_HELP_UART_GLITCH_EXIT), ui_term_color_reset()); + // get the number of edges in the trigger character + uint32_t edges = 0; + bool last_was_high = false; + for (uint8_t ii = 0; ii < 8; ++ii) { + if (uart_glitch_config.glitch_trg & (1U << ii)) { + ++edges; + if (last_was_high) { + --edges; + } + last_was_high = true; + } + else { + last_was_high = false; + } + } + + PRINT_DEBUG("glitch::Trigger UART edge count: %d\r\n", edges); + PRINT_DEBUG("glitch::Hardware setup done!\r\n"); bool glitched = false; bool tool_timeout = false; @@ -372,9 +405,11 @@ void uart_glitch_handler(struct command_result* res) { char resp_string[40]; size_t resp_count; uint32_t tick_start = 0; - uint32_t glitch_min_time = uart_glitch_config.glitch_delay - uart_glitch_config.glitch_wander; - uint32_t glitch_max_time = uart_glitch_config.glitch_delay + uart_glitch_config.glitch_wander; - uint32_t this_glitch_time = glitch_min_time; + uint32_t glitch_min_delay = uart_glitch_config.glitch_delay; + uint32_t glitch_max_delay = uart_glitch_config.glitch_delay + uart_glitch_config.glitch_wander; + uint32_t this_glitch_delay = glitch_min_delay; + + if (glitch_max_delay > 500) glitch_max_delay = 500; // The main glitch loop starts here // keep going until we either: @@ -411,6 +446,15 @@ void uart_glitch_handler(struct command_result* res) { } */ + // set up the FIFO for the PIO: + // first item is the "on" time for the glitch pulse + // second item is the number of edges for the trigger character + // third item is the delay before firing the pulse + // TODO - remove multiplier and modify PIO clock divisor instead; that will increase ranges + pio_sm_put_blocking(glitch_pio.pio, glitch_pio.sm, uart_glitch_config.glitch_time * 124); + pio_sm_put_blocking(glitch_pio.pio, glitch_pio.sm, edges); + pio_sm_put_blocking(glitch_pio.pio, glitch_pio.sm, this_glitch_delay * 124); + // serial out the trigger character PRINT_DEBUG("glitch::UART-ing char\r\n"); uart_putc_raw(M_UART_PORT, trigger_char); @@ -450,9 +494,8 @@ void uart_glitch_handler(struct command_result* res) { // short delay to wait for next character busy_wait_us_32(100); } - //bio_put(M_UART_GLITCH_TRG, 0); - printf("Attempt %d at %dus RX: %s\r\n", tries + 1, this_glitch_time, resp_string); + printf("Attempt %d at %dus RX: %s\r\n", tries + 1, this_glitch_delay, resp_string); // parse through the response. if our "normal bad password response" // character is present, then we didn't glitch :/ @@ -476,8 +519,8 @@ void uart_glitch_handler(struct command_result* res) { // increment glitch delay time. If we hit max, then // reset to min and increment glitch count - if (++this_glitch_time > glitch_max_time) { - this_glitch_time = glitch_min_time; + if (++this_glitch_delay > glitch_max_delay) { + this_glitch_delay = glitch_min_delay; if (++tries >= uart_glitch_config.retry_count) { done = true; diff --git a/src/commands/uart/glitch.pio b/src/commands/uart/glitch.pio index e953e237..61fabbec 100644 --- a/src/commands/uart/glitch.pio +++ b/src/commands/uart/glitch.pio @@ -4,24 +4,28 @@ .program uart_glitch -;jump_target: -; set pins 1 [10] -; set pins 0 [9] -; jmp jump_target - .wrap_target - set x 31 - set y 2 + pull ; get the "on" time of the glitch pulse + mov x OSR ; store it in X + pull ; get the number of edges in the trigger character + mov y OSR ; store it in Y + pull ; get the delay before starting glitch pulse (just hold on for now) return_loop: - wait 0 pin 0 - wait 1 pin 0 - jmp y-- return_loop - set pins 1 + wait 0 pin 0 ; idle state of TX line is high, wait for it to go low + wait 1 pin 0 ; wait for it to go back up + jmp y-- return_loop ; decrement + + mov y OSR ; now set the delay time to the y register + +delay_loop: + jmp y-- delay_loop ; decrement delay before turning on the output + + set pins 1 ; OK, turn it on now high_loop: - jmp x-- high_loop - set pins 0 + jmp x-- high_loop ; decrement the glitch pulse high time + set pins 0 ; turn it off .wrap @@ -36,7 +40,7 @@ static inline void uart_glitch_program_init(PIO pio, uint sm, uint offset, uint pio_gpio_init(pio, glitch_pin); pio_sm_set_consecutive_pindirs(pio, sm, glitch_pin, 1, true); pio_sm_set_consecutive_pindirs(pio, sm, tx_pin, 1, false); - + pio_sm_init(pio, sm, offset, &c); pio_sm_set_enabled(pio, sm, true); diff --git a/src/translation/base.h b/src/translation/base.h index eed8b9d3..25a22afd 100644 --- a/src/translation/base.h +++ b/src/translation/base.h @@ -135,6 +135,9 @@ enum T_translations{ T_UART_GLITCH_VRY_MENU, T_UART_GLITCH_VRY_MENU_1, T_UART_GLITCH_VRY_PROMPT, + T_UART_GLITCH_LNG_MENU, + T_UART_GLITCH_LNG_MENU_1, + T_UART_GLITCH_LNG_PROMPT, T_UART_GLITCH_CYC_MENU, T_UART_GLITCH_CYC_MENU_1, T_UART_GLITCH_CYC_PROMPT, diff --git a/src/translation/bs-ba.h b/src/translation/bs-ba.h index c35614cc..adeadf35 100644 --- a/src/translation/bs-ba.h +++ b/src/translation/bs-ba.h @@ -120,11 +120,14 @@ static char const * const bs_ba[T_LAST_ITEM_ALWAYS_AT_THE_END]={ [ T_UART_GLITCH_TRG_MENU_1 ] = "1 - 255", [ T_UART_GLITCH_TRG_PROMPT ] = "ASCII value of trigger character (13)", [ T_UART_GLITCH_DLY_MENU ] = "Glitch trigger delay", - [ T_UART_GLITCH_DLY_MENU_1 ] = "Delay time in us", - [ T_UART_GLITCH_DLY_PROMPT ] = "Glitch trigger delay (1)", + [ T_UART_GLITCH_DLY_MENU_1 ] = "1 - 500", + [ T_UART_GLITCH_DLY_PROMPT ] = "Glitch trigger delay us (1)", [ T_UART_GLITCH_VRY_MENU ] = "Glitch vary time", [ T_UART_GLITCH_VRY_MENU_1 ] = "1 - 10", - [ T_UART_GLITCH_VRY_PROMPT ] = "Glitch vary time (3)", + [ T_UART_GLITCH_VRY_PROMPT ] = "Glitch vary time in us (3)", + [ T_UART_GLITCH_LNG_MENU ] = "Glitch output on time", + [ T_UART_GLITCH_LNG_MENU_1 ] = "1 - 500", + [ T_UART_GLITCH_LNG_PROMPT ] = "Glitch on time in us (1)", [ T_UART_GLITCH_CYC_MENU ] = "Glitch cycle delay", [ T_UART_GLITCH_CYC_MENU_1 ] = "10-1000", [ T_UART_GLITCH_CYC_PROMPT ] = "Minimum time between glitch cycles in ms (10)", diff --git a/src/translation/en-us.h b/src/translation/en-us.h index ae03eca8..6c563244 100644 --- a/src/translation/en-us.h +++ b/src/translation/en-us.h @@ -119,11 +119,14 @@ static char const * const en_us[]={ [T_UART_GLITCH_TRG_MENU_1]="1 - 255", [T_UART_GLITCH_TRG_PROMPT]="ASCII value of trigger character (13)", [T_UART_GLITCH_DLY_MENU]="Glitch trigger delay", - [T_UART_GLITCH_DLY_MENU_1]="Delay time in us", - [T_UART_GLITCH_DLY_PROMPT]="Glitch trigger delay (1)", + [T_UART_GLITCH_DLY_MENU_1]="1 - 500", + [T_UART_GLITCH_DLY_PROMPT]="Glitch trigger delay us (1)", [T_UART_GLITCH_VRY_MENU]="Glitch vary time", [T_UART_GLITCH_VRY_MENU_1] = "1 - 10", - [T_UART_GLITCH_VRY_PROMPT] = "Glitch vary time (3)", + [T_UART_GLITCH_VRY_PROMPT] = "Glitch vary time in us (3)", + [T_UART_GLITCH_LNG_MENU]="Glitch output on time", + [T_UART_GLITCH_LNG_MENU_1]="1 - 500", + [T_UART_GLITCH_LNG_PROMPT]="Glitch on time in us (1)", [T_UART_GLITCH_CYC_MENU]="Glitch cycle delay", [T_UART_GLITCH_CYC_MENU_1]="10-1000", [T_UART_GLITCH_CYC_PROMPT]="Minimum time between glitch cycles in ms (10)", diff --git a/src/translation/en-us.json b/src/translation/en-us.json index ea743bfd..9e2a9211 100644 --- a/src/translation/en-us.json +++ b/src/translation/en-us.json @@ -111,11 +111,14 @@ "T_UART_GLITCH_TRG_MENU_1": "1 - 255", "T_UART_GLITCH_TRG_PROMPT": "ASCII value of trigger character (13)", "T_UART_GLITCH_DLY_MENU": "Glitch trigger delay", - "T_UART_GLITCH_DLY_MENU_1": "Delay time in us", - "T_UART_GLITCH_DLY_PROMPT": "Glitch trigger delay (1)", + "T_UART_GLITCH_DLY_MENU_1": "1 - 500", + "T_UART_GLITCH_DLY_PROMPT": "Glitch trigger delay us (1)", "T_UART_GLITCH_VRY_MENU": "Glitch vary time", "T_UART_GLITCH_VRY_MENU_1": "1 - 10", - "T_UART_GLITCH_VRY_PROMPT": "Glitch vary time (3)", + "T_UART_GLITCH_VRY_PROMPT": "Glitch vary time in us (3)", + "T_UART_GLITCH_LNG_MENU": "Glitch output on time", + "T_UART_GLITCH_LNG_MENU_1": "1 - 500", + "T_UART_GLITCH_LNG_PROMPT": "Glitch on time in us (1)", "T_UART_GLITCH_CYC_MENU": "Glitch cycle delay", "T_UART_GLITCH_CYC_MENU_1": "10-1000", "T_UART_GLITCH_CYC_PROMPT": "Minimum time between glitch cycles in ms (10)", diff --git a/src/translation/it-it.h b/src/translation/it-it.h index eaa8a0cf..781e051c 100644 --- a/src/translation/it-it.h +++ b/src/translation/it-it.h @@ -120,11 +120,14 @@ static char const * const it_it[T_LAST_ITEM_ALWAYS_AT_THE_END]={ [ T_UART_GLITCH_TRG_MENU_1 ] = "1 - 255", [ T_UART_GLITCH_TRG_PROMPT ] = "ASCII value of trigger character (13)", [ T_UART_GLITCH_DLY_MENU ] = "Glitch trigger delay", - [ T_UART_GLITCH_DLY_MENU_1 ] = "Delay time in us", - [ T_UART_GLITCH_DLY_PROMPT ] = "Glitch trigger delay (1)", + [ T_UART_GLITCH_DLY_MENU_1 ] = "1 - 500", + [ T_UART_GLITCH_DLY_PROMPT ] = "Glitch trigger delay us (1)", [ T_UART_GLITCH_VRY_MENU ] = "Glitch vary time", [ T_UART_GLITCH_VRY_MENU_1 ] = "1 - 10", - [ T_UART_GLITCH_VRY_PROMPT ] = "Glitch vary time (3)", + [ T_UART_GLITCH_VRY_PROMPT ] = "Glitch vary time in us (3)", + [ T_UART_GLITCH_LNG_MENU ] = "Glitch output on time", + [ T_UART_GLITCH_LNG_MENU_1 ] = "1 - 500", + [ T_UART_GLITCH_LNG_PROMPT ] = "Glitch on time in us (1)", [ T_UART_GLITCH_CYC_MENU ] = "Glitch cycle delay", [ T_UART_GLITCH_CYC_MENU_1 ] = "10-1000", [ T_UART_GLITCH_CYC_PROMPT ] = "Minimum time between glitch cycles in ms (10)", diff --git a/src/translation/pl-pl.h b/src/translation/pl-pl.h index a71352ce..9ba4eb44 100644 --- a/src/translation/pl-pl.h +++ b/src/translation/pl-pl.h @@ -120,11 +120,14 @@ static char const * const pl_pl[T_LAST_ITEM_ALWAYS_AT_THE_END]={ [ T_UART_GLITCH_TRG_MENU_1 ] = "1 - 255", [ T_UART_GLITCH_TRG_PROMPT ] = "ASCII value of trigger character (13)", [ T_UART_GLITCH_DLY_MENU ] = "Glitch trigger delay", - [ T_UART_GLITCH_DLY_MENU_1 ] = "Delay time in us", - [ T_UART_GLITCH_DLY_PROMPT ] = "Glitch trigger delay (1)", + [ T_UART_GLITCH_DLY_MENU_1 ] = "1 - 500", + [ T_UART_GLITCH_DLY_PROMPT ] = "Glitch trigger delay us (1)", [ T_UART_GLITCH_VRY_MENU ] = "Glitch vary time", [ T_UART_GLITCH_VRY_MENU_1 ] = "1 - 10", - [ T_UART_GLITCH_VRY_PROMPT ] = "Glitch vary time (3)", + [ T_UART_GLITCH_VRY_PROMPT ] = "Glitch vary time in us (3)", + [ T_UART_GLITCH_LNG_MENU ] = "Glitch output on time", + [ T_UART_GLITCH_LNG_MENU_1 ] = "1 - 500", + [ T_UART_GLITCH_LNG_PROMPT ] = "Glitch on time in us (1)", [ T_UART_GLITCH_CYC_MENU ] = "Glitch cycle delay", [ T_UART_GLITCH_CYC_MENU_1 ] = "10-1000", [ T_UART_GLITCH_CYC_PROMPT ] = "Minimum time between glitch cycles in ms (10)", diff --git a/src/translation/zh-cn.h b/src/translation/zh-cn.h index 900e799d..b56635ff 100644 --- a/src/translation/zh-cn.h +++ b/src/translation/zh-cn.h @@ -120,11 +120,14 @@ static char const * const zh_cn[T_LAST_ITEM_ALWAYS_AT_THE_END]={ [ T_UART_GLITCH_TRG_MENU_1 ] = "1 - 255", [ T_UART_GLITCH_TRG_PROMPT ] = "ASCII value of trigger character (13)", [ T_UART_GLITCH_DLY_MENU ] = "Glitch trigger delay", - [ T_UART_GLITCH_DLY_MENU_1 ] = "Delay time in us", - [ T_UART_GLITCH_DLY_PROMPT ] = "Glitch trigger delay (1)", + [ T_UART_GLITCH_DLY_MENU_1 ] = "1 - 500", + [ T_UART_GLITCH_DLY_PROMPT ] = "Glitch trigger delay us (1)", [ T_UART_GLITCH_VRY_MENU ] = "Glitch vary time", [ T_UART_GLITCH_VRY_MENU_1 ] = "1 - 10", - [ T_UART_GLITCH_VRY_PROMPT ] = "Glitch vary time (3)", + [ T_UART_GLITCH_VRY_PROMPT ] = "Glitch vary time in us (3)", + [ T_UART_GLITCH_LNG_MENU ] = "Glitch output on time", + [ T_UART_GLITCH_LNG_MENU_1 ] = "1 - 500", + [ T_UART_GLITCH_LNG_PROMPT ] = "Glitch on time in us (1)", [ T_UART_GLITCH_CYC_MENU ] = "Glitch cycle delay", [ T_UART_GLITCH_CYC_MENU_1 ] = "10-1000", [ T_UART_GLITCH_CYC_PROMPT ] = "Minimum time between glitch cycles in ms (10)", From 55072c36b1880aaf43eaad253379b46889950dcf Mon Sep 17 00:00:00 2001 From: Matthew Brugman Date: Thu, 9 Jan 2025 22:14:28 -0800 Subject: [PATCH 6/8] ope - re-enable the 'ready' input --- src/commands/uart/glitch.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/commands/uart/glitch.c b/src/commands/uart/glitch.c index 802af6c6..19f63600 100644 --- a/src/commands/uart/glitch.c +++ b/src/commands/uart/glitch.c @@ -303,6 +303,8 @@ static inline uint32_t get_ticks() { * device to indicate its readiness. For example, an * EMP type device may need some time to recharge before * its ready again. + * + * Enable PIO and get ready to go *******************************************************/ bool setup_hardware() { PRINT_INFO("glitch::Entering setup_hardware()\r\n"); @@ -330,9 +332,15 @@ bool setup_hardware() { bio_output(M_UART_GLITCH_TRG); bio_input(M_UART_GLITCH_RDY); + // turn off output right away + bio_put(M_UART_GLITCH_TRG, 0); + return (true); } +/******************************************************** + * Deallocate the 2 IO pins and remove the PIO program + *******************************************************/ void teardown_hardware() { PRINT_INFO("glitch::Entering teardown_hardware()\r\n"); bio_put(M_UART_RTS, 1); @@ -346,6 +354,9 @@ void teardown_hardware() { pio_remove_program(glitch_pio.pio, glitch_pio.program, glitch_pio.offset); } +/****************************************************** + * Main glitch handler. Do the stuff + *****************************************************/ void uart_glitch_handler(struct command_result* res) { if (ui_help_show(res->help_flag, usage, count_of(usage), &options[0], count_of(options))) { return; @@ -428,7 +439,6 @@ void uart_glitch_handler(struct command_result* res) { while (!glitched && !cancelled && !done && !tool_timeout) { // check for external device ready; allow BP button to // exit - /* tick_start = get_ticks(); while (!bio_get(M_UART_GLITCH_RDY) && !cancelled && !tool_timeout) { if (button_get(0)) { @@ -444,7 +454,6 @@ void uart_glitch_handler(struct command_result* res) { if (tool_timeout) { break; } - */ // set up the FIFO for the PIO: // first item is the "on" time for the glitch pulse @@ -459,14 +468,9 @@ void uart_glitch_handler(struct command_result* res) { PRINT_DEBUG("glitch::UART-ing char\r\n"); uart_putc_raw(M_UART_PORT, trigger_char); - // delay before turning on the output. Remember! The - // timer is starting right after we stuff the character - // into the buffer, not after it's actually sent - //busy_wait_us(this_glitch_time); - //bio_put(M_UART_GLITCH_TRG, 1); - // wait for a char to be RX'd. Allow the button // to break us out, if necessary + busy_wait_us_32(500); while (!uart_is_readable(M_UART_PORT) && !cancelled) { if (button_get(0)) { cancelled = true; @@ -495,7 +499,7 @@ void uart_glitch_handler(struct command_result* res) { busy_wait_us_32(100); } - printf("Attempt %d at %dus RX: %s\r\n", tries + 1, this_glitch_delay, resp_string); + printf("Attempt %3d at %dus RX: %s\r\n", tries + 1, this_glitch_delay, resp_string); // parse through the response. if our "normal bad password response" // character is present, then we didn't glitch :/ From 569d118c230514f18cb0d742acc5b22af7e09435 Mon Sep 17 00:00:00 2001 From: Matthew Brugman Date: Thu, 9 Jan 2025 22:14:37 -0800 Subject: [PATCH 7/8] fix 'push button' message before starting glitch sequence. --- src/commands/uart/glitch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/uart/glitch.c b/src/commands/uart/glitch.c index 19f63600..aac75565 100644 --- a/src/commands/uart/glitch.c +++ b/src/commands/uart/glitch.c @@ -383,7 +383,7 @@ void uart_glitch_handler(struct command_result* res) { return; } - printf("\r\n%sHardware setup!%s\r\n", ui_term_color_info(), ui_term_color_reset()); + printf("\r\n%sUART glitching. Press Bus Pirate button to exit.%s\r\n", ui_term_color_info(), ui_term_color_reset()); // get the number of edges in the trigger character uint32_t edges = 0; From 416e68ed23bca21b7b83d8524aa566e061ba1cfe Mon Sep 17 00:00:00 2001 From: Matthew Brugman Date: Thu, 9 Jan 2025 22:14:46 -0800 Subject: [PATCH 8/8] cleanup before PR, add 'ready check disable' option --- src/commands/uart/glitch.c | 166 +++++++++++++++++++++-------------- src/commands/uart/glitch.pio | 6 +- src/translation/base.h | 5 ++ src/translation/bs-ba.h | 13 ++- src/translation/en-us.h | 13 ++- src/translation/en-us.json | 13 ++- src/translation/it-it.h | 13 ++- src/translation/pl-pl.h | 13 ++- src/translation/zh-cn.h | 13 ++- 9 files changed, 165 insertions(+), 90 deletions(-) diff --git a/src/commands/uart/glitch.c b/src/commands/uart/glitch.c index aac75565..c699e528 100644 --- a/src/commands/uart/glitch.c +++ b/src/commands/uart/glitch.c @@ -30,14 +30,15 @@ * blast of electromagnetic "noise" at the microcontroller * just as that branch instruction should execute. * - * So, this module is used to time either of those two attacks. + * This module is used to time either of those two attacks. + * + * A PIO program handles the actual timing and output control ************************************************************/ #include #include #include #include "pico/stdlib.h" -//#include "pico/time.h" #include "hardware/uart.h" #include "pirate.h" #include "pirate/bio.h" @@ -63,7 +64,10 @@ #define SYSTICK_PREEMPT_PRIORITY 0 #define SYSTICK_SUB_PRIORITY 0 -static const char* const usage[] = { "glitch\t[-h(elp)] [-c(onfig)]", +// maximum number of characters to receive in glitch loop +#define RX_CHAR_LIMIT 20 + +static const char* const usage[] = { "glitch\t[-h(elp)]", "UART glitch generator", "Exit: press Bus Pirate button" }; // config struct @@ -75,6 +79,7 @@ typedef struct _uart_glitch_config { uint32_t glitch_recycle; // minimum time (ms) between one glitch cycle and the next uint32_t fail_resp; // first character response from device on bad password uint32_t retry_count; // number of times to try glitching before quitting + uint32_t disable_ready; // when 1, do not check ready input } _uart_glitch_config; static struct _uart_glitch_config uart_glitch_config; @@ -82,7 +87,6 @@ static struct _uart_glitch_config uart_glitch_config; // help text static const struct ui_help_options options[] = { { 1, "", T_HELP_UART_GLITCH }, // command help - { 0, "-t", T_HELP_UART_BRIDGE_TOOLBAR }, { 0, "-h", T_HELP_FLAG }, // help }; @@ -115,6 +119,8 @@ static struct _pio_config glitch_pio; * the "normally bad password" response * .retry_count - max number of glitch cycles * before giving up + * .disable_ready - if == 1, do not check ready + * input during loop ************************************************/ static const struct prompt_item uart_glitch_trg_menu[] = { { T_UART_GLITCH_TRG_MENU_1 } }; static const struct prompt_item uart_glitch_dly_menu[] = { { T_UART_GLITCH_DLY_MENU_1 } }; @@ -123,6 +129,7 @@ static const struct prompt_item uart_glitch_lng_menu[] = { { T_UART_GLITCH_LNG_M static const struct prompt_item uart_glitch_cyc_menu[] = { { T_UART_GLITCH_CYC_MENU_1 } }; static const struct prompt_item uart_glitch_fail_menu[] = { { T_UART_GLITCH_FAIL_MENU_1 } }; static const struct prompt_item uart_glitch_cnt_menu[] = { { T_UART_GLITCH_CNT_MENU_1 } }; +static const struct prompt_item uart_glitch_nordy_menu[] = { { T_UART_GLITCH_NORDY_MENU_1 } }; static const struct ui_prompt uart_menu[] = { [0] = { .description = T_UART_GLITCH_TRG_MENU, .menu_items = uart_glitch_trg_menu, @@ -138,7 +145,7 @@ static const struct ui_prompt uart_menu[] = { [0] = { .description = T_UART_GLIT .menu_items_count = count_of(uart_glitch_dly_menu), .prompt_text = T_UART_GLITCH_DLY_PROMPT, .minval = 1, - .maxval = 500, + .maxval = 5000, .defval = 1, .menu_action = 0, .config = &prompt_int_cfg }, @@ -147,7 +154,7 @@ static const struct ui_prompt uart_menu[] = { [0] = { .description = T_UART_GLIT .menu_items_count = count_of(uart_glitch_vry_menu), .prompt_text = T_UART_GLITCH_VRY_PROMPT, .minval = 1, - .maxval = 10, + .maxval = 50, .defval = 1, .menu_action = 0, .config = &prompt_int_cfg }, @@ -156,7 +163,7 @@ static const struct ui_prompt uart_menu[] = { [0] = { .description = T_UART_GLIT .menu_items_count = count_of(uart_glitch_lng_menu), .prompt_text = T_UART_GLITCH_LNG_PROMPT, .minval = 1, - .maxval = 500, + .maxval = 5000, .defval = 1, .menu_action = 0, .config = &prompt_int_cfg }, @@ -187,6 +194,15 @@ static const struct ui_prompt uart_menu[] = { [0] = { .description = T_UART_GLIT .defval = 100, .menu_action = 0, .config = &prompt_int_cfg }, + [7] = { .description = T_UART_GLITCH_NORDY_MENU, + .menu_items = uart_glitch_nordy_menu, + .menu_items_count = count_of(uart_glitch_nordy_menu), + .prompt_text = T_UART_GLITCH_NORDY_PROMPT, + .minval = 0, + .maxval = 1, + .defval = 1, + .menu_action = 0, + .config = &prompt_int_cfg } }; void glitch_settings(void) { @@ -197,8 +213,16 @@ void glitch_settings(void) { ui_prompt_mode_settings_int(GET_T(T_UART_GLITCH_CYC_MENU), uart_glitch_config.glitch_recycle, "ms"); ui_prompt_mode_settings_int(GET_T(T_UART_GLITCH_FAIL_MENU), uart_glitch_config.fail_resp, "(ASCII)"); ui_prompt_mode_settings_int(GET_T(T_UART_GLITCH_CNT_MENU), uart_glitch_config.retry_count, 0x00); + ui_prompt_mode_settings_string(GET_T(T_UART_GLITCH_NORDY_MENU), + uart_glitch_config.disable_ready ? + GET_T(T_UART_GLITCH_NORDY_ENABLED) : + GET_T(T_UART_GLITCH_NORDY_DISABLED), 0x00); } +/****************************************************** + * Load config data, if file exists. Prompt user to + * enter config stuff, accept, or get out + *****************************************************/ uint32_t uart_glitch_setup(void) { uint32_t temp; prompt_result result; @@ -213,11 +237,15 @@ uint32_t uart_glitch_setup(void) { { "$.recycle", &uart_glitch_config.glitch_recycle, MODE_CONFIG_FORMAT_DECIMAL }, { "$.failchar", &uart_glitch_config.fail_resp, MODE_CONFIG_FORMAT_DECIMAL }, { "$.retries", &uart_glitch_config.retry_count, MODE_CONFIG_FORMAT_DECIMAL }, + { "$.noready", &uart_glitch_config.disable_ready, MODE_CONFIG_FORMAT_DECIMAL } // clang-format off }; if (storage_load_mode(config_file, config_t, count_of(config_t))) { - printf("\r\n\r\n%s%s%s\r\n", ui_term_color_info(), GET_T(T_USE_PREVIOUS_SETTINGS), ui_term_color_reset()); + printf("\r\n\r\n%s%s%s\r\n", ui_term_color_info(), + GET_T(T_USE_PREVIOUS_SETTINGS), + ui_term_color_reset()); + glitch_settings(); bool user_value; @@ -272,11 +300,22 @@ uint32_t uart_glitch_setup(void) { } uart_glitch_config.retry_count = temp; + ui_prompt_uint32(&result, &uart_menu[7], &temp); + if (result.exit) { + return 0; + } + uart_glitch_config.disable_ready = temp; + printf("\r\n"); - storage_save_mode(config_file, config_t, count_of(config_t)); + return (storage_save_mode(config_file, config_t, count_of(config_t))); } +/******************************************** + * The next 4 methods are used to start/stop + * a one-millisecond timer. The timer is + * used for checking for timeouts, etc. + ********************************************/ bool tick_inc(repeating_timer_t* ticker) { tick_count_ms++; return (true); @@ -284,7 +323,7 @@ bool tick_inc(repeating_timer_t* ticker) { void ticker_init() { tick_count_ms = 0; - add_repeating_timer_ms(-1, tick_inc, NULL, &ticker); + add_repeating_timer_ms(1, tick_inc, NULL, &ticker); } void ticker_kill() { @@ -302,7 +341,7 @@ static inline uint32_t get_ticks() { * - Pin 1 is an input used for the external glitching * device to indicate its readiness. For example, an * EMP type device may need some time to recharge before - * its ready again. + * its ready again. This check may be disabled by config. * * Enable PIO and get ready to go *******************************************************/ @@ -310,9 +349,6 @@ bool setup_hardware() { PRINT_INFO("glitch::Entering setup_hardware()\r\n"); bio_put(M_UART_RTS, 0); - // set the trigger low right away - bio_put(M_UART_GLITCH_TRG, 0); - // set up timer ticker_init(); @@ -355,13 +391,16 @@ void teardown_hardware() { } /****************************************************** - * Main glitch handler. Do the stuff - *****************************************************/ + * Main glitch handler. + ******************************************************/ void uart_glitch_handler(struct command_result* res) { + PRINT_INFO("glitch::Starting main glitch handler\r\n"); + if (ui_help_show(res->help_flag, usage, count_of(usage), &options[0], count_of(options))) { return; } + // Go get/set up config for glitching if (!uart_glitch_setup()) { printf("%s%s%s\r\n", ui_term_color_error(), GET_T(T_UART_GLITCH_SETUP_ERR), ui_term_color_reset()); return; @@ -371,21 +410,18 @@ void uart_glitch_handler(struct command_result* res) { return; } - bool toolbar_state = system_config.terminal_ansi_statusbar_pause; - bool pause_toolbar = !cmdln_args_find_flag('t' | 0x20); - if (pause_toolbar) { - system_config.terminal_ansi_statusbar_pause = true; - } - // set up and enable the two hardware pins, start the PIO program if (!setup_hardware()) { return; } - printf("\r\n%sUART glitching. Press Bus Pirate button to exit.%s\r\n", ui_term_color_info(), ui_term_color_reset()); + printf("\r\n%sUART glitching. Press Bus Pirate button to exit.%s\r\n", + ui_term_color_info(), ui_term_color_reset()); - // get the number of edges in the trigger character + // get the number of edges in the trigger character. This is UART + // serial, so if two consecutive bits are high, it's just one edge; + // that's what the goofy last_was_high thing is all about. uint32_t edges = 0; bool last_was_high = false; for (uint8_t ii = 0; ii < 8; ++ii) { @@ -413,7 +449,7 @@ void uart_glitch_handler(struct command_result* res) { char c; char trigger_char = (char)uart_glitch_config.glitch_trg; char fail_resp_char = (char)uart_glitch_config.fail_resp; - char resp_string[40]; + char resp_string[RX_CHAR_LIMIT]; size_t resp_count; uint32_t tick_start = 0; uint32_t glitch_min_delay = uart_glitch_config.glitch_delay; @@ -422,28 +458,21 @@ void uart_glitch_handler(struct command_result* res) { if (glitch_max_delay > 500) glitch_max_delay = 500; - // The main glitch loop starts here - // keep going until we either: - // + succeed in glitching the device - // + user presses the BP button - // + we exceeded the max number of tries - // + glitch hardware is not ready for more than 1 second (input B01) - // Basic logic flow: - // + wait until the device ready input is high - // + serial out the glitch trigger character - // + wait for some response - // + parse that response - if it starts with the "normal bad - // password character" then assume glitch failed - // + increment/test the max retries count - // + wait for the backoff period before retrying + // keep going until we've either: + // + successfuly glitched + // + BP button was pressed + // + hit max attempt count + // + the "ready" input was low for too long (tool timeout) while (!glitched && !cancelled && !done && !tool_timeout) { + // check for external device ready; allow BP button to - // exit + // exit. Tool timeout time is 1 second. + // This can be disabled by config setting tick_start = get_ticks(); - while (!bio_get(M_UART_GLITCH_RDY) && !cancelled && !tool_timeout) { + while (!bio_get(M_UART_GLITCH_RDY) && !cancelled && + !tool_timeout && !uart_glitch_config.disable_ready) { if (button_get(0)) { cancelled = true; - break; } if (get_ticks() - tick_start > 1000) { @@ -451,7 +480,7 @@ void uart_glitch_handler(struct command_result* res) { } } - if (tool_timeout) { + if (tool_timeout || cancelled) { break; } @@ -459,25 +488,26 @@ void uart_glitch_handler(struct command_result* res) { // first item is the "on" time for the glitch pulse // second item is the number of edges for the trigger character // third item is the delay before firing the pulse - // TODO - remove multiplier and modify PIO clock divisor instead; that will increase ranges - pio_sm_put_blocking(glitch_pio.pio, glitch_pio.sm, uart_glitch_config.glitch_time * 124); + // NOTE - multiplication by 19 is for scaling; future version may allow + // fractional microsecond timing + pio_sm_put_blocking(glitch_pio.pio, glitch_pio.sm, uart_glitch_config.glitch_time * 19); pio_sm_put_blocking(glitch_pio.pio, glitch_pio.sm, edges); - pio_sm_put_blocking(glitch_pio.pio, glitch_pio.sm, this_glitch_delay * 124); + pio_sm_put_blocking(glitch_pio.pio, glitch_pio.sm, this_glitch_delay * 19); - // serial out the trigger character - PRINT_DEBUG("glitch::UART-ing char\r\n"); + // serial out the trigger character. The stop bit transition is the + // trigger used by PIO to start timing uart_putc_raw(M_UART_PORT, trigger_char); // wait for a char to be RX'd. Allow the button // to break us out, if necessary - busy_wait_us_32(500); while (!uart_is_readable(M_UART_PORT) && !cancelled) { if (button_get(0)) { cancelled = true; } } - memset(resp_string, 0, 20); + // clear the response string and count + memset(resp_string, 0, RX_CHAR_LIMIT); resp_count = 0; // start parsing the response from the device being glitched. @@ -485,21 +515,30 @@ void uart_glitch_handler(struct command_result* res) { // "real" character. If that character is not the "normally // expected bad password character", then we consider the // glitch successful! - tick_start = get_ticks(); - while (uart_is_readable(M_UART_PORT) && !cancelled && ((get_ticks() - tick_start) < 50)) { + // There's a timeout on this, in case we don't get RX_CHAR_LIMIT - 1 + // characters + while (uart_is_readable(M_UART_PORT)) { c = uart_getc(M_UART_PORT); - if (c != '\r' && c != '\n') { + // Ignore any leading newlings/returns. Some devices add them + // before actual response text. Once we have received any valid + // character, allow a newline/return to end reception + if (resp_count > 0 || (c != '\r' && c != '\n')) { + if (c == '\r' || c == '\n') { + break; + } + + // continue building the string until we hit char limit resp_string[resp_count++] = c; - if (resp_count >= 19) { + if (resp_count >= (RX_CHAR_LIMIT - 1)) { break; } } - // short delay to wait for next character - busy_wait_us_32(100); + // a bit of delay between characters + busy_wait_us_32(500); } - printf("Attempt %3d at %dus RX: %s\r\n", tries + 1, this_glitch_delay, resp_string); + printf("Attempt %3d at %2dus RX: %s\r\n", tries + 1, this_glitch_delay, resp_string); // parse through the response. if our "normal bad password response" // character is present, then we didn't glitch :/ @@ -532,9 +571,12 @@ void uart_glitch_handler(struct command_result* res) { } // backoff wait time between cycles - busy_wait_ms(uart_glitch_config.glitch_recycle); + tick_start = get_ticks(); + if ((get_ticks() - tick_start) < uart_glitch_config.glitch_recycle) { + tight_loop_contents(); + } - // clear the rx buffer for next try + // read and discard any remaining RX chars before next try while (uart_is_readable(M_UART_PORT)) { c = uart_getc(M_UART_PORT); } @@ -555,8 +597,4 @@ void uart_glitch_handler(struct command_result* res) { // we're done, release the two hardware pins and PIO program teardown_hardware(); - - if (pause_toolbar) { - system_config.terminal_ansi_statusbar_pause = toolbar_state; - } -} \ No newline at end of file +} diff --git a/src/commands/uart/glitch.pio b/src/commands/uart/glitch.pio index 61fabbec..8b440824 100644 --- a/src/commands/uart/glitch.pio +++ b/src/commands/uart/glitch.pio @@ -40,9 +40,11 @@ static inline void uart_glitch_program_init(PIO pio, uint sm, uint offset, uint pio_gpio_init(pio, glitch_pin); pio_sm_set_consecutive_pindirs(pio, sm, glitch_pin, 1, true); pio_sm_set_consecutive_pindirs(pio, sm, tx_pin, 1, false); - + + float div = (float)clock_get_hz(clk_sys) / (2e7); + sm_config_set_clkdiv(&c, div); + pio_sm_init(pio, sm, offset, &c); - pio_sm_set_enabled(pio, sm, true); } %} \ No newline at end of file diff --git a/src/translation/base.h b/src/translation/base.h index 25a22afd..80521307 100644 --- a/src/translation/base.h +++ b/src/translation/base.h @@ -147,6 +147,11 @@ enum T_translations{ T_UART_GLITCH_CNT_MENU, T_UART_GLITCH_CNT_MENU_1, T_UART_GLITCH_CNT_PROMPT, + T_UART_GLITCH_NORDY_MENU, + T_UART_GLITCH_NORDY_MENU_1, + T_UART_GLITCH_NORDY_PROMPT, + T_UART_GLITCH_NORDY_DISABLED, + T_UART_GLITCH_NORDY_ENABLED, T_UART_GLITCH_GLITCHED, T_UART_GLITCH_CANCELLED, T_UART_GLITCH_DONE, diff --git a/src/translation/bs-ba.h b/src/translation/bs-ba.h index adeadf35..abce66ed 100644 --- a/src/translation/bs-ba.h +++ b/src/translation/bs-ba.h @@ -120,13 +120,13 @@ static char const * const bs_ba[T_LAST_ITEM_ALWAYS_AT_THE_END]={ [ T_UART_GLITCH_TRG_MENU_1 ] = "1 - 255", [ T_UART_GLITCH_TRG_PROMPT ] = "ASCII value of trigger character (13)", [ T_UART_GLITCH_DLY_MENU ] = "Glitch trigger delay", - [ T_UART_GLITCH_DLY_MENU_1 ] = "1 - 500", - [ T_UART_GLITCH_DLY_PROMPT ] = "Glitch trigger delay us (1)", + [ T_UART_GLITCH_DLY_MENU_1 ] = "1 - 5000", + [ T_UART_GLITCH_DLY_PROMPT ] = "Glitch trigger delay in us (1)", [ T_UART_GLITCH_VRY_MENU ] = "Glitch vary time", - [ T_UART_GLITCH_VRY_MENU_1 ] = "1 - 10", + [ T_UART_GLITCH_VRY_MENU_1 ] = "1 - 50", [ T_UART_GLITCH_VRY_PROMPT ] = "Glitch vary time in us (3)", [ T_UART_GLITCH_LNG_MENU ] = "Glitch output on time", - [ T_UART_GLITCH_LNG_MENU_1 ] = "1 - 500", + [ T_UART_GLITCH_LNG_MENU_1 ] = "1 - 5000", [ T_UART_GLITCH_LNG_PROMPT ] = "Glitch on time in us (1)", [ T_UART_GLITCH_CYC_MENU ] = "Glitch cycle delay", [ T_UART_GLITCH_CYC_MENU_1 ] = "10-1000", @@ -137,6 +137,11 @@ static char const * const bs_ba[T_LAST_ITEM_ALWAYS_AT_THE_END]={ [ T_UART_GLITCH_CNT_MENU ] = "Number of glitch attempts", [ T_UART_GLITCH_CNT_MENU_1 ] = "1 - 10000", [ T_UART_GLITCH_CNT_PROMPT ] = "Number of glitch attempts before quitting (100)", + [ T_UART_GLITCH_NORDY_MENU ] = "Bypass 'READY' input checking", + [ T_UART_GLITCH_NORDY_MENU_1 ] = "0, 1", + [ T_UART_GLITCH_NORDY_PROMPT ] = "0 to disable, 1 to enable (1)", + [ T_UART_GLITCH_NORDY_DISABLED ] = "Bypass disabled ('READY' check enforced)", + [ T_UART_GLITCH_NORDY_ENABLED ] = "Bypass enabled ('READY' check disabled)", [ T_UART_GLITCH_GLITCHED ] = "Target glitch success!", [ T_UART_GLITCH_CANCELLED ] = "Target glitch cancelled by button", [ T_UART_GLITCH_DONE ] = "Target glitch count exceeded, no glitch :/", diff --git a/src/translation/en-us.h b/src/translation/en-us.h index 6c563244..f4a8b155 100644 --- a/src/translation/en-us.h +++ b/src/translation/en-us.h @@ -119,13 +119,13 @@ static char const * const en_us[]={ [T_UART_GLITCH_TRG_MENU_1]="1 - 255", [T_UART_GLITCH_TRG_PROMPT]="ASCII value of trigger character (13)", [T_UART_GLITCH_DLY_MENU]="Glitch trigger delay", - [T_UART_GLITCH_DLY_MENU_1]="1 - 500", - [T_UART_GLITCH_DLY_PROMPT]="Glitch trigger delay us (1)", + [T_UART_GLITCH_DLY_MENU_1]="1 - 5000", + [T_UART_GLITCH_DLY_PROMPT]="Glitch trigger delay in us (1)", [T_UART_GLITCH_VRY_MENU]="Glitch vary time", - [T_UART_GLITCH_VRY_MENU_1] = "1 - 10", + [T_UART_GLITCH_VRY_MENU_1] = "1 - 50", [T_UART_GLITCH_VRY_PROMPT] = "Glitch vary time in us (3)", [T_UART_GLITCH_LNG_MENU]="Glitch output on time", - [T_UART_GLITCH_LNG_MENU_1]="1 - 500", + [T_UART_GLITCH_LNG_MENU_1]="1 - 5000", [T_UART_GLITCH_LNG_PROMPT]="Glitch on time in us (1)", [T_UART_GLITCH_CYC_MENU]="Glitch cycle delay", [T_UART_GLITCH_CYC_MENU_1]="10-1000", @@ -136,6 +136,11 @@ static char const * const en_us[]={ [T_UART_GLITCH_CNT_MENU]="Number of glitch attempts", [T_UART_GLITCH_CNT_MENU_1]="1 - 10000", [T_UART_GLITCH_CNT_PROMPT]="Number of glitch attempts before quitting (100)", + [T_UART_GLITCH_NORDY_MENU]="Bypass 'READY' input checking", + [T_UART_GLITCH_NORDY_MENU_1]="0, 1", + [T_UART_GLITCH_NORDY_PROMPT]="0 to disable, 1 to enable (1)", + [T_UART_GLITCH_NORDY_DISABLED]="Bypass disabled ('READY' check enforced)", + [T_UART_GLITCH_NORDY_ENABLED]="Bypass enabled ('READY' check disabled)", [T_UART_GLITCH_GLITCHED]="Target glitch success!", [T_UART_GLITCH_CANCELLED]="Target glitch cancelled by button", [T_UART_GLITCH_DONE]="Target glitch count exceeded, no glitch :/", diff --git a/src/translation/en-us.json b/src/translation/en-us.json index 9e2a9211..a64c0b29 100644 --- a/src/translation/en-us.json +++ b/src/translation/en-us.json @@ -111,13 +111,13 @@ "T_UART_GLITCH_TRG_MENU_1": "1 - 255", "T_UART_GLITCH_TRG_PROMPT": "ASCII value of trigger character (13)", "T_UART_GLITCH_DLY_MENU": "Glitch trigger delay", - "T_UART_GLITCH_DLY_MENU_1": "1 - 500", - "T_UART_GLITCH_DLY_PROMPT": "Glitch trigger delay us (1)", + "T_UART_GLITCH_DLY_MENU_1": "1 - 5000", + "T_UART_GLITCH_DLY_PROMPT": "Glitch trigger delay in us (1)", "T_UART_GLITCH_VRY_MENU": "Glitch vary time", - "T_UART_GLITCH_VRY_MENU_1": "1 - 10", + "T_UART_GLITCH_VRY_MENU_1": "1 - 50", "T_UART_GLITCH_VRY_PROMPT": "Glitch vary time in us (3)", "T_UART_GLITCH_LNG_MENU": "Glitch output on time", - "T_UART_GLITCH_LNG_MENU_1": "1 - 500", + "T_UART_GLITCH_LNG_MENU_1": "1 - 5000", "T_UART_GLITCH_LNG_PROMPT": "Glitch on time in us (1)", "T_UART_GLITCH_CYC_MENU": "Glitch cycle delay", "T_UART_GLITCH_CYC_MENU_1": "10-1000", @@ -128,6 +128,11 @@ "T_UART_GLITCH_CNT_MENU": "Number of glitch attempts", "T_UART_GLITCH_CNT_MENU_1": "1 - 10000", "T_UART_GLITCH_CNT_PROMPT": "Number of glitch attempts before quitting (100)", + "T_UART_GLITCH_NORDY_MENU": "Bypass 'READY' input checking", + "T_UART_GLITCH_NORDY_MENU_1": "0, 1", + "T_UART_GLITCH_NORDY_PROMPT": "0 to disable, 1 to enable (1)", + "T_UART_GLITCH_NORDY_DISABLED": "Bypass disabled ('READY' check enforced)", + "T_UART_GLITCH_NORDY_ENABLED": "Bypass enabled ('READY' check disabled)", "T_UART_GLITCH_GLITCHED": "Target glitch success!", "T_UART_GLITCH_CANCELLED": "Target glitch cancelled by button", "T_UART_GLITCH_DONE": "Target glitch count exceeded, no glitch :/", diff --git a/src/translation/it-it.h b/src/translation/it-it.h index 781e051c..9c64fba6 100644 --- a/src/translation/it-it.h +++ b/src/translation/it-it.h @@ -120,13 +120,13 @@ static char const * const it_it[T_LAST_ITEM_ALWAYS_AT_THE_END]={ [ T_UART_GLITCH_TRG_MENU_1 ] = "1 - 255", [ T_UART_GLITCH_TRG_PROMPT ] = "ASCII value of trigger character (13)", [ T_UART_GLITCH_DLY_MENU ] = "Glitch trigger delay", - [ T_UART_GLITCH_DLY_MENU_1 ] = "1 - 500", - [ T_UART_GLITCH_DLY_PROMPT ] = "Glitch trigger delay us (1)", + [ T_UART_GLITCH_DLY_MENU_1 ] = "1 - 5000", + [ T_UART_GLITCH_DLY_PROMPT ] = "Glitch trigger delay in us (1)", [ T_UART_GLITCH_VRY_MENU ] = "Glitch vary time", - [ T_UART_GLITCH_VRY_MENU_1 ] = "1 - 10", + [ T_UART_GLITCH_VRY_MENU_1 ] = "1 - 50", [ T_UART_GLITCH_VRY_PROMPT ] = "Glitch vary time in us (3)", [ T_UART_GLITCH_LNG_MENU ] = "Glitch output on time", - [ T_UART_GLITCH_LNG_MENU_1 ] = "1 - 500", + [ T_UART_GLITCH_LNG_MENU_1 ] = "1 - 5000", [ T_UART_GLITCH_LNG_PROMPT ] = "Glitch on time in us (1)", [ T_UART_GLITCH_CYC_MENU ] = "Glitch cycle delay", [ T_UART_GLITCH_CYC_MENU_1 ] = "10-1000", @@ -137,6 +137,11 @@ static char const * const it_it[T_LAST_ITEM_ALWAYS_AT_THE_END]={ [ T_UART_GLITCH_CNT_MENU ] = "Number of glitch attempts", [ T_UART_GLITCH_CNT_MENU_1 ] = "1 - 10000", [ T_UART_GLITCH_CNT_PROMPT ] = "Number of glitch attempts before quitting (100)", + [ T_UART_GLITCH_NORDY_MENU ] = "Bypass 'READY' input checking", + [ T_UART_GLITCH_NORDY_MENU_1 ] = "0, 1", + [ T_UART_GLITCH_NORDY_PROMPT ] = "0 to disable, 1 to enable (1)", + [ T_UART_GLITCH_NORDY_DISABLED ] = "Bypass disabled ('READY' check enforced)", + [ T_UART_GLITCH_NORDY_ENABLED ] = "Bypass enabled ('READY' check disabled)", [ T_UART_GLITCH_GLITCHED ] = "Target glitch success!", [ T_UART_GLITCH_CANCELLED ] = "Target glitch cancelled by button", [ T_UART_GLITCH_DONE ] = "Target glitch count exceeded, no glitch :/", diff --git a/src/translation/pl-pl.h b/src/translation/pl-pl.h index 9ba4eb44..2de8f375 100644 --- a/src/translation/pl-pl.h +++ b/src/translation/pl-pl.h @@ -120,13 +120,13 @@ static char const * const pl_pl[T_LAST_ITEM_ALWAYS_AT_THE_END]={ [ T_UART_GLITCH_TRG_MENU_1 ] = "1 - 255", [ T_UART_GLITCH_TRG_PROMPT ] = "ASCII value of trigger character (13)", [ T_UART_GLITCH_DLY_MENU ] = "Glitch trigger delay", - [ T_UART_GLITCH_DLY_MENU_1 ] = "1 - 500", - [ T_UART_GLITCH_DLY_PROMPT ] = "Glitch trigger delay us (1)", + [ T_UART_GLITCH_DLY_MENU_1 ] = "1 - 5000", + [ T_UART_GLITCH_DLY_PROMPT ] = "Glitch trigger delay in us (1)", [ T_UART_GLITCH_VRY_MENU ] = "Glitch vary time", - [ T_UART_GLITCH_VRY_MENU_1 ] = "1 - 10", + [ T_UART_GLITCH_VRY_MENU_1 ] = "1 - 50", [ T_UART_GLITCH_VRY_PROMPT ] = "Glitch vary time in us (3)", [ T_UART_GLITCH_LNG_MENU ] = "Glitch output on time", - [ T_UART_GLITCH_LNG_MENU_1 ] = "1 - 500", + [ T_UART_GLITCH_LNG_MENU_1 ] = "1 - 5000", [ T_UART_GLITCH_LNG_PROMPT ] = "Glitch on time in us (1)", [ T_UART_GLITCH_CYC_MENU ] = "Glitch cycle delay", [ T_UART_GLITCH_CYC_MENU_1 ] = "10-1000", @@ -137,6 +137,11 @@ static char const * const pl_pl[T_LAST_ITEM_ALWAYS_AT_THE_END]={ [ T_UART_GLITCH_CNT_MENU ] = "Number of glitch attempts", [ T_UART_GLITCH_CNT_MENU_1 ] = "1 - 10000", [ T_UART_GLITCH_CNT_PROMPT ] = "Number of glitch attempts before quitting (100)", + [ T_UART_GLITCH_NORDY_MENU ] = "Bypass 'READY' input checking", + [ T_UART_GLITCH_NORDY_MENU_1 ] = "0, 1", + [ T_UART_GLITCH_NORDY_PROMPT ] = "0 to disable, 1 to enable (1)", + [ T_UART_GLITCH_NORDY_DISABLED ] = "Bypass disabled ('READY' check enforced)", + [ T_UART_GLITCH_NORDY_ENABLED ] = "Bypass enabled ('READY' check disabled)", [ T_UART_GLITCH_GLITCHED ] = "Target glitch success!", [ T_UART_GLITCH_CANCELLED ] = "Target glitch cancelled by button", [ T_UART_GLITCH_DONE ] = "Target glitch count exceeded, no glitch :/", diff --git a/src/translation/zh-cn.h b/src/translation/zh-cn.h index b56635ff..c4c2a13a 100644 --- a/src/translation/zh-cn.h +++ b/src/translation/zh-cn.h @@ -120,13 +120,13 @@ static char const * const zh_cn[T_LAST_ITEM_ALWAYS_AT_THE_END]={ [ T_UART_GLITCH_TRG_MENU_1 ] = "1 - 255", [ T_UART_GLITCH_TRG_PROMPT ] = "ASCII value of trigger character (13)", [ T_UART_GLITCH_DLY_MENU ] = "Glitch trigger delay", - [ T_UART_GLITCH_DLY_MENU_1 ] = "1 - 500", - [ T_UART_GLITCH_DLY_PROMPT ] = "Glitch trigger delay us (1)", + [ T_UART_GLITCH_DLY_MENU_1 ] = "1 - 5000", + [ T_UART_GLITCH_DLY_PROMPT ] = "Glitch trigger delay in us (1)", [ T_UART_GLITCH_VRY_MENU ] = "Glitch vary time", - [ T_UART_GLITCH_VRY_MENU_1 ] = "1 - 10", + [ T_UART_GLITCH_VRY_MENU_1 ] = "1 - 50", [ T_UART_GLITCH_VRY_PROMPT ] = "Glitch vary time in us (3)", [ T_UART_GLITCH_LNG_MENU ] = "Glitch output on time", - [ T_UART_GLITCH_LNG_MENU_1 ] = "1 - 500", + [ T_UART_GLITCH_LNG_MENU_1 ] = "1 - 5000", [ T_UART_GLITCH_LNG_PROMPT ] = "Glitch on time in us (1)", [ T_UART_GLITCH_CYC_MENU ] = "Glitch cycle delay", [ T_UART_GLITCH_CYC_MENU_1 ] = "10-1000", @@ -137,6 +137,11 @@ static char const * const zh_cn[T_LAST_ITEM_ALWAYS_AT_THE_END]={ [ T_UART_GLITCH_CNT_MENU ] = "Number of glitch attempts", [ T_UART_GLITCH_CNT_MENU_1 ] = "1 - 10000", [ T_UART_GLITCH_CNT_PROMPT ] = "Number of glitch attempts before quitting (100)", + [ T_UART_GLITCH_NORDY_MENU ] = "Bypass 'READY' input checking", + [ T_UART_GLITCH_NORDY_MENU_1 ] = "0, 1", + [ T_UART_GLITCH_NORDY_PROMPT ] = "0 to disable, 1 to enable (1)", + [ T_UART_GLITCH_NORDY_DISABLED ] = "Bypass disabled ('READY' check enforced)", + [ T_UART_GLITCH_NORDY_ENABLED ] = "Bypass enabled ('READY' check disabled)", [ T_UART_GLITCH_GLITCHED ] = "Target glitch success!", [ T_UART_GLITCH_CANCELLED ] = "Target glitch cancelled by button", [ T_UART_GLITCH_DONE ] = "Target glitch count exceeded, no glitch :/",