(They have also provided you with an SVG version of the engineering design which can be enlarged in most browsers. It is named design.svg.)
zoomStack
and displayTransform
to protected
so that
you have access to them in the DynamicCartographyPanel
class.
You should download the jar
file to
your downloads
directory for this course. Do not
download it directly into your Eclipse workspace or
folders/directories.
After downloading it, right-click on the appropriate project in
Eclipse, pull down to [Build Path] and over to [Configure build
path...]. Then, select the [Libraries] tab, click on "Classpath",
click on [Add External JARs...], and navigate to
the .jar
file.
The classes are in the package com.fazecast.jSerialComm
.
graph
package, but you are not required to do so.
You should perform integration testing on the components that you write for reading from a GPS receiver. Nearby has provided you with the following classes for this purpose.
You must perform system testing on all of the components you write. Nearby has provided you with the following classes that you can use for this purpose.
They have also provide you with a GPS simulator and data file that you can use for both integration and system testing.
To use the simulator, replace the code in the "app" that gets the
appropriate serial port and gets its InputStream
with
the following:
GPSSimulator gps = new GPSSimulator("rockingham.gps"); InputStream is = gps.getInputStream();
.zip
file named pa6.zip
that
contains all of the code necessary to
run PA6Driver.java
and test you code (packaged
appropriately). It must not contain any data files. There is
no limit on the number of submissions and no penalty for excessive
submissions.
You must submit (to the PA6_Screenshot assignment on Gradescope)
a .pdf
file that contains a screenshot of your
solution while it is displaying a GPS location.
The Gradescope autograder will assign a maximum grade of 25 (based solely on style). Points will then be awarded manually based on the criteria discussed in the previous paragraph.
SerialPort[] ports = SerialPort.getCommPorts(); for (SerialPort port:ports) { String description = port.getPortDescription(); String path = port.getSystemPortPath(); System.out.println(description + "\t" + path); }
You can then write some code that will automatically find the path (which may change) based on the description (which won't change).
You can also list your devices both before and after you insert
the GPS receiver and look for the differences. In MS-Windows this
can be done by opening the [Device Manager] and expanding the
entry for [Ports (COM & LPT)]. In Linux you can do this by
listing the contents of /dev/
.
InputStream
to read from using the jSerialComm
library as follows:
SerialPort gps = SerialPort.getCommPort(gpsPath); gps.openPort(); gps.setComPortTimeouts(SerialPort.TIMEOUT_READ_SEMI_BLOCKING, 0, 0); InputStream is = gps.getInputStream();
ttyACMO
:
sudo chmod a+rw /dev/ttyACM0
This should not be a problem under MS-Windows if you wait until after the install process completes when you insert the GPS receiver.
Void
.
Methods that return such a template parameter must be declared
to return Void
and must actually return null
.
Copyright 2025