MPU6050センサ Wallbot_BLE用 サンプル
Dependencies: BLE_API mbed nRF51822
main.cpp@4:3a25f1bdffc7, 2015-01-26 (annotated)
- Committer:
- mbed_tw_hoehoe
- Date:
- Mon Jan 26 11:21:56 2015 +0000
- Revision:
- 4:3a25f1bdffc7
- Parent:
- 3:ca2cdabf5977
- Child:
- 5:807096fdd895
change one service uuid.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mbed_tw_hoehoe | 0:2fa085b36ad8 | 1 | #include "mbed.h" |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 2 | #include "BLEDevice.h" |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 3 | #include "MPU6050.h" |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 4 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 5 | /* |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 6 | #define DBG 1 |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 7 | #define NEED_CONSOLE_OUTPUT 1 // Set this if you need debug messages on the console; |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 8 | // it will have an impact on code-size and power consumption. |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 9 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 10 | #if NEED_CONSOLE_OUTPUT |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 11 | Serial pc(USBTX, USBRX); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 12 | #define DEBUG(...) { pc.printf(__VA_ARGS__); } |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 13 | #else |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 14 | #define DEBUG(...) // nothing // |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 15 | #endif // #if NEED_CONSOLE_OUTPUT // |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 16 | */ |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 17 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 18 | BLEDevice ble; |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 19 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 20 | MPU6050 mpu(I2C_SDA0, I2C_SCL0); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 21 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 22 | static const char DEVICENAME[] = "BLE-Nano"; |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 23 | static volatile bool triggerSensorPolling = false; |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 24 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 25 | //9FDF3283-9049-CF8D-5C4D-98E7E2002731 |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 26 | //const uint8_t MPU6050_adv_service_uuid[] = { |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 27 | // 0x9F,0xDF,0x32,0x83, |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 28 | // 0x90,0x49, |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 29 | // 0xCF,0x8D, |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 30 | // 0x5C,0x4D, |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 31 | // 0x98,0xE7,0xE2,0x00,0x27,0x31 |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 32 | //}; |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 33 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 34 | const uint8_t MPU6050_service_uuid[] = { |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 35 | 0x31,0x27,0x00,0xE2,0xE7,0x98,0x4D,0x5C,0x8D,0xCF,0x49,0x90,0x83,0x32,0xDF,0x9F |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 36 | }; |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 37 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 38 | const uint8_t MPU6050_Accel_Characteristic_uuid[] = { |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 39 | 0xFF,0xA2,0x8C,0xDE,0x65,0x25, |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 40 | 0x44,0x89, |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 41 | 0x80,0x1C, |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 42 | 0x1C,0x06,0x0C,0xAC,0x97,0x67 |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 43 | }; |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 44 | |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 45 | //const uint8_t MPU6050_Gyro_Characteristic_uuid[] = { |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 46 | // 0x65, 0x60, 0xBE, 0x95,0xD9, 0x31, |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 47 | // 0x4F, 0x64, |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 48 | // 0x95, 0x75, |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 49 | // 0xC6, 0xDD, 0xB5, 0xAE, 0x7F, 0xA5 |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 50 | //}; |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 51 | |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 52 | uint8_t accelPayload[sizeof(float)*7] = {0,}; |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 53 | //uint8_t gyroPayload[sizeof(float)*3] = {0,0,0}; |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 54 | //uint8_t tempPayload[sizeof(float)*1] = {0}; |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 55 | //uint8_t batt = 100; /* Battery level */ |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 56 | //uint8_t read_batt = 0; /* Variable to hold battery level reads */ |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 57 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 58 | GattCharacteristic accelChar (MPU6050_Accel_Characteristic_uuid, |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 59 | accelPayload, (sizeof(float) * 7), (sizeof(float) * 7), |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 60 | GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 61 | |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 62 | //GattCharacteristic gyroChar (MPU6050_Gyro_Characteristic_uuid, |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 63 | // gyroPayload, (sizeof(float) * 3), (sizeof(float) * 3), |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 64 | // GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 65 | |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 66 | //GattCharacteristic *ControllerChars[] = { &accelChar, &gyroChar, }; |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 67 | GattCharacteristic *ControllerChars[] = { &accelChar, }; |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 68 | GattService MPU6050Service(MPU6050_service_uuid, ControllerChars, sizeof(ControllerChars) / sizeof(GattCharacteristic *)); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 69 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 70 | void updateValue(); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 71 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 72 | void disconnectionCallback(Gap::Handle_t handle, Gap::DisconnectionReason_t reason) // Mod |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 73 | { |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 74 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 75 | //DEBUG("Disconnected handle %u, reason %u\n", handle, reason); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 76 | //DEBUG("Restarting the advertising process\n\r"); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 77 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 78 | ble.startAdvertising(); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 79 | } |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 80 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 81 | void onConnectionCallback(Gap::Handle_t handle, Gap::addr_type_t peerAddrType, const Gap::address_t peerAddr, const Gap::ConnectionParams_t *params) //Mod |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 82 | { |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 83 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 84 | //DEBUG("connected. Got handle %u\r\n", handle); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 85 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 86 | /*******************************************************************************/ |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 87 | /* CentralがMacOS X の時 connection intervalを設定する場合は */ |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 88 | /* nRF51822 -> projectconfig.h -> GAP -> */ |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 89 | /* CFG_GAP_CONNECTION_MIN_INTERVAL_MS / CFG_GAP_CONNECTION_MAX_INTERVAL_MSを */ |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 90 | /* 直接編集すること */ |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 91 | /******************************************************************************/ |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 92 | |
mbed_tw_hoehoe | 3:ca2cdabf5977 | 93 | #define MIN_CONN_INTERVAL 250 /**< Minimum connection interval (250 ms) */ |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 94 | #define MAX_CONN_INTERVAL 350 /**< Maximum connection interval (350 ms). */ |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 95 | #define CONN_SUP_TIMEOUT 6000 /**< Connection supervisory timeout (6 seconds). */ |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 96 | #define SLAVE_LATENCY 4 |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 97 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 98 | Gap::ConnectionParams_t gap_conn_params; |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 99 | gap_conn_params.minConnectionInterval = Gap::MSEC_TO_GAP_DURATION_UNITS(MIN_CONN_INTERVAL); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 100 | gap_conn_params.maxConnectionInterval = Gap::MSEC_TO_GAP_DURATION_UNITS(MAX_CONN_INTERVAL); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 101 | gap_conn_params.connectionSupervisionTimeout = Gap::MSEC_TO_GAP_DURATION_UNITS(CONN_SUP_TIMEOUT); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 102 | gap_conn_params.slaveLatency = SLAVE_LATENCY; |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 103 | ble.updateConnectionParams(handle, &gap_conn_params); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 104 | //if (ble.updateConnectionParams(handle, &gap_conn_params) != BLE_ERROR_NONE) { |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 105 | // DEBUG("failed to update connection paramter\r\n"); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 106 | //} |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 107 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 108 | updateValue(); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 109 | } |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 110 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 111 | void timeoutCallback(void) |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 112 | { |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 113 | //DEBUG("TimeOut\n\r"); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 114 | //DEBUG("Restarting the advertising process\n\r"); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 115 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 116 | ble.startAdvertising(); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 117 | } |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 118 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 119 | void periodicCallback(void) |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 120 | { |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 121 | //oneSecondLed = !oneSecondLed; /* Do blinky on LED1 while we're waiting for BLE events */ |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 122 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 123 | /* Note that the periodicCallback() executes in interrupt context, so it is safer to do |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 124 | * heavy-weight sensor polling from the main thread. */ |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 125 | triggerSensorPolling = true; |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 126 | } |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 127 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 128 | /**************************************************************************/ |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 129 | /*! |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 130 | @brief Program entry point |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 131 | */ |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 132 | /**************************************************************************/ |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 133 | int main(void) |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 134 | { |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 135 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 136 | //#if DBG |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 137 | // pc.printf("Start\n\r"); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 138 | //#endif |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 139 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 140 | if( mpu.testConnection() ){ |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 141 | //pc.printf("mpu test:OK\n\r"); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 142 | }else{ |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 143 | //pc.printf("mpu test:NG\n\r"); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 144 | } |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 145 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 146 | Ticker ticker; |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 147 | ticker.attach(periodicCallback, 0.25f); //1sec |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 148 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 149 | ble.init(); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 150 | ble.onDisconnection(disconnectionCallback); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 151 | ble.onConnection(onConnectionCallback); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 152 | ble.onTimeout(timeoutCallback); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 153 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 154 | /* setup device name */ |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 155 | ble.setDeviceName((const uint8_t *)DEVICENAME); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 156 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 157 | /* setup advertising */ |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 158 | ble.accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED | GapAdvertisingData::LE_GENERAL_DISCOVERABLE); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 159 | ble.setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 160 | ble.accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LOCAL_NAME, (const uint8_t *)DEVICENAME, sizeof(DEVICENAME)); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 161 | ble.accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LIST_128BIT_SERVICE_IDS, |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 162 | (const uint8_t *)MPU6050_service_uuid, sizeof(MPU6050_service_uuid)); |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 163 | //(const uint8_t *)MPU6050_adv_service_uuid, sizeof(MPU6050_adv_service_uuid)); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 164 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 165 | ble.setAdvertisingInterval(160); /* 100ms; in multiples of 0.625ms. */ |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 166 | ble.startAdvertising(); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 167 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 168 | ble.addService(MPU6050Service); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 169 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 170 | while(true) { |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 171 | if (triggerSensorPolling && ble.getGapState().connected) { |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 172 | triggerSensorPolling = false; |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 173 | updateValue(); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 174 | } else { |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 175 | ble.waitForEvent(); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 176 | } |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 177 | } |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 178 | } |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 179 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 180 | void updateValue(void){ |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 181 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 182 | float acData[3]; |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 183 | float gyData[3]; |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 184 | float tempData = 0.0; |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 185 | |
mbed_tw_hoehoe | 3:ca2cdabf5977 | 186 | //加速度を取得 |
mbed_tw_hoehoe | 3:ca2cdabf5977 | 187 | mpu.getAccelero(acData); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 188 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 189 | memcpy(accelPayload+sizeof(float)*0, &acData[0], sizeof(acData[0])); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 190 | memcpy(accelPayload+sizeof(float)*1, &acData[1], sizeof(acData[1])); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 191 | memcpy(accelPayload+sizeof(float)*2, &acData[2], sizeof(acData[2])); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 192 | |
mbed_tw_hoehoe | 3:ca2cdabf5977 | 193 | //ジャイロを取得 |
mbed_tw_hoehoe | 3:ca2cdabf5977 | 194 | mpu.getGyro(gyData); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 195 | |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 196 | memcpy(accelPayload+sizeof(float)*3, &gyData[0], sizeof(gyData[0])); |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 197 | memcpy(accelPayload+sizeof(float)*4, &gyData[1], sizeof(gyData[1])); |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 198 | memcpy(accelPayload+sizeof(float)*5, &gyData[2], sizeof(gyData[2])); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 199 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 200 | //温度を取得 |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 201 | tempData = mpu.getTemp(); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 202 | |
mbed_tw_hoehoe | 4:3a25f1bdffc7 | 203 | memcpy(accelPayload+sizeof(float)*6, &tempData, sizeof(tempData)); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 204 | /* |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 205 | pc.printf("Accel: %.3lf,%.3lf,%.3lf\r\n", |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 206 | *(float*)&accelPayload[sizeof(float)*0], |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 207 | *(float*)&accelPayload[sizeof(float)*1], |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 208 | *(float*)&accelPayload[sizeof(float)*2]); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 209 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 210 | pc.printf("Gyro: %.3lf,%.3lf,%.3lf\r\n", |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 211 | *(float*)&gyroPayload[sizeof(float)*0], |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 212 | *(float*)&gyroPayload[sizeof(float)*1], |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 213 | *(float*)&gyroPayload[sizeof(float)*2]); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 214 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 215 | pc.printf("Temp: %.3lf\r\n", *(float*)&tempPayload[sizeof(float)*0]); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 216 | pc.printf("Battery: %d\r\n", batt); |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 217 | */ |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 218 | |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 219 | ble.updateCharacteristicValue(accelChar.getValueAttribute().getHandle(), accelPayload, sizeof(accelPayload)); //Mod |
mbed_tw_hoehoe | 0:2fa085b36ad8 | 220 | } |