El-POM1001 / Mbed 2 deprecated Fancy-Terminal

Dependencies:   Terminal mbed

Fork of Terminal_HelloWorld by Simon Ford

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "Terminal.h"
00003 #include "variables.h"
00004 
00005 Terminal term(USBTX, USBRX); // tx, rx
00006 
00007 
00008 //Prototypes
00009 void Beregn(void);
00010 void FlaskeRegistrering(int);
00011 void utskriftskjerm(void);
00012 void utskriftskjermV2(void);
00013 void UpdateTerminal(void);
00014 
00015 int main() {
00016 
00017     /*  
00018     1. Type 1: 1/3 liter
00019     2. Type 2: 1/2 liter
00020     3. Type 3: 1 liter
00021     4. Type 4: 1 1/2 liter
00022     5. Type 5: Ukurante flasker
00023     */
00024 
00025 
00026     char cValg = -1;
00027     term.cls();
00028     term.locate(MENUPOSX, MENUPOSY);
00029     UpdateTerminal();
00030     //term.printf("Velkommen skriv inn flaske type etterfolg av enter tast\n");
00031     while (1)
00032     {
00033     //while (iValg != 0)
00034     //{
00035 
00036        // scanf("%d", &iValg);
00037         cValg = getchar();
00038         if (cValg <= 57 || cValg >= 48)
00039         {
00040             if      (cValg == 49) FlaskeRegistrering(0);
00041             else if (cValg == 50) FlaskeRegistrering(1);
00042             else if (cValg == 51) FlaskeRegistrering(2);
00043             else if (cValg == 52) FlaskeRegistrering(3);
00044             else if (cValg != 48) FlaskeRegistrering(4);
00045         }
00046         else
00047         {
00048             //printf("ugyldig inntasting\n");
00049         }
00050      //}
00051         wait(0.03);
00052     }
00053 }
00054 
00055 void Beregn()
00056 {
00057     char *ptr_antall_type = &menu[66 * 3 + 28];
00058     char *ptr_kr_type = ptr_antall_type + 10;
00059     char *ptr_total;
00060     int iTotalFlasker = 0;
00061     float fTotalFlaskePris = 0.00;
00062     char buffer[15];
00063     int iKr_Offset = 66;
00064 
00065     for (int i = 0; i < TYPES; i++, ptr_antall_type += iKr_Offset, ptr_kr_type += iKr_Offset)
00066     {
00067         iTotalFlasker += aiFlaskeType[i];
00068         fTotalFlaskePris += aiFlaskeType[i] * aiFlaskeTypePrice[i];
00069 
00070         if (i <= 3)
00071         {
00072             //Flaske antall
00073             sprintf(buffer, "%2d", aiFlaskeType[i]);
00074             memcpy(ptr_antall_type, buffer, 2);
00075             //Flaske pris
00076             sprintf(buffer, "%6.2f", (aiFlaskeType[i] * aiFlaskeTypePrice[i]));
00077             memcpy(ptr_kr_type, buffer, 6);
00078 
00079         }
00080         else
00081         {
00082             sprintf(buffer, "%2d", aiFlaskeType[i]);
00083             memcpy(ptr_antall_type, buffer, 2);
00084         }
00085     }
00086 
00087     ptr_total = ptr_antall_type + (46);
00088 
00089     //Flaske totoal antall
00090     sprintf(buffer, "%3d", iTotalFlasker);
00091     memcpy(ptr_total, buffer, 3);
00092     ptr_total += 19;
00093     sprintf(buffer, "%6.2f", fTotalFlaskePris);
00094     memcpy(ptr_total, buffer, 6);
00095 }
00096 
00097 void FlaskeRegistrering(int FlaskeType)
00098 {
00099     aiFlaskeType[FlaskeType]++;
00100     UpdateTerminal();
00101 }
00102 
00103 void UpdateTerminal()
00104 {
00105     Beregn();
00106     utskriftskjermV2(); 
00107 }
00108 
00109 void utskriftskjermV2()
00110 {
00111     char *ptr_menu = menu;
00112     term.cls();
00113     term.locate(MENUPOSX, MENUPOSY);
00114     term.foreground(0xFF0000);
00115 
00116     for (int i = 1; i <= MENULINES; i++)
00117     {
00118         for (int j = 1; j <= MENUWIDTH; j++, ptr_menu++)
00119         {
00120             term.printf("%c", *ptr_menu);
00121 
00122         }
00123         term.locate(MENUPOSX, i + MENUPOSY);
00124         //term.printf("\n");
00125     }
00126     //term.printf("\n");
00127 }