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: Hexi_KW40Z Hexi_OLED_SSD1351
Fork of Hexi_BLE_Example_Modified by
Diff: main.cpp
- Revision:
- 1:a0d9eeedb771
- Parent:
- 0:c80666325948
- Child:
- 3:c2ab3a0de448
diff -r c80666325948 -r a0d9eeedb771 main.cpp
--- a/main.cpp Tue Sep 20 01:13:43 2016 +0000
+++ b/main.cpp Tue Sep 20 22:40:39 2016 +0000
@@ -1,9 +1,3 @@
-/* Use this in conjunction with the iOS or Android Hexiwear App.
- This example currently shows the Sensor Tag functionality.
- Program the Hexiwear with the binary, then tap to turn on
- Bluetooth.(Blue LED indicates BLE is on) Use Hexiwear app to
- connect. Pairing code will appear on the OLED screen. */
-
#include "mbed.h"
#include "Hexi_KW40Z.h"
#include "Hexi_OLED_SSD1351.h"
@@ -16,6 +10,7 @@
void StartHaptic(void);
void StopHaptic(void const *n);
+void txTask(void);
DigitalOut redLed(LED1,1);
DigitalOut greenLed(LED2,1);
@@ -31,8 +26,13 @@
/* Instantiate the SSD1351 OLED Driver */
SSD1351 oled(PTB22,PTB21,PTC13,PTB20,PTE6, PTD15); /* (MOSI,SCLK,POWER,CS,RST,DC) */
-char text[20]; /* Text Buffer */
+/*Create a Thread to handle sending BLE Sensor Data */
+Thread txThread;
+ /* Text Buffer */
+char text[20];
+
+/****************************Call Back Functions*******************************/
void ButtonRight(void)
{
StartHaptic();
@@ -48,16 +48,18 @@
void PassKey(void)
{
StartHaptic();
-
- /* Display Text at (x=20,y=2) */
strcpy((char *) text,"PAIR CODE");
- oled.Label((uint8_t *)text,20,25);
+ oled.TextBox((uint8_t *)text,0,25,95,18);
/* Display Bond Pass Key in a 95px by 18px textbox at x=0,y=40 */
sprintf(text,"%d", kw40z_device.GetPassKey());
oled.TextBox((uint8_t *)text,0,40,95,18);
}
-
+
+/***********************End of Call Back Functions*****************************/
+
+/********************************Main******************************************/
+
int main()
{
/* Get OLED Class Default Text Properties */
@@ -74,7 +76,7 @@
kw40z_device.attach_buttonLeft(&ButtonLeft);
kw40z_device.attach_buttonRight(&ButtonRight);
kw40z_device.attach_passkey(&PassKey);
-
+
/* Change font color to Blue */
textProperties.fontColor = COLOR_BLUE;
oled.SetTextProperties(&textProperties);
@@ -88,20 +90,35 @@
textProperties.alignParam = OLED_TEXT_ALIGN_CENTER;
oled.SetTextProperties(&textProperties);
- /* Display Label at x=22,y=80 */
+ /* Display Label at x=22,y=80 */
strcpy((char *) text,"Tap Below");
oled.Label((uint8_t *)text,22,80);
+ uint8_t prevLinkState = 0;
+ uint8_t currLinkState = 0;
+ txThread.start(txTask); /*Start transmitting Sensor Tag Data */
- while (true) {
+ while (true)
+ {
+ blueLed = !kw40z_device.GetAdvertisementMode(); /*Indicate BLE Advertisment Mode*/
+ Thread::wait(50);
+ }
+}
+
+/******************************End of Main*************************************/
+
+
+/* txTask() transmits the sensor data */
+void txTask(void){
+
+ while (true)
+ {
- blueLed = !kw40z_device.GetAdvertisementMode(); /*Indicate BLE Advertisment Mode*/
-
- /*Notify device that it is running Sensor Tag mode for the Hexiwear App*/
+ /*Notify Hexiwear App that it is running Sensor Tag mode*/
kw40z_device.SendSetApplicationMode(GUI_CURRENT_APP_SENSOR_TAG);
- /*The following is sending dummy data over Bluetooth LE. Replace with real data*/
-
+ /*The following is sending dummy data over BLE. Replace with real data*/
+
/*Send Battery Level for 20% */
kw40z_device.SendBatteryLevel(20);
@@ -117,18 +134,15 @@
/*Send Pressure at 100kPA */
kw40z_device.SendPressure(10000);
- /*Send Mag,Accel,Gyro Data. Y-axis has offset in Hexiwear App*/
+ /*Send Mag,Accel,Gyro Data. */
kw40z_device.SendGyro(0,0,0);
kw40z_device.SendAccel(0,0,0);
- kw40z_device.SendMag(0,0,0);
-
- Thread::wait(1000);
-
+ kw40z_device.SendMag(0,0,0);
+ Thread::wait(1000);
}
}
-void StartHaptic(void)
-{
+void StartHaptic(void) {
hapticTimer.start(50);
haptic = 1;
}
@@ -137,3 +151,4 @@
haptic = 0;
hapticTimer.stop();
}
+
