SEP400 - Assignment 2: Seismic Data Acquisition Unit

Due: Sunday, April 13, 2025

NOTE: This assignment is to be done in groups of two or three.

Business Case (Marketing, Project Manager, Senior Executives)

The release of energy associated with earthquakes generates seismic waves that propagate through the Earth and along the Earth's surface across large distances. Most earthquakes are the result of plate tectonic processes. The geological monitoring of the Earth's surface provides guidance for determining the status and trends of geological activity, and to further the understanding of how geologic processes impact our ecosystem.

A transducer has been purchased by our company, which converts seismic waves into streams of binary data. This data has to reach our data centers for analysis. We need a data acquisition unit that will collect data from our transducer and transmit these data over the network to data centers. In doing so, our data acquisition unit must protect against rogue data centers which might attempt to steal the data or disrupt network communications.

The purpose of this project is therefore to write software for the data acquisition unit given the transducer and data centers.

Requirements (Marketing, Project Manager, Project Lead)

Design (Project Lead, Senior Engineers)

The Transducer: The Seismic Data Acquisition Unit: The Data Center:

Implementation (Junior and Senior Engineers)

The Transducer: The Seismic Data Acquisition Unit:
NOTE: The focus of this project is the seismic data acquisition unit. This software you will have to write from scratch. Code and Makefiles for the transducer and data centers have been given to you, as well as start and stop batch files. The Data Center:

Testing and Rework (Junior and Senior Engineers, Product Support)

Questions

  1. Is it necessary to synchronize the transducer and the data center acquisition unit with both semaphores as well as a status byte?

  2. How big is the shared memory in bytes?

  3. When writing operating systems code, do you prefer to use object oriented programming with classes or do you prefer using C++ as an extended C with global variables inside the CPP file? Why?

  4. For this project, what are the advantages and disadvantages of using datagrams for our network communications?

  5. How would you resolve a situation where a valid client ended up on the rogue list?

  6. Should the data passing between the data acquisition unit and the data centers be encrypted? Why?

Timeline

Days 1-7: Establish communications between the data acquisition unit and the transducer.

Days 8-14: Establish communications between the data acquisition unit and the data centers.

Days 15-21: Test and Rework. Answer questions. Submit assignment.

Marking Rubric

Assignment 2 is worth 15% of your final grade and as such is marked out of 15 as follows:

Does not meet expectationsSatisfactoryGoodExceeds Expectations
Data Acquistion Unit/ Transducer: Communications
(4 marks)
Does not meet requirementsMeets the most important requirementsMeets all requirements with minor errorsMeets all requirements with no errors
Data Acquistion Unit/ Data Center: Communications
(4 marks)
Does not meet requirementsMeets the most important requirementsMeets all requirements with minor errorsMeets all requirements with no errors
Data Acquistion Unit/ Data Center: Security
(4 marks)
Does not meet requirementsMeets the most important requirementsMeets all requirements with minor errorsMeets all requirements with no errors
Documentation
(1 marks)
Does not contain documentationContains header documentation for either all files or for all functions within each file Contains header documentation for all files and for most functions within each fileContains header documentation for all files and for all functions within each file. Documents unclear code.
Questions
(2 marks)
Answers no question correctlyAnswers some questions correctly Answers most questions correctlyAnswers all Questions correctly

Submission

Please email all source code and answers to questions to: miguel.watler@senecapolytechnic.ca

NB: My last name is Watler, not Walter.

Your questions can be submitted in a separate document or embedded within your source code.

Late Policy

You will be docked 10% if your assignment is submitted 1-2 days late.
You will be docked 20% if your assignment is submitted 3-4 days late.
You will be docked 30% if your assignment is submitted 5-6 days late.
You will be docked 40% if your assignment is submitted 7-8 days late.
You will be docked 50% if your assignment is submitted over 8 days late.