FabLab Nîmes / Mbed 2 deprecated FabLab_Station_Meteo

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers serial.h Source File

serial.h

00001 //==============================================================================
00002 //  Fichier : serial.h
00003 //  
00004 //  Description de fonctions utilisées pour la communication série
00005 //==============================================================================
00006 //              Déclarations des ressources
00007 //#include "soft_uart.h"
00008 #include "mbed.h"
00009 //==============================================================================
00010 
00011 
00012 //==============================================================================
00013 //              Déclaration des variables
00014 char cmd[10];                           // tableau de variable de type caractère
00015 char buf[10];
00016 int ptr, k;
00017 int config_menu;
00018 
00019 //==============================================================================
00020 void Init_Serial(void)
00021 {
00022     ptr = 0;
00023     config_menu = 1;
00024 //    k = 0;
00025 
00026   //  init_uart();                        // Initialise la liaison série soft
00027   //  printStr("FabLab Bluetooth\r\n");
00028 }
00029 
00030 void Commande_Up(void)
00031 {
00032 /*    if (kbhit())                    // Un caractère est reçu sur le BT
00033     {
00034         buf[k] = _getchar();        // Mémorise le carcatère dans un tableau
00035         
00036         if((buf[k] == 0x0A) || (buf[k] == 0x0D))      // Test touche entrée en mode ASCII
00037         {
00038             buf[k] = 0;             // Transforme le tableau en chaine de caractères  
00039             k = 0;                  // Met le pointeur à 0
00040             pc.printf("%s\n\r",buf);     // Envoi le texte vers le PC 
00041         }
00042         else
00043         {
00044             k++;                // incrémente pour lire le prochain caractère
00045         }
00046         
00047     }
00048 */
00049     if(pc.readable())                  // Si appui caractère au clavier
00050     {
00051         cmd[ptr] = pc.getc();       // Mémorise le caractère et vide le registre de réception
00052         
00053         if((cmd[ptr] == 0x0A) || (cmd[ptr] == 0x0D))      // Test touche entrée en mode ASCII
00054         {
00055             cmd[ptr] = 0;         // Transforme le tableau en chaine de caractères  
00056             ptr = 0;
00057 
00058             if(config_menu & 0x01)         // Controle Echo On/Off
00059             {
00060                 pc.printf("%s\n\r",cmd);     // Envoi le texte vers le PC 
00061             }
00062         }
00063         else
00064         {
00065             ptr++;
00066         }
00067     }
00068 }
00069 
00070 void Menu(void)
00071 {
00072 
00073     if(cmd[0] == '$')
00074     {
00075         switch (cmd[1])
00076         {
00077             case 'A':                   //  Anémomètre On
00078                 config_menu = config_menu | 0b00000010;
00079                 break;
00080             case 'a':                   //  Anémomètre Off
00081                 config_menu = config_menu & 0b11111101;
00082                 break;
00083             case 'E':                   //  Echo du message On
00084                 config_menu = config_menu | 0b00000001;
00085                 break;
00086             case 'e':                   //  Echo du message Off
00087                 config_menu = config_menu & 0b11111110;
00088                 break;
00089             case 'T':                   //  Thermomètre On
00090                 config_menu = config_menu | 0b00000100;
00091                 break;
00092             case 't':                   //  Thermomètre Off
00093                 config_menu = config_menu & 0b11111011;
00094                 break;
00095             default:
00096                 break;
00097         }
00098     }
00099 }
00100 
00101 int Get_Config(void)
00102 {
00103     return config_menu;
00104 }