Included Files: /client:
- client.cpp
- consts_and_types.h
- draw_route.cpp
- draw_route.h
- lcd_image.cpp
- lcd_image.h
- map_drawing.h
- map_drawing.cpp
- serial_handling.cpp
- serial_handling.h
- makefile
/server:
-
digraph.cpp
-
digraph.h
-
dijkstra.cpp
-
dijkstra.h
-
edmonton-roads-2.0.1.txt
-
heap.h
-
serialport.cpp
-
serialport.h
-
server.cpp
-
wdigraph.h
-
makefile
-
README
-
tests (folder)
Arduino Wiring Instructions: Mount the TFT display on the Arduino just like with Assignment 1
Joystick (same as with assignment 1) VRx <--> A8 VRy <--> A9 SW <--> Digital Pin 53 GND <--> GND +5V <--> 5V
Two pushbuttons for zoom. They are initialized in the code with internal pullup resistors. So for each, one side is connected to GND and the other to a digital pin.
Zoom Out Button <--> Digital Pin 47 Zoom In Button <--> Digital Pin 45
Running Instructions:
- Navigate into "client" directory
- run <1> <1>
- run
- Navigate into "server" directory
- run
- run <./server>
Program Description: A server and client is implemented. The arduino client will allow users to select two points on a map of edmonton using the tft display and joystick controls along side with 2 buttons for zoom in/out. The arduino will send a request to the desktop client which will run a dijkstra algorithm to find the shortest path. The two will then use a finite state machine communication program to exchange the waypoints of the shortest path and allow the arduino to print the shortest path on the map.