HID scanner demo

Dependencies:   BLE_API WIFI_API_32kRAM nRF51822 mbed

BLE HID function in this demo is temporary working with Android phone ONLY. Will be fixed to support iOS device in next update.

Revision:
2:be04a220392e
Parent:
1:51535675abf4
--- a/main.cpp	Thu Jul 16 01:18:16 2015 +0000
+++ b/main.cpp	Fri Aug 14 09:37:24 2015 +0000
@@ -14,15 +14,17 @@
 WIFIDevice wifi;
 EthernetInterface eth;
 
+bool flip_lock = false;
+
 void flip() {
-    RFSWIO = !RFSWIO;
+    if (!flip_lock) RFSWIO = !RFSWIO;
 }
 
 unsigned char keyData;
 bool is_input = false; 
-char ap_ssid[10] = {'H','T','C','8','2','0','\0'};
-char ap_pw[10] = {'1','1','1','1','1','1','1','1','\0'};
-const char* PC_SERVER_ADDRESS = "192.168.1.234";
+char* ap_ssid = "Tsungta_iPhone";
+char* ap_pw = "icq87001";
+const char* PC_SERVER_ADDRESS = "172.20.10.4";
 uint16_t PC_PORT = 5222;
 
 static const char     DEVICE_NAME[]        = "HID_Keyboard";
@@ -57,7 +59,7 @@
 static uint8_t modifyKey[50];
 char msg[25] = "NNN40 CONNECTED\n";
 int main(void)
-{   NRF_CLOCK->XTALFREQ = 0x00; //Tsungta, Used to active radio correctly external when XTAL 32MHz is loaded
+{   
     uart.baud(115200);
     uart.printf("Starting HID Service\n");
     RFSWIO = 1;
@@ -139,12 +141,19 @@
             }
             index_b++;
             if(keyData == 0x0a && ble.getGapState().connected){
+                flip_lock = true;
+                RFSWIO = 0;// RF Switch to BLE and lockup temporary
                 for(int i = 0; i < index_b ; i++){
                     hidService.updateReport(modifyKey[i], key_press_scan_buff[i]);
                     wait(0.03);
                 }
+                flip_lock = false;
+                
+            flip_lock = true;
+            RFSWIO = 1;// RF Switch to WiFi and lockup temporary
+            socket.send(msg, sizeof(msg));
+            flip_lock = false;
             
-            socket.send(msg, sizeof(msg));
             index_b = 0;
             index_w = 0;
             memset(modifyKey, 0, 50);