Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BLE_API mbed nRF51822
Fork of nRF51822_SimpleChat_LED_kai by
Diff: main.cpp
- 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();
}
}
+
