TeleViLibに対応するMSC

Dependencies:   BLE_API mbed nRF51822

Fork of nRF51822_SimpleChat_LED_kai by EQUUS_KUBOTA

Revision:
6:b15d219371da
Parent:
5:35728098eeae
Child:
7:fbaa5e70a60e
--- a/main.cpp	Thu Dec 08 10:57:15 2016 +0000
+++ b/main.cpp	Thu Dec 08 13:52:38 2016 +0000
@@ -26,8 +26,10 @@
  
 #include "mbed.h"
 #include "ble/BLE.h"
-#include "TxPower.h"
+
+// TX POWER用
 #include "ble_gap.h"
+#define TX_POWER                         0
 
 #define BLE_UUID_TXRX_SERVICE            0x0000 /**< The UUID of the Nordic UART Service. */
 #define BLE_UUID_TX_CHARACTERISTIC       0x0002 /**< The UUID of the TX Characteristic. */
@@ -36,7 +38,6 @@
 #define TXRX_BUF_LEN                     20
 #define DIGITAL_OUT_PIN                  P0_17  //D7
 
-#define TX_POWER                         -40
 
 BLE  ble;
 
@@ -55,8 +56,17 @@
 static const uint8_t uart_base_uuid[] = {0x02, 0xF3, 0xF5, 0x38, 0x8D, 0x11, 0x48, 0x02, 0xB6, 0xFC, 0xFB, 0x66, 0x16, 0xD4, 0xCD, 0x70}; //Service
 static const uint8_t uart_tx_uuid[]   = {0x71, 0x3D, 0, 3, 0x50, 0x3E, 0x4C, 0x75, 0xBA, 0x94, 0x31, 0x48, 0xF1, 0x8D, 0x94, 0x1E}; //central_送信用
 static const uint8_t uart_rx_uuid[]   = {0x71, 0x3D, 0, 2, 0x50, 0x3E, 0x4C, 0x75, 0xBA, 0x94, 0x31, 0x48, 0xF1, 0x8D, 0x94, 0x1E}; //central_受信用
+static const uint8_t uart_base_uuid_rev[] = {0x70, 0xCD, 0xD4, 0x16, 0x66, 0xFB, 0xFC, 0xB6, 0x02, 0x48, 0x11, 0x8D, 0x38, 0xF5, 0xF3, 0x02};
+
+// TX POWER用
 static const uint8_t power_level_uuid[]   = {0x71, 0x3D, 0, 4, 0x50, 0x3E, 0x4C, 0x75, 0xBA, 0x94, 0x31, 0x48, 0xF1, 0x8D, 0x94, 0x1E}; //central_TxPower受信用
-static const uint8_t uart_base_uuid_rev[] = {0x70, 0xCD, 0xD4, 0x16, 0x66, 0xFB, 0xFC, 0xB6, 0x02, 0x48, 0x11, 0x8D, 0x38, 0xF5, 0xF3, 0x02};
+uint8_t powerPayload[TXRX_BUF_LEN] = {0,};
+static uint8_t power_buf[TXRX_BUF_LEN];
+static uint8_t power_len=0;
+GattCharacteristic  txPowerCharacteristic (power_level_uuid, powerPayload, 1, TXRX_BUF_LEN, GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY); //tx power characteristic
+Ticker txSteper;
+
+
 
 // Tx Power Service
 //static const uint8_t power_base_uuid[] = {0x03, 0xF3, 0xF5, 0x38, 0x8D, 0x11, 0x48, 0x02, 0xB6, 0xFC, 0xFB, 0x66, 0x16, 0xD4, 0xCD, 0x70}; //Service
@@ -73,18 +83,13 @@
 
 uint8_t txPayload[TXRX_BUF_LEN] = {0,};
 uint8_t rxPayload[TXRX_BUF_LEN] = {0,};
-uint8_t powerPayload[TXRX_BUF_LEN] = {0,};
 
 static uint8_t rx_buf[TXRX_BUF_LEN];
 static uint8_t rx_len=0;
 
-static uint8_t power_buf[TXRX_BUF_LEN];
-static uint8_t power_len=0;
-
 //Uart Service associated
 GattCharacteristic  txCharacteristic (uart_tx_uuid, txPayload, 1, TXRX_BUF_LEN, GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE | GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE_WITHOUT_RESPONSE);
 GattCharacteristic  rxCharacteristic (uart_rx_uuid, rxPayload, 1, TXRX_BUF_LEN, GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY);
-GattCharacteristic  txPowerCharacteristic (power_level_uuid, powerPayload, 1, TXRX_BUF_LEN, GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY); //tx power characteristic
 GattCharacteristic *uartChars[] = {&txCharacteristic, &rxCharacteristic, &txPowerCharacteristic};
 GattService         uartService(uart_base_uuid, uartChars, sizeof(uartChars) / sizeof(GattCharacteristic *));
 
@@ -144,9 +149,9 @@
     }
 }
 
-
+// TX POWER用
 void txPowerUpdate(int newTxPower) {
-    sd_ble_gap_tx_power_set(-40);
+    sd_ble_gap_tx_power_set(newTxPower);
     //ここから-------------
     char bufbuf_c[20];
     uint8_t bufbuf[40];
@@ -160,6 +165,19 @@
     //をこぴればデータを送信可能
 }
 
+void txStep() {
+    //ここから-------------
+    char bufbuf_c[20];
+    uint8_t bufbuf[40];
+    sprintf(bufbuf_c, "%d", TX_POWER);
+    int a;
+    for(a=0; bufbuf_c[a] != '\0'; a++) {
+        bufbuf[a] = bufbuf_c[a];
+    }
+    ble.updateCharacteristicValue(txPowerCharacteristic.getValueAttribute().getHandle(), bufbuf, a); 
+}
+//-------------------
+
 void uartCB(void)
 {   
     while(pc.readable())    
@@ -180,20 +198,6 @@
     }
 }
 
-
-// 1++していく
-void txStep() {
-    //ここから-------------
-    char bufbuf_c[20];
-    uint8_t bufbuf[40];
-    sprintf(bufbuf_c, "%d", TX_POWER);
-    int a;
-    for(a=0; bufbuf_c[a] != '\0'; a++) {
-        bufbuf[a] = bufbuf_c[a];
-    }
-    ble.updateCharacteristicValue(txPowerCharacteristic.getValueAttribute().getHandle(), bufbuf, a); 
-}
-
 int main(void)
 {
     led1 = 0;
@@ -237,11 +241,14 @@
                       
     ble.startAdvertising(); 
     pc.printf("Advertising Start \r\n");
-    
-    steper.attach(&txStep, 2.0);
+   
+    //TX POWER用
+    txSteper.attach(&txStep, 2.0);
+    txPowerUpdate(TX_POWER);
 
     while(1)
     {
         ble.waitForEvent(); 
     }
 }
+