displays services offered by facilities offering civilian services with short summaries

Dependencies:   mbed Sht31 C12832

main.cpp

Committer:
ogore
Date:
2021-01-28
Revision:
5:9b8f87a5a415
Parent:
4:b6d479319713

File content as of revision 5:9b8f87a5a415:

#include "mbed.h"
#include "C12832.h"
#include "Sht31.h"

DigitalOut blueled(p17, 0); // Initializing the yellow light OFF 
DigitalOut redled(p15, 0); // Initializing the red light OFF 
DigitalOut whiteled(p19, 0); // Initializing the red light OFF 
C12832 lcd(SPI_MOSI, SPI_SCK, SPI_MISO, p8, p11); // create an instance of LCD
Sht31 sht31(I2C_SDA, I2C_SCL);
DigitalIn switchmode(p24);
InterruptIn button(p20);
int i=0;
int k=0;
int maxtopics=5;
int d=1;
Timer t;
time_t rise_seconds;
time_t fall_seconds;
int duration;
//initialize topics, summaries and welcome message
const char *myArray[5][2] = { { "ID", "ASSIGNING OF IDENTIFICATION CARDS TO CITIZENS" }, { "VISA", "PROVISIONING OF VISA TO FOREIGNERS" },
{"PASSPORT"," PASSPORT ASSIGNMENT TO APPLICANTS"},{ "BIRTH CERTIFICATE","APPLICATION OF BIRTH REGISTRATION"},
{"DRIVING LICENSES","APPLICATION AND PROVISIONING OF DRIVING LINCENCE"}};
 char welcome_message[]="Center for Government Services";

//function for displaying message
static void display(const char *message) {
    lcd.cls();  // Clear LCD
    lcd.locate(10, 5); // get cursor to position x=3px and y=5px
    lcd.printf(message); // Write text into LCD buffer
    lcd.copy_to_lcd();
}
void fallISR() {
    t.start();
    fall_seconds = time(NULL);
 }
void riseISR()
{
    t.stop();
    rise_seconds = time(NULL);
    duration = rise_seconds-fall_seconds; 
   //printf("\nthe duration is %d",duration); 
          if(duration>3)
    {
        d=d*-1;
    }
        i=i+d;
}
 //function to display topic and summary*/
void display_message(const char *topic,const char *summary, int i)
{
    
    display(topic);
    wait(1);
    display(summary); 
}
 //function for mode two
void Reading()
{
    while(switchmode)
    {
    if(d<0)
    {
    redled=1;
    blueled=0; 
     }
     else
     {
     blueled=1;
    redled=0;
     } 
    k=k+1;

    if(i==0 || i>4)
    {
        //in ascending order if i goes above 4 display myArray[0][0]
        //if i>4 make i =0
        i=0;
    }
    else if(i==4 || i<0 )
    //in descending order if i goes below zero display myArray[4][0]
    //if i<0 make i=4
    {
        i=4;
    }
    display_message(myArray[i][0],myArray[i][1],i);
    if(k>4)
    {
    printf("\n topic ID is=%d and reading duration is %d seconds",i,k);
    k=0;
    }
    wait(1);
    }
    !switchmode;

}
void looping()
    {    
        while(!switchmode)
        {
   i=0;
   time_t seconds = time(NULL);
    float temp = sht31.readTemperature(); //read temperature
    lcd.locate(5, 5); // get cursor to position x=5px and y=5px
    lcd.printf("Current Temperature: %.2fC",temp);//display temp
    lcd.locate(5, 5); // get cursor to position x=5px and y=5px
    lcd.printf("Current Time in seconds is: %d",(unsigned int)seconds); //display time
    //wait(3);
        while(i<maxtopics)
        {
            whiteled=1;
        //with the value of i, when you enter mode two you see summary of the topic displayed when you entered mode two
        display(myArray[i][0]);
        whiteled=0;
        i++;
        wait(2);
        }
        Reading();
        wait(1);
        }
        
    }

int main()
{
    set_time(1256729737);
    button.fall(&fallISR);
    button.rise(&riseISR);
    display(welcome_message);//show welcome message
    looping();
}