void vTinyshTask(void * pvParameters) { int again = 1; unsigned char c; tinysh_set_prompt(":>"); tinysh_add_command(&myfoocmd); tinysh_add_command(&ctxcmd); tinysh_add_command(&item1); tinysh_add_command(&item2); { tinysh_cmd_t quitcmd={0, "quit", "exit shell", 0, reset_to_0, (void *) &again,0,0}; tinysh_add_command(&quitcmd); } while(again) { c=UART0_Getchar(); tinysh_char_in((unsigned char) c); } printf("\n\rTinysh exiting\n\r"); while(1); }
portTASK_FUNCTION(shell, pvParameters ) { int c; xTaskHandle xHandle; printf("\n%s v%s\r\n", NAMA_BOARD, VERSI_KOMON); printf("Daun Biru Engineering, Des 2008\r\n"); printf("=========================================\r\n"); printf("ARM-GCC %s : %s : %s\r\n", __VERSION__, __DATE__, __TIME__); printf("CPU = LPC 2387, %d MHz,", configCPU_CLOCK_HZ/1000000); printf(" FreeRTOS 5.1.1\r\n"); if (configUSE_PREEMPTION == 0) printf("NON Preemptive kernel digunakan !\r\n"); else printf("Preemptive kernel digunakan !\r\n"); #ifdef USB_TEST Host_Init(); /* Initialize the lpc2468 host controller */ //c = Host_EnumDev(); /* Enumerate the device connected */ // if (c == 0) printf("Ketemu !\r\n"); #if 1 if (OHCIInit() == 0) { printf("------------ Init error \r\n"); } //install_usb_interrupt(); #endif #endif /* * add command */ //tinysh_add_command(&myfoocmd); tinysh_add_command(&printenv_cmd); tinysh_add_command(&setenv_cmd); // tinysh_add_command(&save_env_cmd); tinysh_add_command(&reset_cmd); tinysh_add_command(&cek_stack_cmd); tinysh_add_command(&uptime_cmd); tinysh_add_command(&version_cmd); #ifdef BOARD_KOMON_KONTER tinysh_add_command(&cek_rpm_cmd); tinysh_add_command(&set_kanal_cmd); #endif //#ifdef BOARD_TAMPILAN #ifdef CARI_SUMBER tinysh_add_command(&cek_sumber_cmd); tinysh_add_command(&set_sumber_cmd); //tinysh_add_command(&cek_mesin_cmd); //tinysh_add_command(&set_mesin_cmd); //tinysh_add_command(&cek_titik_cmd); //tinysh_add_command(&set_titik_cmd); tinysh_add_command(&save_sumber_cmd); //tinysh_add_command(&save_mesin_cmd); //tinysh_add_command(&save_titik_cmd); #endif #ifdef BOARD_KOMON_A_RTD tinysh_add_command(&cek_adc_cmd); tinysh_add_command(&set_kanal_cmd); #endif #ifdef BOARD_KOMON_420_SAJA #ifdef PAKAI_ADC tinysh_add_command(&cek_adc_cmd); tinysh_add_command(&lihat_data_cmd); #endif tinysh_add_command(&set_kanal_cmd); #endif #ifdef BOARD_KOMON_420_SABANG #ifdef PAKAI_ADC tinysh_add_command(&cek_adc_cmd); //tinysh_add_command(&lihat_data_cmd); tinysh_add_command(&set_kanal_cmd); #endif #endif #ifdef BOARD_KOMON_B_THERMO tinysh_add_command(&cek_adc_cmd); tinysh_add_command(&set_kanal_cmd); #endif #ifdef PAKE_TELNETD tinysh_add_command(&matikan_telnet_cmd); #endif #ifdef PAKAI_PM // tinysh_add_command(&cek_pm_cmd); // tinysh_add_command(&set_pm_cmd); // tinysh_add_command(&cek_konfig_pmnya_cmd); #endif #ifdef PAKAI_GSM_FTP tinysh_add_command(&set_modem_ftp_cmd); tinysh_add_command(&cek_modem_cmd); tinysh_add_command(&set_modem_gsm_cmd); tinysh_add_command(&gsm_ftp_cmd); tinysh_add_command(&cek_ftp_cmd); #endif #ifdef PAKAI_SMS tinysh_add_command(&cek_pulsa_cmd); tinysh_add_command(&kirim_sms_cmd); tinysh_add_command(&hapus_sms_cmd); tinysh_add_command(&baca_sms_cmd); tinysh_add_command(&baca_sms_semua_cmd); tinysh_add_command(&sms_monita_cmd); #endif #ifdef PAKAI_CRON tinysh_add_command(&set_cron_cmd); tinysh_add_command(&cek_cron_cmd); #endif //#ifdef CARI_SUMBERNYA #ifdef BOARD_TAMPILAN tinysh_add_command(&cek_group_cmd); tinysh_add_command(&set_group_cmd); //tinysh_add_command(&cek_sumber_cmd); //tinysh_add_command(&set_sumber_cmd); // data //tinysh_add_command(&set_data_cmd); //tinysh_add_command(&cek_data_cmd); //printf("board_tampilan\r\n"); #endif vTaskDelay(100); #ifdef BANYAK_SUMBER tinysh_add_command(&cek_sumber_cmd); tinysh_add_command(&set_sumber_cmd); tinysh_add_command(&set_data_cmd); tinysh_add_command(&cek_data_cmd); //printf("banyak sumber\r\n"); #endif vTaskDelay(100); #if (VERSI_KONFIGx == 2) tinysh_add_command(&cek_group_cmd); tinysh_add_command(&set_group_cmd); tinysh_add_command(&cek_sumber_cmd); tinysh_add_command(&set_sumber_cmd); // data tinysh_add_command(&set_data_cmd); tinysh_add_command(&cek_data_cmd); #endif // simpan file #ifdef PAKAI_FILE_SIMPAN tinysh_add_command(&cek_file_cmd); tinysh_add_command(&set_file_cmd); tinysh_add_command(&del_direktori_cmd); tinysh_add_command(&cari_doku_cmd); tinysh_add_command(&hapus_filenya_cmd); #endif #ifdef CENDOL tinysh_add_command(&cek_konfig_cmd); tinysh_add_command(&set_konfig_cmd); #endif #ifdef PAKAI_MULTI_SERIAL #if defined(PAKAI_SERIAL_1) || defined(PAKAI_SERIAL_2) || defined(PAKAI_SERIAL_3) tinysh_add_command(&kirim_serial_cmd); #endif #endif /* add sub commands */ //tinysh_add_command(&ctxcmd); //tinysh_add_command(&item1); //tinysh_add_command(&item2); /* use a command from the stack * !!! this is only possible because the shell will have exited * before the stack of function main !!! */ /* { tinysh_cmd_t quitcmd={0,"quit","exit shell",0,reset_to_0, (void *)&again,0,0}; tinysh_add_command(&quitcmd); }*/ /* add atoxi support test command */ //tinysh_add_command(&atoxi_cmd); /* add a background command */ //tinysh_add_command(&bgcmd); //xTaskCreate( bg_cmd_thread, "bg_cmd", 1000, NULL, 2, &xHandle); #ifdef PAKAI_MMC vTaskDelay(340); #else vTaskDelay(450); #endif #ifdef PAKAI_SELENOID static tinysh_cmd_t set_relay_cmd={0,"set_relay","setting relay", "help default ",set_relay,0,0,0}; tinysh_add_command(&set_relay_cmd); #endif //#ifdef BOARD_TAMPILAN #ifdef CARI_SUMBERx // cek ukuran struk printf("size struct Mesin = %d\r\n", sizeof (struct t_mesin) * JML_MESIN); printf("size struct Sumber = %d\r\n", sizeof (struct t_sumber) * JML_SUMBER); printf("size struct Titik = %d\r\n", sizeof (struct t_titik) * JML_MESIN * TIAP_MESIN); //printf("size struct sambungan = %d\r\n", sizeof (samb)); #endif #ifdef BOARD_KOMON_420_SAJA kalibrasi_adc1(); vTaskDelay(100); start_adc_1(); #endif #ifdef BOARD_KOMON_420_SABANG #ifdef PAKAI_ADC kalibrasi_adc1(); vTaskDelay(100); start_adc_1(); #endif vTaskDelay(100); #endif #ifdef BOARD_KOMON_A_RTD kalibrasi_adc1(); vTaskDelay(100); start_adc_1(); #endif #ifdef BOARD_KOMON_B_THERMO kalibrasi_adc1(); vTaskDelay(100); start_adc_1(); #endif #ifdef BOARD_KOMON_KONTER #ifdef PAKAI_RTC rtc_init(); vTaskDelay(100); //baca_rtc_mem(); #endif #endif #ifdef PAKAI_MMC tinysh_add_command(&util_ls_cmd); tinysh_add_command(&util_mkdir_cmd); tinysh_add_command(&util_cd_cmd); tinysh_add_command(&util_pwd_cmd); tinysh_add_command(&util_view_cmd); init_gpio_mmc(); uncs_mmc(); vTaskDelay(5); set_fs_mount(); vTaskDelay(5); status_MMC = cek_fs_free(); struct t_simpan_file *ts; ts = (char *) ALMT_SFILE; vTaskDelay(5); if (status_MMC) { printf("_____MMC ERROR !!!!_____ %d\r\n", status_MMC); if (status_MMC==13) printf("_____MMC FR_NO_FILESYSTEM, kudu diformat FAT32 !!!\r\n"); if (ts->set==1) { set_file_mati(); printf("simpan data ke file dimatikan !!\r\n"); } } else { status_MMC = 1; printf("MMC aktif. Siap simpan data: %d\r\n", status_MMC); } /* FR_NOT_READY, 3 FR_NO_FILE, 4 FR_NO_PATH, 5 FR_INVALID_NAME, 6 FR_DENIED, 7 FR_EXIST, 8 FR_INVALID_OBJECT, 9 FR_WRITE_PROTECTED, 10 FR_INVALID_DRIVE, 11 FR_NOT_ENABLED, 12 FR_NO_FILESYSTEM, 13 FR_MKFS_ABORTED, 14 FR_TIMEOUT 15 //*/ sprintf(abs_path, "%s", ""); #endif #ifdef PAKAI_RTC tinysh_add_command(&set_date_cmd); #endif struct t_env *envx; envx = (char *) ALMT_ENV; sprintf(str,"%s%d$ ", PROMPT, (envx->IP3)); tinysh_set_prompt(str); //tinysh_set_prompt( PROMPT ); /* force untuk tampil prompt */ tinysh_char_in('\r'); int perdetiknya=0; /* printf("nChr: %d, nInt: %d, nLInt: %d, nFloat: %d, nDouble: %d\r\n", \ sizeof(char), sizeof(int), sizeof(long int), sizeof(float), sizeof(double)); printf("nChr: %d, nInt: %d, nLInt: %d, nFloat: %d, nDouble: %d\r\n", \ 255, 20000000, 20000000, 20000000, 20000000); //*/ /* * main loop shell */ int lop = 0; while(1) { vTaskDelay(1); lop++; if (xSerialGetChar(1, &c, 100 ) == pdTRUE) { lop = 0; tinysh_char_in((unsigned char)c); } /* dilindungi password setiap menit tidak ada aktifitas*/ if (lop > 6000) { lop = 0; printf("\r\nPasswd lock!\r\n"); while(1) { if (xSerialGetChar(1, &c, 100) == pdTRUE) { if (proses_passwd( &c ) == 1) break; } #ifdef PAKAI_MMC #ifdef PAKAI_FILE_SIMPAN perdetiknya++; if (perdetiknya==10 && status_MMC==1) { proses_simpan_file(); perdetiknya=0; } #endif #endif #ifdef PAKAI_ADC #ifdef BOARD_KOMON_A_RTD proses_data_adc(); #endif #ifdef BOARD_KOMON_B_THERMO proses_data_adc(); #endif #ifdef BOARD_KOMON_420_SABANG proses_data_adc(); #endif #ifdef BOARD_KOMON_420_SAJA proses_data_adc(); hitung_datanya(); #endif simpan_ke_data_f(); #endif #ifdef BOARD_KOMON_KONTER data_frek_rpm(); #endif } } // pembacaaan ADC dipindah dari task eth ke shell 1 Okt 2010. #ifdef PAKAI_ADC #ifdef BOARD_KOMON_A_RTD proses_data_adc(); #endif #ifdef BOARD_KOMON_B_THERMO proses_data_adc(); #endif #ifdef BOARD_KOMON_420_SAJA proses_data_adc(); hitung_datanya(); #endif #ifdef BOARD_KOMON_420_SABANG proses_data_adc(); #endif simpan_ke_data_f(); #endif #ifdef BOARD_KOMON_KONTER data_frek_rpm(); #endif #ifdef PAKAI_MMC #ifdef PAKAI_FILE_SIMPAN perdetiknya++; if (perdetiknya==10 && status_MMC==1) { proses_simpan_file(); perdetiknya=0; } #endif #endif #ifdef USB_TEST c = HC_INT_STAT ; { printf("%4d: usb stat 0x%X\r\n", lop, c); HC_INT_STAT |= c; usb_terup = 0; } #endif } return; }
void cmd_shell() { #ifdef PAKAI_TINYSH #ifdef PAKAI_CONTOH_SHELL tinysh_add_command(&myfoocmd); #endif tinysh_add_command(&cek_env_cmd); tinysh_add_command(&set_env_cmd); tinysh_add_command(&cek_struct_cmd); tinysh_add_command(&set_kanal_cmd); tinysh_add_command(&cek_kanal_cmd); tinysh_add_command(&set_data_cmd); tinysh_add_command(&cek_data_cmd); tinysh_add_command(&cek_sumber_cmd); tinysh_add_command(&set_sumber_cmd); // tinysh_add_command(&cek_sumber_temp_cmd); tinysh_add_command(&reset_cmd); tinysh_add_command(&task_list_cmd); tinysh_add_command(&cek_stack_cmd); // tinysh_add_command(&task_run_time_cmd); tinysh_add_command(&idle_tick_cmd); tinysh_add_command(&sektor_free_cmd); tinysh_add_command(&hapus_sektor_rom_cmd); tinysh_add_command(&simpan_sektor_rom_cmd); tinysh_add_command(&simpan_struct_rom_cmd); tinysh_add_command(&kopi_sektor_cmd); tinysh_add_command(&baca_rom_cmd); #ifdef PAKAI_ADC_7708 tinysh_add_command(&cek_adc_cmd); #endif #ifdef PAKAI_RTC tinysh_add_command(&set_date_cmd); //tinysh_add_command(&cek_flag_rtc_cmd); //tinysh_add_command(&init_rtc_cmd); tinysh_add_command(&kalender_rtc_cmd); tinysh_add_command(&uptime_cmd); tinysh_add_command(&set_rtc_mem_cmd); tinysh_add_command(&cek_rtc_mem_cmd); #endif #if 0 #ifdef PAKAI_SDCARD tinysh_add_command(&cek_sdc_cmd); tinysh_add_command(&cek_free_cluster_cmd); tinysh_add_command(&cek_read_cmd); //tinysh_add_command(&cek_read_sektor_cmd); tinysh_add_command(&cek_pwd_cmd); tinysh_add_command(&cek_ls_cmd); #endif #endif #ifdef PAKAI_SDCARD tinysh_add_command(&util_cd_cmd); tinysh_add_command(&util_pwd_cmd); tinysh_add_command(&util_ls_cmd); tinysh_add_command(&util_mkdir_cmd); tinysh_add_command(&util_view_cmd); tinysh_add_command(&util_rm_cmd); tinysh_add_command(&simpan_file_cmd); tinysh_add_command(&cek_file_cmd); tinysh_add_command(&set_file_cmd); tinysh_add_command(&upload_file_cmd); #endif #endif }