robo 8080
/
BLE_TEST_konashi
konashi/SBBLEのテスト
Fork of BLE_LoopbackUART by
Diff: main.cpp
- Revision:
- 5:61109bce11fe
- Parent:
- 2:e060367b9024
- Child:
- 6:9c9630cb454b
--- a/main.cpp Fri Jun 13 12:13:02 2014 +0000 +++ b/main.cpp Sat Aug 16 02:10:08 2014 +0000 @@ -17,11 +17,41 @@ #include "mbed.h" #include "BLEDevice.h" -#define BLE_UUID_NUS_SERVICE 0x0001 /**< The UUID of the Nordic UART Service. */ -#define BLE_UUID_NUS_TX_CHARACTERISTIC 0x0002 /**< The UUID of the TX Characteristic. */ -#define BLE_UUID_NUS_RX_CHARACTERISTIC 0x0003 /**< The UUID of the RX Characteristic. */ +//const static char DEVICE_NAME[] = "Nordic_HRM"; + +static const uint16_t KONASHI_SERVICE_UUID = 0xFF00; + +static const uint16_t KONASHI_PIO_SETTING_UUID = 0x3000; +static const uint16_t KONASHI_PIO_PULLUP_UUID = 0x3001; +static const uint16_t KONASHI_PIO_OUTPUT_UUID = 0x3002; +static const uint16_t KONASHI_PIO_INPUT_NOTIFICATION_UUID = 0x3003; + +static const uint16_t KONASHI_PWM_CONFIG_UUID = 0x3004; +static const uint16_t KONASHI_PWM_PARAM_UUID = 0x3005; +static const uint16_t KONASHI_PWM_DUTY_UUID = 0x3006; + +static const uint16_t KONASHI_ANALOG_DRIVE_UUID = 0x3007; +static const uint16_t KONASHI_ANALOG_READ0_UUID = 0x3008; +static const uint16_t KONASHI_ANALOG_READ1_UUID = 0x3009; +static const uint16_t KONASHI_ANALOG_READ2_UUID = 0x300A; -#define NEED_CONSOLE_OUTPUT 0 /* Set this if you need debug messages on the console; +static const uint16_t KONASHI_I2C_CONFIG_UUID = 0x300B; +static const uint16_t KONASHI_I2C_START_STOP_UUID = 0x300C; +static const uint16_t KONASHI_I2C_WRITE_UUID = 0x300D; +static const uint16_t KONASHI_I2C_READ_PARAM_UIUD = 0x300E; +static const uint16_t KONASHI_I2C_READ_UUID = 0x300F; + +static const uint16_t KONASHI_UART_CONFIG_UUID = 0x3010; +static const uint16_t KONASHI_UART_BAUDRATE_UUID = 0x3011; +static const uint16_t KONASHI_UART_TX_UUID = 0x3012; +static const uint16_t KONASHI_UART_RX_NOTIFICATION_UUID = 0x3013; + +static const uint16_t KONASHI_HARDWARE_RESET_UUID = 0x3014; +static const uint16_t KONASHI_HARDWARE_LOW_BAT_NOTIFICATION_UUID = 0x3015; + +uint16_t uuid16_list[] = { KONASHI_SERVICE_UUID }; + +#define NEED_CONSOLE_OUTPUT 1 /* Set this if you need debug messages on the console; * it will have an impact on code-size and power consumption. */ #if NEED_CONSOLE_OUTPUT @@ -31,24 +61,213 @@ #define DEBUG(...) /* nothing */ #endif /* #if NEED_CONSOLE_OUTPUT */ +//Serial pc(USBTX, USBRX); BLEDevice ble; DigitalOut led1(LED1); +BusOut ioOut(P0_0,P0_1,P0_2,P0_3,P0_4,P0_5,P0_6,P0_7); -// The Nordic UART Service -static const uint8_t uart_base_uuid[] = {0x6e, 0x40, 0x00, 0x01, 0xb5, 0xa3, 0xf3, 0x93, 0xe0, 0xa9, 0xe5,0x0e, 0x24, 0xdc, 0xca, 0x9e}; -static const uint8_t uart_tx_uuid[] = {0x6e, 0x40, 0x00, 0x02, 0xb5, 0xa3, 0xf3, 0x93, 0xe0, 0xa9, 0xe5,0x0e, 0x24, 0xdc, 0xca, 0x9e}; -static const uint8_t uart_rx_uuid[] = {0x6e, 0x40, 0x00, 0x03, 0xb5, 0xa3, 0xf3, 0x93, 0xe0, 0xa9, 0xe5,0x0e, 0x24, 0xdc, 0xca, 0x9e}; -static const uint8_t uart_base_uuid_rev[] = {0x9e, 0xca, 0xdc, 0x24, 0x0e, 0xe5, 0xa9, 0xe0, 0x93, 0xf3, 0xa3, 0xb5, 0x01, 0x00, 0x40, 0x6e}; -uint8_t txPayload[8] = {0,}; -uint8_t rxPayload[8] = {0,}; -GattCharacteristic txCharacteristic (uart_tx_uuid, txPayload, 1, 8, - GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE | GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE_WITHOUT_RESPONSE); -GattCharacteristic rxCharacteristic (uart_rx_uuid, rxPayload, 1, 8, +uint8_t pioSetting[20] = {0,}; +uint8_t pioPullup[20] = {0,}; +uint8_t pioOutput[20] = {0,}; +uint8_t pioInput[20] = {0,}; + +uint8_t pwmConfig[20] = {0,}; +uint8_t pwmPeriod[20] = {0,}; +uint8_t pwmDuty[20] = {0,}; + +uint8_t analogDrive[20] = {0,}; +uint8_t analogRead0[20] = {0,}; +uint8_t analogRead1[20] = {0,}; +uint8_t analogRead2[20] = {0,}; + +uint8_t i2cConfig[20] = {0,}; +uint8_t i2cStartStop[20] = {0,}; +uint8_t i2cWrite[20] = {0,}; +uint8_t i2cReadParam[20] = {0,}; +uint8_t i2cRead[20] = {0,}; + +uint8_t uartConfig[20] = {0,}; +uint8_t uartBaudrate[20] = {0,}; +uint8_t uartTx[20] = {0,}; +uint8_t uartRx[20] = {0,}; + +uint8_t hardwareRest[20] = {0,}; +uint8_t hardwareLowBat[20] = {0,}; + +GattCharacteristic pioSettingCharacteristic (KONASHI_PIO_SETTING_UUID, pioSetting, 1, 1, + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE_WITHOUT_RESPONSE); +GattCharacteristic pioPullupCharacteristic (KONASHI_PIO_PULLUP_UUID, pioPullup, 1, 1, + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE_WITHOUT_RESPONSE); +GattCharacteristic pioOutputCharacteristic (KONASHI_PIO_OUTPUT_UUID, pioOutput, 1, 1, + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE_WITHOUT_RESPONSE); +GattCharacteristic pioInputCharacteristic (KONASHI_PIO_INPUT_NOTIFICATION_UUID, pioInput, 1, 1, + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY); + +GattCharacteristic pwmConfigCharacteristic (KONASHI_PWM_CONFIG_UUID, pwmConfig, 1, 1, + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE_WITHOUT_RESPONSE); +GattCharacteristic pwmPeriodCharacteristic (KONASHI_PWM_PARAM_UUID, pwmPeriod, 5, 5, + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE_WITHOUT_RESPONSE); +GattCharacteristic pwmDutyCharacteristic (KONASHI_PWM_DUTY_UUID, pwmDuty, 5, 5, + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE_WITHOUT_RESPONSE); + +GattCharacteristic analogDriveCharacteristic (KONASHI_ANALOG_DRIVE_UUID, analogDrive, 1, 1, + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE_WITHOUT_RESPONSE); +GattCharacteristic analogRead0Characteristic (KONASHI_ANALOG_READ0_UUID, analogRead0, 2, 2, + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ); +GattCharacteristic analogRead1Characteristic (KONASHI_ANALOG_READ1_UUID, analogRead1, 2, 2, + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ); +GattCharacteristic analogRead2Characteristic (KONASHI_ANALOG_READ2_UUID, analogRead2, 2, 2, + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ); + +GattCharacteristic i2cConfigCharacteristic (KONASHI_I2C_CONFIG_UUID, i2cConfig, 1, 1, + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE_WITHOUT_RESPONSE); +GattCharacteristic i2cStartStopCharacteristic (KONASHI_I2C_START_STOP_UUID, i2cStartStop, 1, 1, + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE_WITHOUT_RESPONSE); +GattCharacteristic i2cWriteCharacteristic (KONASHI_I2C_WRITE_UUID, i2cWrite, 3, 20, + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE_WITHOUT_RESPONSE); +GattCharacteristic i2cReadParamCharacteristic (KONASHI_I2C_READ_PARAM_UIUD, i2cReadParam, 2, 2, + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE_WITHOUT_RESPONSE); +GattCharacteristic i2cReadCharacteristic (KONASHI_I2C_READ_UUID, i2cRead, 0, 20, + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ); + +GattCharacteristic uartConfigCharacteristic (KONASHI_UART_CONFIG_UUID, uartConfig, 1, 1, + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE_WITHOUT_RESPONSE); +GattCharacteristic uartBaudrateCharacteristic (KONASHI_UART_BAUDRATE_UUID, uartBaudrate, 1, 1, + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE_WITHOUT_RESPONSE); +GattCharacteristic uartTxCharacteristic (KONASHI_UART_TX_UUID, uartTx, 1, 1, + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE_WITHOUT_RESPONSE); +GattCharacteristic uartRxCharacteristic (KONASHI_UART_RX_NOTIFICATION_UUID, uartRx, 0, 20, + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ | GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY); -GattCharacteristic *uartChars[] = {&txCharacteristic, &rxCharacteristic}; -GattService uartService(uart_base_uuid, uartChars, sizeof(uartChars) / sizeof(GattCharacteristic *)); + +GattCharacteristic hardwareRestCharacteristic (KONASHI_HARDWARE_RESET_UUID, hardwareRest, 1, 1, + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE_WITHOUT_RESPONSE); +GattCharacteristic hardwareLowBatCharacteristic (KONASHI_HARDWARE_LOW_BAT_NOTIFICATION_UUID, hardwareLowBat, 1, 1, + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY); + +GattCharacteristic *konashiChars[] = { //&pioSettingCharacteristic, + //&pioPullupCharacteristic, + &pioOutputCharacteristic, +/* &pioInputCharacteristic, + &pwmConfigCharacteristic, + &pwmPeriodCharacteristic, + &pwmDutyCharacteristic, + &analogDriveCharacteristic, + &analogRead0Characteristic, + &analogRead1Characteristic, + &analogRead2Characteristic, + &i2cConfigCharacteristic, + &i2cStartStopCharacteristic, + &i2cWriteCharacteristic, + &i2cReadParamCharacteristic, + &i2cReadCharacteristic, + &uartConfigCharacteristic, + &uartBaudrateCharacteristic,*/ + &uartTxCharacteristic, + &uartRxCharacteristic, +/* &hardwareRestCharacteristic, + &hardwareLowBatCharacteristic,*/ }; +GattService konashiService(KONASHI_SERVICE_UUID, konashiChars, sizeof(konashiChars) / sizeof(GattCharacteristic *)); + +GattCharacteristic *konashiChars1[] = {&pioOutputCharacteristic, &uartTxCharacteristic, &uartRxCharacteristic}; +GattService konashiService1(KONASHI_SERVICE_UUID, konashiChars1, sizeof(konashiChars1) / sizeof(GattCharacteristic *)); + + +// SYSTEM +static char systemId = 'A'; +GattCharacteristic systemID(GattCharacteristic::UUID_SYSTEM_ID_CHAR, (uint8_t *)systemId, sizeof(systemId), sizeof(systemId), + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ); +//GattCharacteristic *systemChars[] = {&systemID }; +//GattService systemService(GattService::UUID_DEVICE_INFORMATION_SERVICE, systemChars, sizeof(systemChars) / sizeof(GattCharacteristic *)); + +// MODEL +static char model[31] = "mbed HRM1017"; +GattCharacteristic modelID(GattCharacteristic::UUID_MODEL_NUMBER_STRING_CHAR, (uint8_t *)model, strlen(model), strlen(model), + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ); +//GattCharacteristic *modelChars[] = {&modelID }; +//GattService modelService(GattService::UUID_DEVICE_INFORMATION_SERVICE, modelChars, sizeof(modelChars) / sizeof(GattCharacteristic *)); -void disconnectionCallback(void) +// Firmware +static char fwversion[31] = "1.0"; +GattCharacteristic fwChars(GattCharacteristic::UUID_FIRMWARE_REVISION_STRING_CHAR, (uint8_t *)fwversion, strlen(fwversion), strlen(fwversion), + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ); +//GattCharacteristic *firmwareChars[] = {&fwChars }; +//GattService firmwareService(GattService::UUID_DEVICE_INFORMATION_SERVICE, firmwareChars, sizeof(firmwareChars) / sizeof(GattCharacteristic *)); + +// Software +static char swversion[31] = "1.0"; +GattCharacteristic swChars(GattCharacteristic::UUID_SOFTWARE_REVISION_STRING_CHAR, (uint8_t *)swversion, strlen(swversion), strlen(swversion), + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ); +//GattCharacteristic *softwareChars[] = {&swChars }; +//GattService softwareService(GattService::UUID_DEVICE_INFORMATION_SERVICE, softwareChars, sizeof(softwareChars) / sizeof(GattCharacteristic *)); +// Hardware +static char hwversion[31] = "1.0"; +GattCharacteristic hwChars(GattCharacteristic::UUID_HARDWARE_REVISION_STRING_CHAR, (uint8_t *)hwversion, strlen(hwversion), strlen(hwversion), + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ); +//GattCharacteristic *hardwareChars[] = {&hwChars }; +//GattService hardwareService(GattService::UUID_DEVICE_INFORMATION_SERVICE, hardwareChars, sizeof(hardwareChars) / sizeof(GattCharacteristic *)); +// Manufacturer +static char vendor[31] = "Test Company Inc."; +GattCharacteristic vendorChars(GattCharacteristic::UUID_MANUFACTURER_NAME_STRING_CHAR, (uint8_t *)vendor, strlen(vendor), strlen(vendor), + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ); +//GattCharacteristic *manufacturerChars[] = {&vendorChars }; +//GattService manufacturerService(GattService::UUID_DEVICE_INFORMATION_SERVICE, manufacturerChars, sizeof(manufacturerChars) / sizeof(GattCharacteristic *)); +// Serial number +static char serial[31] = "1234567890"; +GattCharacteristic serialChars(GattCharacteristic::UUID_SERIAL_NUMBER_STRING_CHAR, (uint8_t *)serial, strlen(serial), strlen(serial), + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ); +//GattCharacteristic *serialNumberChars[] = {&serialChars }; +//GattService serialNumberService(GattService::UUID_DEVICE_INFORMATION_SERVICE, serialNumberChars, sizeof(serialNumberChars) / sizeof(GattCharacteristic *)); + + +//GattCharacteristic *informationChars[] = {&systemID, &modelID, &serialChars, &fwChars, &hwChars, &swChars, &vendorChars, }; +GattCharacteristic *informationChars[] = {&modelID, &fwChars, &hwChars, &swChars, &vendorChars, }; +GattService informationService(GattService::UUID_DEVICE_INFORMATION_SERVICE, informationChars, sizeof(informationChars) / sizeof(GattCharacteristic *)); + + +static uint8_t batteryLevel = 100; +GattCharacteristic batteryPercentage(GattCharacteristic::UUID_BATTERY_LEVEL_CHAR, (uint8_t *)batteryLevel, sizeof(batteryLevel), sizeof(batteryLevel), + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY); +GattCharacteristic *batteryChars[] = {&batteryPercentage }; +GattService batteryService(GattService::UUID_BATTERY_SERVICE, batteryChars, sizeof(batteryChars) / sizeof(GattCharacteristic *)); + + + +void connectionCallback(uint16_t charHandle) +//void connectionCallback(void) +{ + DEBUG("Connected!\n\r"); +} +void disconnectionCallback(uint16_t charHandle) +//void disconnectionCallback(void) { DEBUG("Disconnected!\n\r"); DEBUG("Restarting the advertising process\n\r"); @@ -57,18 +276,70 @@ void onDataWritten(uint16_t charHandle) { - if (charHandle == txCharacteristic.getHandle()) { - DEBUG("onDataWritten()\n\r"); + DEBUG("onDataWritten\n\r"); + if (charHandle == pioOutputCharacteristic.getHandle()) { + DEBUG("pioOutputCharacteristic!\n\r"); + uint8_t getPioOut[10]; + uint16_t bytesRead; + ble.readCharacteristicValue(pioOutputCharacteristic.getHandle(), getPioOut, &bytesRead); + DEBUG("DATA: %d %d\n\r",getPioOut[0],pioOutput[0]); + if(getPioOut[0]!=pioOutput[0]) { + pioOutput[0]=getPioOut[0]; + ioOut = getPioOut[0]; + } + } else if (charHandle == uartTxCharacteristic.getHandle()) { + DEBUG("uartTxCharacteristic!\n\r"); uint16_t bytesRead; - ble.readCharacteristicValue(txCharacteristic.getHandle(), txPayload, &bytesRead); - DEBUG("ECHO: %s\n\r", (char *)txPayload); - ble.updateCharacteristicValue(rxCharacteristic.getHandle(), txPayload, bytesRead); - } + ble.readCharacteristicValue(uartTxCharacteristic.getHandle(), uartTx, &bytesRead); + DEBUG("ECHO: %s\n\r", (char *)uartTx); +// pc.putc(uartTx[0]); + ble.updateCharacteristicValue(uartRxCharacteristic.getHandle(), uartTx, bytesRead); + } else if (charHandle == pioSettingCharacteristic.getHandle()) { + DEBUG("pioSettingCharacteristic!\n\r"); + } else if (charHandle == pioPullupCharacteristic.getHandle()) { + DEBUG("pioPullupCharacteristic!\n\r"); + } else if (charHandle == pwmConfigCharacteristic.getHandle()) { + DEBUG("pwmConfigCharacteristic!\n\r"); + } else if (charHandle == pwmPeriodCharacteristic.getHandle()) { + DEBUG("pwmPeriodCharacteristic!\n\r"); + } else if (charHandle == pwmDutyCharacteristic.getHandle()) { + DEBUG("pwmDutyCharacteristic!\n\r"); + } else if (charHandle == analogDriveCharacteristic.getHandle()) { + DEBUG("analogDriveCharacteristic!\n\r"); + } else if (charHandle == i2cConfigCharacteristic.getHandle()) { + DEBUG("i2cConfigCharacteristic!\n\r"); + } else if (charHandle == i2cStartStopCharacteristic.getHandle()) { + DEBUG("pioSettingCharacteristic!\n\r"); + } else if (charHandle == i2cWriteCharacteristic.getHandle()) { + DEBUG("i2cStartStopCharacteristic!\n\r"); + } else if (charHandle == i2cReadParamCharacteristic.getHandle()) { + DEBUG("i2cReadParamCharacteristic!\n\r"); + } else if (charHandle == uartConfigCharacteristic.getHandle()) { + DEBUG("uartConfigCharacteristic!\n\r"); + } else if (charHandle == uartBaudrateCharacteristic.getHandle()) { + DEBUG("uartBaudrateCharacteristic!\n\r"); + } else if (charHandle == hardwareRestCharacteristic.getHandle()) { + DEBUG("hardwareRestCharacteristic!\n\r"); + } } void periodicCallback(void) { led1 = !led1; /* Do blinky on LED1 while we're waiting for BLE events */ + if (ble.getGapState().connected) { + /* Update the battery measurement */ + batteryLevel--; + if (batteryLevel == 1) { + batteryLevel = 100; + } +// ble.updateCharacteristicValue(batteryPercentage.getHandle(), &batteryLevel, sizeof(batteryLevel)); +// ble.updateCharacteristicValue(hardwareLowBatCharacteristic.getHandle(), &batteryLevel, sizeof(batteryLevel)); +/* if(pc.readable()) { + char data; + data = pc.getc(); + ble.updateCharacteristicValue(uartRxCharacteristic.getHandle(), (uint8_t*)&data, 1); + }*/ + } } int main(void) @@ -79,21 +350,30 @@ DEBUG("Initialising the nRF51822\n\r"); ble.init(); + ble.onConnection(connectionCallback); ble.onDisconnection(disconnectionCallback); ble.onDataWritten(onDataWritten); /* setup advertising */ ble.accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED); +// ble.accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LOCAL_NAME, (uint8_t *)DEVICE_NAME, sizeof(DEVICE_NAME)); ble.setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED); - ble.accumulateAdvertisingPayload(GapAdvertisingData::SHORTENED_LOCAL_NAME, - (const uint8_t *)"BLE UART", sizeof("BLE UART") - 1); - ble.accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LIST_128BIT_SERVICE_IDS, - (const uint8_t *)uart_base_uuid_rev, sizeof(uart_base_uuid)); +// ble.accumulateAdvertisingPayload(GapAdvertisingData::SHORTENED_LOCAL_NAME, +// (const uint8_t *)"BLE UART", sizeof("BLE UART") - 1); +// ble.accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LOCAL_NAME, +// (const uint8_t *)"mbed HRM1017", sizeof("mbed HRM1017") - 1); +// ble.accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LIST_128BIT_SERVICE_IDS, +// (const uint8_t *)uart_base_uuid_rev, sizeof(uart_base_uuid)); +// ble.accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LIST_16BIT_SERVICE_IDS, +// (const uint8_t *)uuid16_list, sizeof(uuid16_list)); ble.setAdvertisingInterval(160); /* 100ms; in multiples of 0.625ms. */ ble.startAdvertising(); - ble.addService(uartService); +// ble.addService(batteryService); + ble.addService(informationService); +// ble.addService(konashiService); + ble.addService(konashiService1); while (true) { ble.waitForEvent();