-Recevoir les données d'un formulaire à travers le BLE , -Text envoyer mot par mot -interruption pour les enregistrer dans une carte sd . . .
Dependencies: mbed SimpleBLE X_NUCLEO_IDB0XA1 SDFileSystem USBDevice
Diff: main.cpp
- Revision:
- 0:09622f029eea
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon Jan 27 11:21:26 2020 +0000 @@ -0,0 +1,75 @@ +//Includes + +#include "mbed.h" +#include "SimpleBLE.h" +#include "USBSerial.h" +#include "SDFileSystem.h" + +//declaration des sortie entrées +SDFileSystem sd(PA_7, PA_6, PA_5, PB_6, "sd"); // carte sd +FILE *fp= fopen("/sd/valeur_ble.txt", "a"); // fichier carte sd +SimpleBLE ble("ObCP_Baton ");// Bleutooth +USBSerial pc; // Bouton d’interruption +InterruptIn button1(PC_13); // Bouton d’interruption + +//declaration des variables + +int height=0; bool interruption= false;char name[50]; int i= 0 ; int weight; int age ; char gender[1]; int max_heart_rate; bool message_envoyee= false; + +//declaration des fonctions +void fct_name_text(uint8_t newState); +void fct_height_int(uint8_t newState); +void fct_weight_int(uint8_t newState); +void fct_age_int(uint8_t newState); +void fct_gender_text(uint8_t newState); +void fct_max_heart_rate_int(uint8_t newState); +void fct_fini(uint8_t newState); + + +void fct_interruption_ble(); + + +SimpleChar<uint8_t> name_text = ble.writeOnly_u8(0x8600, 0x8601, &fct_name_text); +SimpleChar<uint8_t> height_int = ble.writeOnly_u8(0x8600, 0x8602, &fct_height_int); +SimpleChar<uint8_t> weight_int= ble.writeOnly_u8(0x8600, 0x8603, &fct_weight_int); +SimpleChar<uint8_t> age_int= ble.writeOnly_u8(0x8600, 0x8604, &fct_age_int); +SimpleChar<uint8_t> gender_text= ble.writeOnly_u8(0x8600, 0x8605, &fct_gender_text); +SimpleChar<uint8_t> max_heart_rate_u8= ble.writeOnly_u8(0x8600, 0x8606, &fct_max_heart_rate_int); +SimpleChar<uint8_t> fini = ble.writeOnly_u8(0x8600, 0x8607, &fct_fini); + +int main(int, char**) +{ + ble.start();button1.fall(&fct_interruption_ble); + fprintf(fp,"\n********************************Bonjour**************************************\n"); + while (1) { + while (interruption== true) + { + if ( message_envoyee== true ) + { + fprintf(fp,"\n********************************BLE**************************************\n"); + fprintf(fp,"name: %s ; ",name); + fprintf(fp,"height: %d ;",height); + fprintf(fp,"weight: %d ;",weight); + fprintf(fp,"age: %d ;",age); + fprintf(fp,"gender: %s ;",gender); + fprintf(fp,"max_heart_rate: %d ;",max_heart_rate); + fprintf(fp,"\n********************************BLE-fin**************************************\n"); + message_envoyee= false;interruption= false; + } + else + { + ble.waitForEvent(); } + } + //pc.printf("doing something ..."); wait(1); + } +} + +void fct_name_text(uint8_t newState) { name[i] = (char) newState; i= i+1 ;pc.printf("name %s ",name);} +void fct_height_int(uint8_t newState) { height = (int) newState;pc.printf("height %d ",height); } +void fct_weight_int(uint8_t newState) { weight = (int) newState;pc.printf("weight %d ",weight); } +void fct_age_int(uint8_t newState) { age = (int) newState;pc.printf("age %d ",age); } +void fct_gender_text(uint8_t newState) { gender[0] = (char) newState;pc.printf("gender %s ",gender); } +void fct_max_heart_rate_int(uint8_t newState) { max_heart_rate = (int) newState; pc.printf("max_heart_rate %d ",max_heart_rate);} +void fct_fini(uint8_t newState) { message_envoyee= true; pc.printf("message_envoyee "); } + +void fct_interruption_ble(){ interruption= true ; height = 0; i=0; for (int j=1;j<50;j++){ name[j] = '_';} weight=0; age =0; char gender[1] = {'_'} ; max_heart_rate=0; message_envoyee= false; }