Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: CANInterface mbed
Fork of ecu_reader by
Diff: main.cpp
- Revision:
- 6:c91e372617e3
- Parent:
- 3:05bb8f0bd7a4
- Child:
- 7:61b712aa2771
--- a/main.cpp Tue Aug 28 13:16:46 2012 +0000
+++ b/main.cpp Tue Jul 23 13:32:24 2013 +0000
@@ -38,11 +38,15 @@
Serial pc(USBTX, USBRX);
+
ecu_reader obdii(CANSPEED_500); //Create object and set CAN speed
+void can_demo(void);
void gps_demo(void);
void sd_demo(void);
+void home(void); // Function to set the screen on a home position
-int main() {
+int main()
+{
pc.baud(115200);
char buffer[20];
@@ -53,36 +57,35 @@
left.mode(PullUp);
up.mode(PullUp);
- printf("ECU Reader \n");
+ // Display splash screen
+ printf("Vodafone UBI Prototype \n");
lcd.locate(0,0); // Set LCD cursor position
- lcd.printf("CAN-Bus demo");
-
+ lcd.printf("Voda UBI Prototype");
lcd.locate(0,1);
- lcd.printf("www.skpang.co.uk");
-
- pc.printf("\n\rCAN-bus demo...");
-
+ lcd.printf("www.vodafone.com");
+ // Wait and clear screen
wait(3);
lcd.cls();
- lcd.printf("Use joystick");
- lcd.locate(0,1);
- lcd.printf("U-CAN:D-GPS:L-SD");
-
- pc.printf("\nU-CAN:D-GPS:L-SD");
+ // Call up the home menu
+ home();
+}
+
- while(1) // Wait until option is selected by the joystick
- {
-
- if(down == 0) gps_demo();
- if(left == 0) sd_demo();
-
- if(up == 0) break;
-
- }
+void can_demo(void)
+{
+ char buffer[20];
lcd.cls();
+ pc.printf("\nVodafone CAN selelected:");
+
+ lcd.locate(0,0); // Set LCD cursor position
+ lcd.printf("Voda Car Connect");
+ lcd.locate(0,1);
+ lcd.printf("CAN bus selected");
- while(1) { // Main CAN loop
+ while(1)
+ { // Main CAN loop
+ if(click == 0) home();
led2 = 1;
wait(0.1);
led2 = 0;
@@ -114,35 +117,69 @@
}
}
+
}
+
+
+void home(void)
+{
+ pc.printf("\nVodafone Home Menu");
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Home - use joystick");
+ lcd.locate(0,1);
+ lcd.printf("to select option...");
+ wait(2);
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Use joystick");
+ lcd.locate(0,1);
+ lcd.printf("U-CAN:D-GPS:L-SD:P-Ho");
+ pc.printf("\nUse the joystick to select an option - hold down the joystick to get back to home");
+ pc.printf("\nUp = CAN buss demo:Down = GPS demo:Left = SD demo: Press = Home");
+
+ while(1) // Wait until option is selected by the joystick
+ {
+
+ if(down == 0) gps_demo();
+ if(left == 0) sd_demo();
+ if(up == 0) can_demo();
+ }
+
+}
+
+
void gps_demo(void)
{
+
lcd.cls();
lcd.printf("GPS demo");
lcd.locate(0,1);
lcd.printf("Waiting for lock");
-
- wait(3);
- lcd.cls();
-
+ pc.printf("\nVodafone Ublox GPS initiated");
+ pc.printf("\nGPS Sampling starting....\n");
+
while(1)
{
- if(gps.sample()) {
- lcd.cls();
+ if(click == 0) home();
+ if(gps.sample())
+ {
+ lcd.cls();
lcd.printf("Long:%f", gps.longitude);
- lcd.locate(0,1);
+ lcd.locate(0,1);
lcd.printf("Lat:%f", gps.latitude);
- pc.printf("I'm at %f, %f\n", gps.longitude, gps.latitude);
- } else {
- pc.printf("Oh Dear! No lock :(\n");
- lcd.cls();
- lcd.printf("Waiting for lock");
-
- }
+ pc.printf("I'm at Latitude: %f, Longitude: %f\n", gps.latitude, gps.longitude);
+ }
+ else
+ {
+ pc.printf("Oh Dear! No lock :(\n");
+ lcd.cls();
+ lcd.printf("Waiting for lock");
+ }
}
-
-}
+
+}
void sd_demo(void)
{
@@ -166,6 +203,7 @@
while(1)
{
+ if(click == 0) home();
led2 = 1;
wait(0.1);
led2 = 0;
