uwizeyimana abdulkarim / Mbed 2 deprecated mobileproject

Dependencies:   mbed

main.cpp

Committer:
uwizeyimana
Date:
2021-07-09
Revision:
0:6e0a4dac6596
Child:
1:2a3b76b2e4e5

File content as of revision 0:6e0a4dac6596:

/*mobile project 
GROUP MEMBERS:
1)UWIZEYIMANA ABDULKARIM REG NBER:220020691
2)AMOUR SALIM MOHAMMED REG NBER: 221027397
3)SHAAME M. BAKAR      REG NBER: 220020578
4)ANGELIQUE*/

#include "mbed.h"
#include "C12832.h"
#include "Sht31.h"
#include <string>
#include "Timer.h"
Timer timer;
Serial device (p9,p10);
C12832 lcd(SPI_MOSI, SPI_SCK, SPI_MISO, p8, p11);
Sht31 theo(I2C_SDA, I2C_SCL);
DigitalOut led(p13);
DigitalOut bed(p12);
DigitalOut wed(p14);
InterruptIn  btn(p15);
InterruptIn  swt(p11);
int direction=0;
bool forwards=true;
int current=0;
int mode=0;
int btnState=1;
int butnDuration = 0;
 int j;
 int k;
time_t butnTimerStart;
time_t butnTimerStop;
string str1 = "Menu of the Day";
string str2 = "Rwanda Food Services Ltd";
string str3="Rwanda Food Services Ltd,click Btn to browseMenu";
string topics[]={"1.Out Side catering services",
"2.Restaurent Services","3.fast Food Services",
"4.Online ordering Food Services",
"5.Cook Training Services "
};
string content[]={"11.online bookings buffet package for 80+ guests with 10 percent off",
"22.Pilawo, biriyani, African food,western food","33.fried chicken with salad,fried fish with salad,Nyama choma",
"44.African food,westen food,fast food,pilawo,biriyani",
"55.bread,samosa cooking and smoothies preparation "
};
void display(string sms){
    lcd.cls(); // change dane here
    lcd.locate(0,0);
    lcd.printf(sms.c_str());
}

void displaycontent(){
    mode=1;
    display(content[current]);
    wait_ms(10000);
}

void whiteled()
{
    wed=1;
    wait_ms(2000);
    wed=0;
    wait_ms(2000);
   
}

void scrol(){
  
int i;
        float temp = theo.readTemperature();
        time_t seconds = time(NULL);
        char buffer[32];
        strftime(buffer, 32, "%I:%M %p\n", localtime(&seconds));
        lcd.locate(5, 20); // get cursor to position x=3px and y=5px
        whiteled();
        wait(3);
        lcd.cls(); 
        lcd.set_auto_up(0);
        lcd.setmode(XOR);
    for (i = -20; i <5; i++) { // scrolling text
        lcd.locate(5, i);
        lcd.printf("Local Time: %s",buffer);
        lcd.locate(5, i + 12);
        lcd.printf("Temperature: %.2f C", temp);
        lcd.copy_to_lcd();
        lcd.locate(5, i);
        wait(1);
        lcd.printf("Local Time: %s",buffer);
        lcd.locate(5, i + 12);
        lcd.printf("Temperature: %.2f C", temp);
         i = i + 1;
    }
}

    
  
/*}
 
void StopBtnTimer(){
    printf("Button timer stop \n");
   // loraTimerStop =time(NULL); 
    butnTimerStop = time(NULL);
    printf("Button timer stop: %d \n",butnTimerStop);
    wait(0.5);
    
    //loraDuration = loraTimerStop - loraTimerStart;
    
    butnDuration = butnTimerStop - butnTimerStart;
    //printf("Duration Lora: %d \n", loraDuration); 
    printf("Duration Button: %d \n", butnDuration); 
    
   // DurationCheck();
  }*/

void function(){
   
   j=0;
    while(j<6 && mode==0){
         whiteled();
    display(topics[j]);
    current=j;
     wait_ms(2000);
    j++;
    }}

void function2(){
    k=5;
    while(k>=0 && mode==0){
         whiteled();
    display(topics[k]);
    current=k;
     wait_ms(2000);
    k--;
    }}
   
void changedirection()
{
   wait_ms(3000);
  direction=0;
  bed=1;
  if(direction==0){
       
      bed=led;
      led=!bed;
  }
  if(forwards){
      forwards=!forwards;
      function();
       display(str3);
      
      
  }else{
      forwards=!forwards;
      function2();
       display(str3);
  }
   
}
void StartButtonTimer(){
     time_t seconds = time(NULL);
        char buffer[32];
        strftime(buffer, 32, "%I:%M %p\n", localtime(&seconds));
    printf("Button Timer start \n");
    butnTimerStart = strftime(buffer, 32, "%I:%M %p\n", localtime(&seconds));
   //butnTimerStop=stoptime(buffer, 32, "%I:%M %p\n", localtime(&seconds));
    printf("Button timer start: %d \n",butnTimerStart);
    wait(0.5);
    butnDuration =  butnTimerStart;
     printf("Duration Button: %d \n", butnDuration); 
      if(btnState==1 && butnDuration>=10) {
          lcd.cls();
          lcd.locate(0,0);
        lcd.printf("Reset to factory ....");
        wait(10);
       display(str2);
          function();
      }
       else{
   changedirection();
}
    
}
void mode1(){
    mode=0;
    display(str3);
}
void released(){
    direction=1;
}
int main() {
    display(str2);
    wait_ms(5000);
    scrol();
    btn.fall(callback(&released));
   btn.rise(callback(&StartButtonTimer));
   swt.rise(callback(&displaycontent));
   swt.fall(callback(&mode1));
    function();
   display(str3);
}