Delta / Mbed OS Delta_CLI

Fork of NNN40_CLI by Delta

Revision:
18:4f5b317c04b9
Parent:
17:03c8af30087a
Child:
19:e2de6c1776eb
--- a/CLI_Source/ble_cli.cpp	Mon Sep 19 02:26:11 2016 +0000
+++ b/CLI_Source/ble_cli.cpp	Fri Sep 23 01:41:28 2016 +0000
@@ -10,8 +10,15 @@
 // Genral configuration parameters
 #define BLE_DEBUG  0
 #define MAX_DEVNAME_LEN 32
-#define CLI_FWVERION "DELTA_CLI_V1.14"
+#define CLI_FWVERION "DELTA_CLI_V1.15"
+
+//0920 Silvia modify
+#if defined(TARGET_NRF52_DK)//temp use only
+#define MODULE_NAME "DFBM-NQ620"
+#else
 #define MODULE_NAME "DFCM-NNN40-DT1R"
+#endif
+//0920 Silvia modify
 
 // Advertising configuration parameters
 #define APP_ADV_INTERVAL           40                     /**< The advertising interval (in units of ms). */
@@ -90,16 +97,16 @@
 
 void serviceDiscoveryCallback(const DiscoveredService *service)
 {
-    printf("serviceDiscoveryCallback\r\n");
+    console.printf("serviceDiscoveryCallback\r\n");
     if (service->getUUID().shortOrLong() == UUID::UUID_TYPE_SHORT) {
-        printf("S UUID-%x attrs[%u %u]\r\n", service->getUUID().getShortUUID(), service->getStartHandle(), service->getEndHandle());
+        console.printf("S UUID-%x attrs[%u %u]\r\n", service->getUUID().getShortUUID(), service->getStartHandle(), service->getEndHandle());
     } else {
-        printf("S UUID-");
+        console.printf("S UUID-");
         const uint8_t *longUUIDBytes = service->getUUID().getBaseUUID();
         for (unsigned i = 0; i < UUID::LENGTH_OF_LONG_UUID; i++) {
-            printf("%02x", longUUIDBytes[i]);
+            console.printf("%02x", longUUIDBytes[i]);
         }
-        printf(" attrs[%u %u]\r\n", service->getStartHandle(), service->getEndHandle());
+        console.printf(" attrs[%u %u]\r\n", service->getStartHandle(), service->getEndHandle());
     }
     
     discoverServiceArr[discoverService_count] = *service;
@@ -111,15 +118,15 @@
 {
     //Silvia modify
     if (characteristicP->getUUID().shortOrLong() == UUID::UUID_TYPE_SHORT) {
-        printf("  C UUID-%x valueAttr[%u] props[%x]\r\n", characteristicP->getUUID().getShortUUID(), characteristicP->getValueHandle(), (uint8_t)characteristicP->getProperties().broadcast());
+        console.printf("  C UUID-%x valueAttr[%u] props[%x]\r\n", characteristicP->getUUID().getShortUUID(), characteristicP->getValueHandle(), (uint8_t)characteristicP->getProperties().broadcast());
     }
     else {
-        printf("  C UUID-");
+        console.printf("  C UUID-");
         const uint8_t *longUUIDBytes = characteristicP->getUUID().getBaseUUID();
         for (unsigned i = (UUID::LENGTH_OF_LONG_UUID) - 1; i < UUID::LENGTH_OF_LONG_UUID; i--) {
-            printf("%02x ", longUUIDBytes[i]);
+            console.printf("%02x ", longUUIDBytes[i]);
         }
-        printf(" valueAttr[%u] props[%x]\r\n", characteristicP->getValueHandle(), (uint8_t)characteristicP->getProperties().broadcast());
+        console.printf(" valueAttr[%u] props[%x]\r\n", characteristicP->getValueHandle(), (uint8_t)characteristicP->getProperties().broadcast());
 //        uvCharacteristic        = *characteristicP;
     }
     
@@ -128,7 +135,7 @@
 }
 void discoveryTerminationCallback(Gap::Handle_t connectionHandle)
 {
-    printf("terminated SD for handle %u\r\n", connectionHandle);
+    console.printf("terminated SD for handle %u\r\n", connectionHandle);
 }
 
 void onConnectionCallback(const Gap::ConnectionCallbackParams_t *params)
@@ -153,16 +160,16 @@
     //Silvia add
     switch (source) {
     	case Gap::TIMEOUT_SRC_ADVERTISING:
-    		printf("Advertising timeout\r\n");
+    		console.printf("Advertising timeout\r\n");
     		break;	
     	case Gap::TIMEOUT_SRC_SECURITY_REQUEST:
-    		printf("Security request timeout\r\n");
+    		console.printf("Security request timeout\r\n");
     		break;
     	case Gap::TIMEOUT_SRC_SCAN:
-    		printf("Scanning timeout\r\n");
+    		console.printf("Scanning timeout\r\n");
     		break;
     	case Gap::TIMEOUT_SRC_CONN:
-    		printf("Connection timeout\r\n");
+    		console.printf("Connection timeout\r\n");
     		break;
     }
     //Silvia add
@@ -170,7 +177,7 @@
 
 void disconnectionCallback(const Gap::DisconnectionCallbackParams_t *params)
 {
-    printf("Disconnected\r\n"); //Silvia add
+    console.printf("Disconnected\r\n"); //Silvia add
     //console.printf("connState:%d\r\n",connState);
     //Gap::GapState_t->connected = 0;
     connState = false;
@@ -350,16 +357,12 @@
 #endif
     }
 }
-//Silvia modify
 
 static void cynBLEInfoCommand(void)
 {
-    console.printf("\r\nOK;");
-    console.printf(CLI_FWVERION);
-    console.printf(";");
-    console.printf(MODULE_NAME);
-    console.printf("\r\n\r\n");
+    console.printf("\r\nOK;%s;%s\r\n\r\n", CLI_FWVERION, MODULE_NAME);
 }
+//Silvia modify
 
 /**@brief Set the radio's transmit power.
  *
@@ -493,7 +496,7 @@
         conn_action = false;
         
         if (memcmp(targetAddr,newAddr,6)==0) {
-			deltaBLE.gap().connect(params->peerAddr, Gap::ADDR_TYPE_RANDOM_STATIC, NULL, NULL);
+			deltaBLE.gap().connect(params->peerAddr, Gap::ADDR_TYPE_PUBLIC, NULL, NULL); //0920 Silvia change address type
             return;
         }
     } else {
@@ -638,10 +641,10 @@
         
         for(int i=0; i<BLE_MAX_ADDRESS_NUMBER; i++) {
         	if (memcmp(targetAddr,saveAddr[i],6)==0) {
-				err_code = deltaBLE.gap().connect(targetAddr, Gap::ADDR_TYPE_RANDOM_STATIC, NULL, NULL);
+				err_code = deltaBLE.gap().connect(targetAddr, Gap::ADDR_TYPE_PUBLIC, NULL, NULL); //0920 Silvia change address type
         
         		if (err_code != 0) {
-        			printf("Error:%d\r\n",err_code);
+        			console.printf("Error:%d\r\n",err_code);
         		} else {
         			cyntecPrintOk();
         		}
@@ -799,26 +802,26 @@
 //    printf("centralReadCallback Handle: %d\r\n", response->handle);
     
     for (unsigned index = 0; index < response->len; index++) {
-        printf("[%02x]", response->data[index]);
+        console.printf("[%02x]", response->data[index]);
     }
-    printf("\r\n");
+    console.printf("\r\n");
 }
 
 void centralWriteCallback(const GattWriteCallbackParams *response) {
 //    printf("centralWriteCallback: %d\r\n", response->len);
     
     for (unsigned index = 0; index < response->len; index++) {
-        printf("[%02x]", response->data[index]);
+        console.printf("[%02x]", response->data[index]);
     }
-    printf("\r\n");
+    console.printf("\r\n");
 }
 
 void centralHvxCallback(const GattHVXCallbackParams *response) {
 //	printf("centralHvxCallback handle %u, type %02x, len %u\r\n", response->handle, response->type, response->len);
     for (unsigned index = 0; index < response->len; index++) {
-        printf("[%02x]", response->data[index]);
+        console.printf("[%02x]", response->data[index]);
     }
-    printf("\r\n");
+    console.printf("\r\n");
 }
 //Silvia modify
 
@@ -1021,6 +1024,13 @@
         cyntecPrintError(CYNTEC_CMD_ERR_WRONG_NUMBER_OF_ARGUMENTS);
         return;
     }
+    
+    //Silvia add
+    if (service_count == 0) {
+    	cyntecPrintError(CYNTEC_CMD_ERR_INVALID_STATE_TO_PERFORM_OPERATION);
+        return;
+    }
+    //Silvia add
 
     /* handle parameter -  UUID */
     /* Only support 16-bit or 128-bit UUID type */
@@ -1185,7 +1195,7 @@
 }
 
 void cynBLEInitCommand(void)
-{
+{   
     BLE &deltaBLE = BLE::Instance();
 
     deltaBLE.onEventsToProcess(scheduleBleEventsProcessing);
@@ -1195,7 +1205,7 @@
     deltaBLE.onTimeout(onTimeoutCallback);
     deltaBLE.gattServer().onDataRead(triggerRead);
 
-    cyntecPrintOk();
+    console.printf("\r\nOK;%s;%s\r\n\r\n", CLI_FWVERION, MODULE_NAME); //0920 Silvia add
     while (true) {
         eventQueue.dispatch();
     }
@@ -1371,11 +1381,11 @@
     				cUUID = UUID(longUUIDBytes);
     			}
     			if ((cUUID == buf_char_uuid) & (readmatchFlag == false)) {
-    				printf("OK;");
+    				console.printf("OK;");
 	 				for (int i=0 ; i < valueLen; i++) {
-					printf("%02X",bufVal[i]);
+					console.printf("%02X",bufVal[i]);
 	 				}
-	 				printf("\r\n");
+	 				console.printf("\r\n");
     				deltaBLE.gattClient().write(GattClient::GATT_OP_WRITE_REQ, discoverCharArr[i][j].getConnectionHandle(), discoverCharArr[i][j].getValueHandle(), valueLen, bufVal);
     				readmatchFlag = true;
                     return;