#include #include #include //#include #include "messageData.h" #include "SerialPort.h" void menu(); void addData(int); void addUser(); void reviewData(bool, int); void reviewUserData(); void printData(); int getMesTotal(); void addMesTotal(int); //global SerialPort communication; //******************************************************************* // MAIN FUNCTION //******************************************************************* int main() { if( communication.init() == true ) { cerr << "Unable to initial to establish proper serial port connection." << endl; return(1); } char choice; //getting the total number of emails saved int messageTotal = getMesTotal(); do { menu(); cin >> choice; switch(choice) { case '1': messageTotal++; addData(messageTotal); break; case '2': addUser(); break; case '3': reviewData(false, messageTotal); break; case '4': reviewUserData(); break; case '5': break; default: cout <<"Unexpected error.\n"; } } while( choice != '5' ); addMesTotal(messageTotal); return 1; } //******************************************************************* // GETMESTOTAL FUNCTION //******************************************************************* int getMesTotal() { int total; ifstream infile("ripEmailInfo.txt", ios::nocreate ); if( !infile ) { return 0; } else { infile >> total; infile.close(); return( total ); } } //******************************************************************* // ADDMESTOTAL FUNCTION //******************************************************************* void addMesTotal(int total) { ofstream outfile("ripEmailInfo.txt", ios::in|ios::out); if( !outfile ) { cerr <<"ERROR: cannot open ripInfo.data\n\n"; } else { outfile << total << endl; outfile.close(); } } //******************************************************************* // MENU FUNCTION //******************************************************************* void menu() { cout <<"1) Add New Email Data\n" <<"2) Add New User Dats\n" <<"3) Review Email Data\n" <<"4) Review User Data\n" <<"5) Exit\n\n" <<"#: "; } //******************************************************************* // ADDDATA FUNCTION //******************************************************************* void addData(int number) { char line[MESSAGE_MAX]; int length; messageData data; cin.get(); cout <<"Email Address: "; cin.getline(line, MESSAGE_MAX, '\n'); data.emailAdd = strdup(line); cout <<"Server Address: "; cin.getline(line, MESSAGE_MAX, '\n'); data.serverAdd = strdup(line); cout <<"Subject: "; cin.getline(line, MESSAGE_MAX, '\n'); data.subject = strdup(line); cout <<"Message Body: "; cin.getline(line, MESSAGE_MAX, '\n'); data.message = strdup(line); ofstream outfile( "ripEmailInfo.txt", ios::ate ); if( !outfile ) { cerr <<"ERROR, cannot open file!\n"; exit( 1 ); } outfile << endl << number << endl << data.emailAdd << endl << data.serverAdd << endl << data.subject << endl << data.message << endl; outfile.close(); length = strlen(data.message); //SEND MESSAGE TO RIP USER INTERFACE communication.SendMessage(number, data.message, length, false); Sleep(500); communication.SendMessage(number, data.message, length, false); cout <<"\nEmail message sent to user interface\n"; delete [] data.serverAdd; delete [] data.emailAdd; delete [] data.subject; delete [] data.message; cout <<"\nId Number: " << number << endl << endl; } //******************************************************************* // ADDUSER FUNCTION //******************************************************************* void addUser() { char line[MESSAGE_MAX]; char *name; char password[PASSWORD_MAX]; cin.get(); cout <<"Enter User Name: "; cin.getline(line,MESSAGE_MAX,'\n'); name = strdup(line); cout <<"Enter 4 Digit Password\n"; cout <<"Digit One: "; cin >> password[0]; cout <<"Digit Two: "; cin >> password[1]; cout <<"Digit Three: "; cin >> password[2]; cout <<"Digit Four: "; cin >> password[3]; cout << endl << endl; ofstream outfile( "ripUserInfo.txt", ios::ate ); if( !outfile ) { cerr <<"ERROR, cannot open file!\n"; exit( 1 ); } outfile << name << endl << password[0] << password[1] << password[2] << password[3] << endl; delete [] name; //SEND PASSWORD TO RIP USER INTEFACE communication.SendPassword(password, false); Sleep(500); communication.SendPassword(password, false); cout <<"\nPassword sent to user interface\n"; outfile.close(); } //******************************************************************* // REVIEWDATA FUNCTION //******************************************************************* void reviewData(bool option, int number) { if( number == 0 ) { cout <<"\nNO DATA ENTERED\n"; return; } int id,lookup; bool found = false; char line[MESSAGE_MAX]; messageData data; cin.get(); cout <<"\nEnter Id Number between 1 and " << number << endl; cout <<"Id Number: "; cin >> id; fstream infile("ripEmailInfo.txt", ios::in | ios::out ); infile.getline(line,MESSAGE_MAX,'\n'); infile.getline(line,MESSAGE_MAX,'\n'); if( id != 1 ) { while( !infile.eof() ) { for(int i=0; i<5; i++) { infile.getline(line,MESSAGE_MAX,'\n'); } infile >> lookup; if(lookup == id) { infile.getline(line,MESSAGE_MAX,'\n'); found = true; break; } } } else { found = true ; } if( found == true ) { infile.getline(line,MESSAGE_MAX,'\n'); data.emailAdd = strdup(line); cout <<"\nEmail address: " << data.emailAdd; infile.getline(line,MESSAGE_MAX,'\n'); data.serverAdd = strdup(line); cout <<"\nEmail server: " << data.serverAdd; infile.getline(line,MESSAGE_MAX,'\n'); data.subject = strdup(line); cout <<"\nEmail subject: " << data.subject; infile.getline(line,MESSAGE_MAX,'\n'); data.message = strdup(line); cout <<"\nEmail message: " << data.message << endl << endl; delete [] data.serverAdd; delete [] data.emailAdd; delete [] data.subject; delete [] data.message; } else { cout <<"\nEmail address not found\n\n"; } } //******************************************************************* // REVIEWUSERDATA FUNCTION //******************************************************************* void reviewUserData() { char line[MESSAGE_MAX]; char *name; bool found; cin.get(); cout <<"Enter User Name: "; cin.getline(line,MESSAGE_MAX,'\n'); name = strdup(line); cout << endl; fstream infile( "ripUserInfo.txt", ios::in | ios::out ); if( !infile ) { cerr <<"ERROR, cannot open file!\n"; exit( 1 ); } infile.getline(line,MESSAGE_MAX,'\n'); while( !infile.eof() ) { if( !strcmp( line, name ) ) { cout <<"Name: " << name << endl; infile.getline(line,MESSAGE_MAX,'\n'); cout <<"Password: " << line << endl << endl; found = true; break; } else { infile.getline(line,MESSAGE_MAX,'\n'); } } if( found == false ) { cout << name <<" not found.\n\n"; } }