| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354 | 
							- /******************************* (C) LiteMesh **********************************
 
-  * @module  Console
 
-  * @file    portConsole.c
 
-  * @version 1.0.0
 
-  * @date    XX.XX.XXXX
 
-  * $brief   Port functions console lib
 
-  *******************************************************************************
 
-  * @history     Version  Author         Comment
 
-  * XX.XX.XXXX   1.0.0    Telenkov D.A.  First release.
 
-  *******************************************************************************
 
-  */
 
- #include "stm32f4xx.h" 
 
- #include "port_microrl.h"
 
- #include "microrl.h"
 
- #include "config.h"
 
- #include "sntp.h"
 
- #include "gpio.h"
 
- #include "bt_6701_settings.h"
 
- #include "commands_api.h"
 
- #ifdef PRINTF_STDLIB
 
- #include <stdio.h>
 
- #endif
 
- #ifdef PRINTF_CUSTOM
 
- #include "tinystdio.h"
 
- #endif
 
- #include <stdlib.h>
 
- #include <string.h>
 
- #include <stdbool.h>
 
- #define _AVR_DEMO_VER "1.0"
 
- // definition commands word
 
- #define _CMD_HELP        "help"
 
- #define _CMD_CLEAR       "clear"
 
- #define _CMD_CLR         "clear_port"
 
- #define _CMD_LED         "led"
 
- #define _CMD_ETH         "ETH"
 
- #define _CMD_PSVOLT      "PSVOLT"
 
- #define _CMD_LOADVOLT    "LOADVOLT"
 
- #define _CMD_BATVOLT     "BATVOLT"
 
- #define _CMD_BATVOLTK    "BATVOLTK"
 
- #define _CMD_BATVOLTR    "BATVOLTR"
 
- #define _CMD_BAT1VOLT    "BAT1VOLT"
 
- #define _CMD_BAT2VOLT    "BAT2VOLT"
 
- #define _CMD_BAT3VOLT    "BAT3VOLT"
 
- #define _CMD_BAT4VOLT    "BAT4VOLT"
 
- #define _CMD_BATCUR      "BATCUR"
 
- #define _CMD_LOADCUR     "LOADCUR"
 
- #define _CMD_LOADCURK    "LOADCURK"
 
- #define _CMD_DIDOOR      "DIDOOR"
 
- #define _CMD_DIRV        "DIRV"
 
- #define _CMD_LOW150      "LOW150"
 
- #define _CMD_HILOW230    "HILOW230"
 
- #define _CMD_HIGH264     "HIGH264"
 
- #define _CMD_MPSOFF      "MPSOFF"
 
- #define _CMD_CANTX       "CANTX"
 
- #define _CMD_CANRX       "CANRX"
 
- #define _CMD_DAC         "DAC"
 
- #define _CMD_SD          "SD"
 
- #define _CMD_ONEWIRE     "OW"
 
- #define _CMD_SET         "SET"
 
- #define _CMD_DEF         "DEF"
 
- #define _CMD_RTC         "RTC"
 
- #define _CMD_SERNO       "SERNO"
 
- #define _CMD_STATUS      "STATUS"
 
- #define _CMD_FREQ        "FREQ"
 
- #define _CMD_50HZ        "50HZ"
 
- #define _CMD_LOW         "LOW"
 
- #define _CMD_HILOW       "HILOW"
 
- #define _CMD_HI          "HI"
 
- #define _CMD_T2READY     "T2READY"
 
- #define _CMD_U232U485    "U232U485"
 
- #define _CMD_DRY         "DRY"
 
- #define _CMD_U232F       "U232F"
 
- #define _CMD_RST         "reset"
 
- #define _CMD_SPIFLASH    "SPIFLASH"
 
- #define _CMD_U232        "U232"
 
- // arguments for set/clear
 
- #define _SCMD_PB  "port_b"
 
- #define _SCMD_PD  "port_d"
 
- #define _NUM_OF_CMD 
 
- #define _NUM_OF_SETCLEAR_SCMD 2
 
- //available  commands
 
- char * keyworld [] = {
 
-   _CMD_HELP,
 
-   _CMD_CLEAR,
 
-   _CMD_LED,
 
-   _CMD_ETH,
 
-   _CMD_PSVOLT,
 
-   _CMD_LOADVOLT,
 
-   _CMD_BATVOLT,
 
-   _CMD_BATVOLTK,
 
-   _CMD_BATVOLTR,
 
-   _CMD_BAT1VOLT,
 
-   _CMD_BAT2VOLT,
 
-   _CMD_BAT3VOLT,
 
-   _CMD_BAT4VOLT,
 
-   _CMD_BATCUR,
 
-   _CMD_LOADCUR,
 
-   _CMD_LOADCURK,
 
-   _CMD_DIDOOR,
 
-   _CMD_DIRV,
 
-   _CMD_LOW150,
 
-   _CMD_HILOW230,
 
-   _CMD_HIGH264,
 
-   _CMD_MPSOFF,
 
-   _CMD_CANTX,
 
-   _CMD_CANRX,
 
-   _CMD_DAC,
 
-   _CMD_SD,
 
-   _CMD_ONEWIRE,
 
-   _CMD_SET,
 
-   _CMD_DEF,
 
-   _CMD_RTC,
 
-   _CMD_SERNO,
 
-   
 
-   _CMD_STATUS,
 
-   _CMD_FREQ,
 
-   _CMD_50HZ,
 
-   _CMD_LOW,
 
-   _CMD_HILOW,
 
-   _CMD_HI,
 
-   _CMD_T2READY,
 
-   
 
-   _CMD_U232U485,
 
-   _CMD_DRY,
 
-   _CMD_U232F,
 
-   
 
-   _CMD_RST,
 
-   _CMD_SPIFLASH,
 
-   _CMD_U232
 
- };
 
- // 'set/clear' command argements
 
- char * set_clear_key [] = {_SCMD_PB, _SCMD_PD};
 
- // array for comletion
 
- char * compl_world [_NUM_OF_CMD + 1];
 
- microrl_t rl;
 
- microrl_t *prl = &rl;
 
- // параметр команды
 
- #define PARAM_LEN  20
 
- char param[PARAM_LEN];
 
- float value = 0.0;
 
- 	
 
- extern bool testLed;
 
- extern bool testEthernet;
 
- extern bool testDef;
 
- extern bool testSet;
 
- extern bool testRtc;
 
- extern bool testSerno;
 
- extern bool testT2Ready;
 
- /**
 
-   * @brief  
 
-   * @retval 
 
-   */
 
- void MICRORL_Init(void)
 
- {
 
-   microrl_init(prl, print);
 
-   microrl_set_execute_callback (prl, execute);
 
-   
 
- }
 
- /**
 
-   * @brief  Print callback for microrl library
 
-   * @retval 
 
-   */
 
- void print (const char *str)
 
- {
 
-   //printf(str);
 
- }
 
- /**
 
-   * @brief  
 
-   * @retval 
 
-   */
 
- void MICRORL_GetChar(uint8_t ch)
 
- {
 
-   microrl_insert_char(prl, ch);
 
- }
 
- //*****************************************************************************
 
- // execute callback for microrl library
 
- // do what you want here, but don't write to argv!!! read only!!
 
- int execute (int argc, const char * const * argv)
 
- {
 
- 	int i = 0;
 
- 	uint16_t len = 0;
 
- 	
 
- 	// just iterate through argv word and compare it with your commands
 
- 	while (i < argc) 
 
- 	{
 
- 	  memset(param, 0, PARAM_LEN);  
 
- 	  
 
- 	  if (strcmp (argv[i], _CMD_HELP) == 0) 
 
-       {
 
-  		print ("microrl library v");
 
- 		print (MICRORL_LIB_VER);
 
- 		print ("\n\r");
 
- 		print_help ();        // print help
 
- 	  } 
 
-       else if (strcmp (argv[i], _CMD_CLEAR) == 0) 
 
-       {
 
- 		print ("\033[2J");    // ESC seq for clear entire screen
 
- 		print ("\033[H");     // ESC seq for move cursor at left-top corner
 
- 	  }  
 
- 	  /* Тестовая команда */
 
-       else if (strcmp (argv[i], _CMD_LED) == 0) 
 
-       {
 
- 		//testLed = true;
 
- 		// TODO Убрать затычку
 
- 		printf("STATUS T1OK\r");
 
- 		return 0;
 
-       } 
 
- 	  /* Тест Ethernet */
 
- 	  else if (strcmp (argv[i], _CMD_ETH) == 0) 
 
-       {
 
-         COM_SetMAC();
 
- 		//testEthernet = true;
 
-         TEST_SetTest(TEST_ETHERNET);
 
-         print ("\n\r");
 
-         return 0;
 
-       }
 
- 	  /* Тест кнопки SET */
 
- 	  else if (strcmp (argv[i], _CMD_SET) == 0) 
 
-       {
 
- 		//testSet = true;
 
- 		TEST_SetTest(TEST_SET);
 
- 		print ("\n\r");
 
- 		return 0;
 
-       }
 
- 	  /* Тест кнопки DEF */
 
- 	  else if (strcmp (argv[i], _CMD_DEF) == 0) 
 
-       {
 
- 		//testDef = true;
 
-         TEST_SetTest(TEST_DEF);
 
- 		print ("\n\r");
 
- 		return 0;
 
-       }
 
- 	  /* Тест RTC */
 
- 	  else if (strcmp (argv[i], _CMD_RTC) == 0) 
 
-       {
 
- 		if (++i < argc)
 
-         {
 
-           len = strlen(argv[i]);
 
-           strncpy(param, argv[i], len);
 
- 		  SNTP_SetServerAddr(param);
 
- 		  TEST_SetTest(TEST_RTC);
 
- 		 // testRtc = true;
 
-           print ("\n\r");
 
-           return 0;
 
-         }
 
- 		print ("\n\r");
 
-       }
 
- 	  /* Установка SERNO */
 
- 	  else if (strcmp (argv[i], _CMD_SERNO) == 0) 
 
-       {
 
- 		if (++i < argc)
 
-         {
 
-           len = strlen(argv[i]);
 
-           strncpy(param, argv[i], len);
 
- 		  SETTINGS_SetSerno(param);
 
- 		  //testSerno = true;
 
-           TEST_SetTest(TEST_SERNO);
 
-           print ("\n\r");
 
-           return 0;
 
-         }
 
- 		print ("\n\r");
 
-       }
 
- 	  
 
-       /* -------------------------------------------------------------------- */
 
-       /*                        Тесты для SmartUPS                            */
 
-       
 
-       /* Тест сухих контактов */
 
- 	  else if (strcmp (argv[i], _CMD_DRY) == 0) 
 
-       {
 
- 		//testSet = true;
 
-         TEST_SetTest(TEST_DRY);
 
- 		print ("\n\r");
 
- 		return 0;
 
-       }
 
-       
 
-       /* Тест дополнительных пинов RS232 */
 
- 	  else if (strcmp (argv[i], _CMD_U232) == 0)
 
-       {
 
- 		//testSet = true;
 
-         TEST_SetTest(TEST_U232);
 
- 		print ("\n\r");
 
- 		return 0;
 
-       }
 
- 	  /* Тест spi flash */
 
- 	  else if (strcmp (argv[i], _CMD_SPIFLASH) == 0)
 
- 	   {
 
- 		//testSet = true;
 
- 		 TEST_SetTest(TEST_SPIFLASH);
 
- 		print ("\n\r");
 
- 		return 0;
 
- 	   }
 
-       
 
- 	  /* -------------------------------------------------------------------- */
 
- 	  /*                          Тесты этапа Т2                              */
 
- 	  /* Статус тестера */
 
- 	  else if (strcmp (argv[i], _CMD_STATUS) == 0) 
 
-       {
 
- 		//printf("STATUS %s\r", sSettings.sFlags.testState);
 
-         printf("STATUS %s\r", SETTINGS_GetTestState());
 
- 		return 0;
 
-       }
 
- 	  /* T2READY */
 
- 	  else if (strcmp (argv[i], _CMD_T2READY) == 0) 
 
-       {
 
- 		testT2Ready = true;		
 
- 		return 0;
 
-       }
 
- 	  
 
- 	  /* Перезагрузить контроллер */
 
-       else if (strcmp (argv[i], _CMD_RST) == 0) 
 
-       {
 
-         NVIC_SystemReset();
 
-       }  
 
-       else 
 
-       {
 
- 		print ("command: '");
 
- 		print ((char*)argv[i]);
 
- 		print ("' Not found.\n\r");
 
- 	  }
 
- 	  i++;
 
- 	}
 
- 	return 0;
 
- }
 
- void print_help (void)
 
- {
 
- 	print ("Use TAB key for completion\n\rCommand:\n\r");
 
- 	print ("\tclear               - clear screen\n\r");
 
-     print ("\tdac                 - send test value\n\r");
 
- }
 
- /******************************* (C) LiteMesh *********************************/
 
 
  |