Exemple #1
0
void ShellAllClear(void)
{
	ShellPutByte(0x1b);
	ShellPrintf("c");
	ShellPutByte(0x1b);
	ShellPrintf("[m");
	ShellPutByte(0x1b);
	ShellPrintf("[2J\n\r\r\r\r\r\r\r");
}
Exemple #2
0
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);
}
Exemple #3
0
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;
}
Exemple #4
0
void
loadSTM32F4 (int argc, char **argv)
{
    (void)argc;
    (void)argv;

    ShellPrintf("\nMonitoring starts within 5 sec\r\n");
    g_i16_showLoad = TRUE;
}
Exemple #5
0
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);
}
Exemple #6
0
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);
}
Exemple #7
0
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);
}
Exemple #8
0
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;
    }
}
Exemple #9
0
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;
    }
}
Exemple #10
0
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');
}
Exemple #11
0
/*----------------------------------------------------*/
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);
}
Exemple #12
0
/**
  * @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;
    }
Exemple #13
0
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");
    }
}
Exemple #14
0
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);
}