void vt100_init() { console_usb_init(); /* init microrl */ microrl_init (µrl, microrl_cmdline, µrl_history, rlprint); microrl_set_execute_callback (µrl, rlexecute); // microrl_set_complete_callback (µrl, complet); microrl_set_sigint_callback(µrl, rlsigint); }
void console_init(int qlen) { /* Microrl init */ microrl_init (prl, &rl_print); microrl_set_execute_callback (prl, execute); microrl_set_sigint_callback(prl, sigint); char *p = env_get("hostname"); if (p) microrl_set_prompt(p); console_printf("\n === Press enter to activate this console === \n"); os_event_t *queue = os_malloc(sizeof(os_event_t) * qlen); system_os_task(task_console, CONSOLE_PRIO, queue, qlen); }
//***************************************************************************** //dummy function, no need on linux-PC void init (void){ // Console terminal init // call init with ptr to microrl instance and print callback microrl_init (prl, print); // set callback for execute microrl_set_execute_callback (prl, execute); #ifdef _USE_COMPLETE // set callback for completion microrl_set_complete_callback (prl, complet); #endif // set callback for Ctrl+C microrl_set_sigint_callback (prl, sigint); };
void main() { __disable_interrupt(); init_core(); init_device(); init_wdt(); __enable_interrupt(); microrl_init (pointerMicrorl, &serprintf); microrl_set_execute_callback (pointerMicrorl, execute); microrl_set_complete_callback (pointerMicrorl, complet); microrl_set_sigint_callback (pointerMicrorl, sigint); init_app_settings(); print_revision(); DEBUG_PRINTF("FlashMem: %s %s\n\r", get_family_desc_at25df(), get_density_desc_at25df()); enable_default_lis3dh(); init_tasks(); init_reco_drift(); init_can_j1939(); DEBUG_PRINTF("\r\n\r\n"); while (1) { if (pointerRingBuff->size(pointerRingBuff) > 0) { const uint8_t data = pointerRingBuff->get(pointerRingBuff); if (!get_proto_type()) { microrl_insert_char (pointerMicrorl, data); } else { sdp_insert_char(data); } } poll_can_msg(); run_tasks(); clear_wdt(); } }
//***************************************************************************** int main (void/*int argc, char ** argv*/) { init(); // call init with ptr to microrl instance and print callback microrl_init(prl, print); // set callback for execute microrl_set_execute_callback(prl, execute); #ifdef _USE_COMPLETE // set callback for completion microrl_set_complete_callback(prl, complete); #endif // set callback for Ctrl+C microrl_set_sigint_callback(prl, sigint); while (1) { // put received char from stdin to microrl lib microrl_insert_char(prl, get_char()); } return 0; }
static msg_t ShellThread(void *arg){ chRegSetThreadName("Shell"); chThdSleepMilliseconds(1000); /* init static pointer for serial driver with received pointer */ shell_sdp = (SerialUSBDriver *)arg; // create and init microrl object microrl_t microrl_shell; // cli_print("@@*** Super cool device, version 1.2.3, for help type help... ***@@\r\n"); microrl_init(µrl_shell, cli_print); // set callback for execute microrl_set_execute_callback(µrl_shell, execute); // set callback for completion (optionally) microrl_set_complete_callback(µrl_shell, complete); // set callback for ctrl+c handling (optionally) microrl_set_sigint_callback(µrl_shell, sigint); while (TRUE){ // put received char from stdin to microrl lib msg_t c = sdGetTimeout(shell_sdp, MS2ST(50)); if (c != Q_TIMEOUT) microrl_insert_char(µrl_shell, (char)c); /* умираем по всем правилам, не забываем убить потомков */ if (chThdShouldTerminate()){ if ((current_cmd_tp != NULL) && (current_cmd_tp->p_state != THD_STATE_FINAL)){ chThdTerminate(current_cmd_tp); chThdWait(current_cmd_tp); } chThdExit(0); } } return 0; }