void ShellAllClear(void) { ShellPutByte(0x1b); ShellPrintf("c"); ShellPutByte(0x1b); ShellPrintf("[m"); ShellPutByte(0x1b); ShellPrintf("[2J\n\r\r\r\r\r\r\r"); }
void showGlobalErrorVectorAndClear (int argc, char **argv) { (void)argc; (void)argv; ShellPrintf("\nGlobalErrorVector before clear = %#x", globalErrorVector); globalErrorVector = 0; ShellPrintf("\nGlobalErrorVector after clear = %#x", globalErrorVector); ShellPrintf(PROMPT); }
char* movePtrShell (char* ptrTemp) { if (ptrTemp >= ptrEndShellBuffer) { ptrTemp = ptrStartShellBuffer; #if (PrintDebug >= 2) ShellPrintf ("reached ptrEndShellBuffer %#x \r\n", (long int) ptrEndShellBuffer); ShellPrintf ("ptrTemp = ptrStartShellBuffer %#x \r\n", (long int) ptrStartShellBuffer); #endif } else { ptrTemp++; } return ptrTemp; }
void loadSTM32F4 (int argc, char **argv) { (void)argc; (void)argv; ShellPrintf("\nMonitoring starts within 5 sec\r\n"); g_i16_showLoad = TRUE; }
void helpShell (int argc, char **argv) { int index; (void)argc; (void)argv; ShellPrintf("\r\n"); for (index = 0; index < NUM_CMDSHELL; index++) { ShellPrintf(HELPFORMATSHELL, CMDSHELLTAB[index].cmd, CMDSHELLTAB[index].description, // CMDSHELLTAB[index].cmd, CMDSHELLTAB[index].syntax); } ShellPrintf(PROMPT); }
void commandinterpreter(char Buffer[]) { int argc; char *argv[MAX_ARGS + 1]; /* One extra for NULL terminator */ removeBsDel(Buffer); argc = make_argv(Buffer,argv); if (argc) { int i; for (i = 0; i < NUM_CMDSHELL; i++) { if (strcasecmp(CMDSHELLTAB[i].cmd,argv[0]) == 0) { if (((argc-1) >= CMDSHELLTAB[i].min_args) && ((argc-1) <= CMDSHELLTAB[i].max_args)) { CMDSHELLTAB[i].func(argc,argv); return; } else { ShellPrintf(SYNTAXSHELL,argv[0]); ShellPrintf(PROMPT); return; } } } ShellPrintf(INVCMD,argv[0]); ShellPrintf(HELPMSG); } ShellPrintf(PROMPT); }
void ShellDaemon (void *pvParameters) { portTickType xLastExecutionTime; portTickType xTimeToWait = TSK_Shell_PERIOD; (void) pvParameters; xLastExecutionTime = xTaskGetTickCount(); initPtrShellBuffer(); for(;;) { parseShell(); vTaskDelayUntil(&xLastExecutionTime,xTimeToWait); } // should never reach this line ShellPrintf("shit happens!!, uDaemon terminate itself\r\n"); vTaskDelete(NULL); }
void parseShell (void) { int i = 0; int k = 0; char ShellCommandLocal[MAX_LINE]; char* ptrReadShellBufferTemp = ptrReadShellBuffer; #if (PrintDebug >= 2) ShellPrintf ("START parseShell ptrReadShellBuffer %#x\r\n", ptrReadShellBuffer); #endif while (!nextPtrEqDMAWritePtr()) { ShellCommandLocal[i] = *ptrReadShellBuffer; if (ShellCommandLocal[i] == '\r') { g_i16_showLoad = FALSE; break; } i++; } if(ShellCommandLocal[i] == '\r') { for (k=0; k <= i; k++) { ShellCommand[k] = ShellCommandLocal[k]; } ShellCommand[k-1] = 0; // overwriting \r with zero terminate char commandinterpreter(ShellCommand); } else { ptrReadShellBuffer = ptrReadShellBufferTemp; } }
int nextPtrEqDMAWritePtr (void) { char* ptrReadShellBufferTemp; ptrWriter = g_c_DMA_USART3Buffer1 + ( size_DMA_Buffer_Shell ) - ( DMA_GetCurrDataCounter( DMA1_Stream1 ) ); if(ptrWriter == g_c_DMA_USART3Buffer1 + ( size_DMA_Buffer_Shell )) { ptrWriter = g_c_DMA_USART3Buffer1; } ptrReadShellBufferTemp = movePtrShell(ptrReadShellBuffer); if ((char*) ptrWriter == ptrReadShellBufferTemp ) { #if (PrintDebug >= 2) ShellPrintf ("next ptrReadShellBuffer == schreibzeiger %#x \r\n", (long int) schreibzeiger); #endif return TRUE; } else { ptrReadShellBuffer = ptrReadShellBufferTemp; return FALSE; } }
void ShellGetString(S8 *string) { S8 *buf = string; S8 c; while((c = ShellGetByte())!='\r') { if(c=='\b') { if( (int)buf < (int)string ) { ShellPrintf("\b \b"); string--; } } else { *string++ = c; ShellPutByte(c); } } *string='\0'; ShellPutByte('\n'); }
/*----------------------------------------------------*/ void lu (int argc, char **argv) { (void)argc; (void)argv; ShellPrintf("\ntask table\n"); ShellPrintf("================================================\n"); ShellPrintf("Task State Prio Stack queue# \n"); ShellPrintf("================================================\n"); vTaskList( ( signed portCHAR * ) cListBuffer ); taskENTER_CRITICAL(); ShellPrintf( "%s", cListBuffer ); taskEXIT_CRITICAL(); ShellPrintf(PROMPT); }
/** * @brief LwIP_DHCP_Process_Handle * @param None * @retval None */ void LwIP_DHCP_task(void * pvParameters) { struct ip_addr ipaddr; struct ip_addr netmask; struct ip_addr gw; uint32_t IPaddress; uint8_t iptab[4]; uint8_t iptxt[20]; uint8_t DHCP_state; DHCP_state = DHCP_START; for (;;) { switch (DHCP_state) { case DHCP_START: { dhcp_start(&xnetif); IPaddress = 0; DHCP_state = DHCP_WAIT_ADDRESS; #ifdef USE_LCD ShellPrintf("\r\n Looking for \r\n"); ShellPrintf(" DHCP server \r\n"); ShellPrintf(" please wait... \r\n"); // LCD_DisplayStringLine(Line4, (uint8_t*)" Looking for "); // LCD_DisplayStringLine(Line5, (uint8_t*)" DHCP server "); // LCD_DisplayStringLine(Line6, (uint8_t*)" please wait... "); #endif } break; case DHCP_WAIT_ADDRESS: { /* Read the new IP address */ IPaddress = xnetif.ip_addr.addr; if (IPaddress!=0) { DHCP_state = DHCP_ADDRESS_ASSIGNED; /* Stop DHCP */ dhcp_stop(&xnetif); #ifdef USE_LCD iptab[0] = (uint8_t)(IPaddress >> 24); iptab[1] = (uint8_t)(IPaddress >> 16); iptab[2] = (uint8_t)(IPaddress >> 8); iptab[3] = (uint8_t)(IPaddress); // sprintf((char*)iptxt, " %d.%d.%d.%d", iptab[3], iptab[2], iptab[1], iptab[0]); ShellPrintf("\r\n IP address assigned by a DHCP server = %d.%d.%d.%d\r\n", iptab[3], iptab[2], iptab[1], iptab[0]); // LCD_ClearLine(Line4); // LCD_ClearLine(Line5); // LCD_ClearLine(Line6); /* Display the IP address */ // LCD_DisplayStringLine(Line7, (uint8_t*)"IP address assigned "); // LCD_DisplayStringLine(Line8, (uint8_t*)" by a DHCP server "); // LCD_DisplayStringLine(Line9, iptxt); #endif vTaskDelete(NULL); } else { /* DHCP timeout */ if (xnetif.dhcp->tries > MAX_DHCP_TRIES) { DHCP_state = DHCP_TIMEOUT; /* Stop DHCP */ dhcp_stop(&xnetif); /* Static address used */ IP4_ADDR(&ipaddr, IP_ADDR0 ,IP_ADDR1 , IP_ADDR2 , IP_ADDR3 ); IP4_ADDR(&netmask, NETMASK_ADDR0, NETMASK_ADDR1, NETMASK_ADDR2, NETMASK_ADDR3); IP4_ADDR(&gw, GW_ADDR0, GW_ADDR1, GW_ADDR2, GW_ADDR3); netif_set_addr(&xnetif, &ipaddr , &netmask, &gw); #ifdef USE_LCD // LCD_DisplayStringLine(Line7, (uint8_t*)" DHCP timeout "); ShellPrintf("\r\n DHCP timeout \r\n"); iptab[0] = IP_ADDR3; iptab[1] = IP_ADDR2; iptab[2] = IP_ADDR1; iptab[3] = IP_ADDR0; //sprintf((char*)iptxt, " %d.%d.%d.%d", iptab[3], iptab[2], iptab[1], iptab[0]); ShellPrintf("\r\n Static IP address = %d.%d.%d.%d\r\n", iptab[3], iptab[2], iptab[1], iptab[0]); //LCD_ClearLine(Line4); //LCD_ClearLine(Line5); //LCD_ClearLine(Line6); //LCD_DisplayStringLine(Line8, (uint8_t*)" Static IP address "); //LCD_DisplayStringLine(Line9, iptxt); #endif vTaskDelete(NULL); } } } break; default: break; }
void Change (int argc, char **argv) { //ShellPrintf(PROMPT); int index = 1; int omg; int i; int success; const char *dummy[4] ; long int perio; const char *passport = "all"; if (argc < 2) { ShellPrintf("Error: Invalid argument list\r\n"); return; } for (index = 0; index < 4; index++) { dummy[index] = argv[index]; //k = argv[index+1] -1; //*k = '\0'; } ChangeTaskStatus(dummy[0]); omg = i16_Flag_koo; if(omg == 1) { for(i=0; i<g_i16_Main_NUM_hl; i++) { if(strcasecmp(dummy[1],savedhandleTAB[i].name) == 0) { if(strcasecmp(dummy[2],passport) == 0) { perio = get_valueShell(dummy[3],&success,10); if( perio == 0 ) { ShellPrintf("Error: Invalid argument list\r\n"); return; } else { *savedhandleTAB[i].flag1 = TRUE; *savedhandleTAB[i].flag2 = TRUE; *savedhandleTAB[i].perio = perio; vTaskResume( savedhandleTAB[i].hd ); return; } } else { *savedhandleTAB[i].flag1 = TRUE; *savedhandleTAB[i].flag2 = FALSE; //*savedhandleTAB[i].perio = perio; vTaskResume( savedhandleTAB[i].hd ); return; } } } ShellPrintf("\r\nError: Invalid TaskName\r\n"); return; } else if(omg == 2) { for(i=0; i<g_i16_Main_NUM_hl; i++) { if(strcasecmp(dummy[1],savedhandleTAB[i].name) == 0) { *savedhandleTAB[i].flag1 = FALSE; return; } } ShellPrintf("\r\nError: Invalid TaskName\r\n"); return; } else if(omg == 3) { for(i=0; i<g_i16_Main_NUM_hl; i++) { if(strcasecmp(dummy[1],savedhandleTAB[i].name) == 0) { vTaskSuspend( savedhandleTAB[i].hd ); ShellPrintf("Task has been suspended\r\n"); return; } } ShellPrintf("\r\nError: Invalid TaskName\r\n"); return; } else if(omg == 4) { for(i=0; i<g_i16_Main_NUM_hl; i++) { if(strcasecmp(dummy[1],savedhandleTAB[i].name) == 0) { vTaskResume( savedhandleTAB[i].hd ); ShellPrintf("Task continues\r\n"); return; } } ShellPrintf("\r\nError: Invalid TaskName\r\n"); return; } else if(omg == 5) { for(i=0; i<g_i16_Main_NUM_hl; i++) { if(strcasecmp(dummy[1],savedhandleTAB[i].name) == 0) { vTaskDelete( savedhandleTAB[i].hd ); ShellPrintf("Task has been deleted\r\n"); return; } } ShellPrintf("\r\nError: Invalid TaskName\r\n"); return; } else { ShellPrintf("Error: Invalid argument list\r\n"); } }
void helpTaskHandleList(int argc, char **argv) { int index; (void)argc; (void)argv; ShellPrintf("\r\n"); ShellPrintf("command structure to change task status:\r\n"); ShellPrintf(" activate || terminate || suspend || continue\r\n"); ShellPrintf("\r\n"); ShellPrintf(" action task description\r\n"); ShellPrintf(" activate TaskName all Period(ms) *periodically activate the task\r\n"); ShellPrintf(" activate TaskName *one time run\r\n"); ShellPrintf(" terminate TaskName *terminate it\r\n"); ShellPrintf(" suspend TaskName *suspend it\r\n"); ShellPrintf(" continue TaskName *continue it\r\n"); ShellPrintf("\r\n"); ShellPrintf(" you can check the task name and period below\r\n"); ShellPrintf("\r\n"); ShellPrintf(" Task\t\tCurrentPeriod\r\n"); for (index = 0; index < g_i16_Main_NUM_hl; index++) { ShellPrintf(HELPHANDLESHELL, savedhandleTAB[index].name, *savedhandleTAB[index].perio); } ShellPrintf(PROMPT); }