AirConLibに対応したMSC
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(); } } +