Delta / Mbed OS Delta_CLI

Fork of NNN40_CLI by Delta

Revision:
23:620896909655
Parent:
21:72d7a6e85d7f
Child:
24:838a0b25934b
--- a/CLI_Source/ble_cli.cpp	Thu Oct 20 04:29:40 2016 +0000
+++ b/CLI_Source/ble_cli.cpp	Fri Nov 04 06:46:58 2016 +0000
@@ -10,7 +10,7 @@
 // Genral configuration parameters
 #define BLE_DEBUG  0
 #define MAX_DEVNAME_LEN 32
-#define CLI_FWVERION "DELTA_CLI_V1.16"
+#define CLI_FWVERION "DELTA_CLI_V1.17"
 
 //0920 Silvia modify
 #if defined(TARGET_DELTA_DFBM_NQ620)
@@ -25,8 +25,20 @@
 #define APP_ADV_TIMEOUT_IN_SECONDS 180                    /**< The advertising timeout (in units of seconds). */
 #define APP_ADV_INTERVAL_MAX       10240 									// correspond to 10.24s
 #define APP_ADV_INTERVAL_MIN       20		 									// correspond to 20ms
+#define APP_ADV_TIMEOUT_LIMITED_MAX 16383              //1102 Silvia add
+#define APP_ADV_TIMEOUT_LIMITED_MIN 1                  //1102 Silvia add
 #define APP_ADV_DATA_OFFSET 2                        // Offset for Advertising Data.
 //#define ADVERTISING_LED_PIN_NO LED1
+
+//1102 Silvia add
+//Scanning configuration parameters
+#define BLE_SCAN_INTERVAL_LIMITED_MAX        10240
+#define BLE_SCAN_INTERVAL_LIMITED_MIN        3 
+#define BLE_SCAN_WINDOW_LIMITED_MAX          10240
+#define BLE_SCAN_WINDOW_LIMITED_MIN          3 
+#define BLE_SCAN_TIMEOUT_LIMITED_MAX         16383
+#define BLE_SCAN_TIMEOUT_LIMITED_MIN         1 
+
 // Peripheral mode operation parameters
 #define CLI_SERVICE_MAX_NUM 10
 #define CLI_CHAR_MAX_NUM 10
@@ -279,10 +291,10 @@
             break;
     }
 
-    //if ( advInterval< APP_ADV_INTERVAL_MIN | advInterval> APP_ADV_INTERVAL_MAX | advTimeout < 1| advTimeout > BLE_GAP_ADV_TIMEOUT_LIMITED_MAX ) {
-//        cyntecPrintError(CYNTEC_CMD_ERR_ARGUMENT_OUT_OF_RANGE);
-//        return;
-//    }
+    if ( advInterval< APP_ADV_INTERVAL_MIN | advInterval> APP_ADV_INTERVAL_MAX | advTimeout < APP_ADV_TIMEOUT_LIMITED_MIN | advTimeout > APP_ADV_TIMEOUT_LIMITED_MAX ) {
+        cyntecPrintError(CYNTEC_CMD_ERR_ARGUMENT_OUT_OF_RANGE);
+        return;
+    }
 #if BLE_DEBUG
     console.printf("advInterval:%d,advTimeout:%d",advInterval,advTimeout);
 #endif
@@ -602,6 +614,13 @@
         arg = cyntecGetCommandArgument(2,&argLen);
         setTimeout = cyntecAtoiUint16( arg, argLen );
     }
+    
+    //1102 Silvia modify
+    if ( setInterval < BLE_SCAN_INTERVAL_LIMITED_MIN | setInterval > BLE_SCAN_INTERVAL_LIMITED_MAX | setWindow < BLE_SCAN_WINDOW_LIMITED_MIN | setWindow > BLE_SCAN_WINDOW_LIMITED_MAX | setTimeout > BLE_SCAN_TIMEOUT_LIMITED_MAX | (setTimeout < BLE_SCAN_TIMEOUT_LIMITED_MIN && setTimeout != 0 ) | (setInterval < setWindow)) {
+    	cyntecPrintError(CYNTEC_CMD_ERR_ARGUMENT_OUT_OF_RANGE);
+        return;
+    }
+    
 #if BLE_DEBUG
     console.printf("Interval:%d,Window:%d,timeout:%d\r\n",setInterval,setWindow,setTimeout);
 #endif
@@ -1041,6 +1060,14 @@
         return;
     }
     //Silvia add
+    
+    if (char_count >= CLI_CHAR_MAX_NUM) {
+        cyntecPrintError(CYNTEC_CMD_ERR_CALL_FAIL);
+#if BLE_DEBUG
+        console.printf("Error: char_count>CLI_CHAR_MAX_NUM\r\n");
+#endif
+        return;
+    }
 
     /* handle parameter -  UUID */
     /* Only support 16-bit or 128-bit UUID type */
@@ -1099,13 +1126,7 @@
     bufferService[service_count-1].bufferGattChar[char_count].valueLength = valueLengthBuffer;
     bufferService[service_count-1].bufferGattChar[char_count].props = prop;
     //bufferService[service_count-1].bufferGattChar[char_count].char_value_handle = testHandle;
-    if (char_count>CLI_CHAR_MAX_NUM) {
-        cyntecPrintError(CYNTEC_CMD_ERR_CALL_FAIL);
-#if BLE_DEBUG
-        console.printf("Error: char_count>CLI_CHAR_MAX_NUM\r\n");
-#endif
-        return;
-    }
+    
     cyntecPrintOk();
     char_count++;
 }