// // Main Routine // int main(void) { #ifdef DEBUG CSerial ser; // declare a UART object ser.enable(); CDebug dbg(ser); // Debug stream use the UART object dbg.start(); #endif // // Your setup code here // CThread t(tskBlink); t.start("blink"); // start the blink task CPin led0(LED_PIN_0); // declare led0 on p0.18 led0.output(); // // Enter main loop. // while(1) { // // Your loop code here // led0.toggle(); // toggle the led0 sleep(500); } }
// // Main Routine // int main(void) { #ifdef DEBUG CSerial ser; // declare a UART object ser.enable(); CDebug dbg(ser); // Debug stream use the UART object dbg.start(); #endif // // SoftDevice // bleDevice ble; ble.attachEvent(onBleEvent); ble.enable(); // enable BLE SoftDevice task // GAP ble.m_gap.settings(DEVICE_NAME); // set Device Name on GAP bleServiceUriBeacon beacon(ble); // add uri beacon service switch ( beacon.get().tx_power_mode ) { case TX_POWER_MODE_LOWSET: ble.m_gap.tx_power(BLE_TX_m8dBm); break; case TX_POWER_MODE_LOW: ble.m_gap.tx_power(BLE_TX_m4dBm); break; case TX_POWER_MODE_MEDIUM: ble.m_gap.tx_power(BLE_TX_0dBm); break; case TX_POWER_MODE_HIGH: ble.m_gap.tx_power(BLE_TX_4dBm); break; } bleConnParams conn(ble); advertising_init(beacon_mode); // // Optional: Enable tickless technology // #ifndef DEBUG CPowerSave::tickless(true); #endif // // // CPin led0(LED_PIN_0); led0.output(); CPin led1(LED_PIN_1); led1.output(); CPin btn(BUTTON_PIN_0); btn.input(); // // Enter main loop. // while (1) { // // check button // if ( btn==LOW ) { led1 = LED_ON; // stop advertising ble.m_advertising.stop(); // change beacon mode if ( beacon_mode==beacon_mode_config ) { beacon_mode = beacon_mode_normal; } else { beacon_mode = beacon_mode_config; } // update mode and re-start the advertising advertising_init(beacon_mode); // waiting for btn released while(btn==LOW); led1 = LED_OFF; } // // LED Status // if ( beacon_mode==beacon_mode_config ) { // // Negotiate the "connection parameters update" in main-loop // conn.negotiate(); led0 = LED_ON; sleep(50); led0 = LED_OFF; sleep(150); } else { led0 = LED_ON; sleep(5); led0 = LED_OFF; sleep(beacon.get().beacon_period-5); } } }