Warning
This page is located in archive. Go to the latest version of this course pages.

HW 06 - A complex multi-threaded application with communication Workstation/Nucleo

The final application is a project composed from:

  • a PC application
  • a Nucleo device

The specification for the components is as follows:

Nucleo device

The Nucleo device is composed from NUCLEO F401RE and Adafruit 802 shield. The embedded software allows for standardized communication over RS232 which is part of the StLink debugger. The communication is based on text commands which are sent to the device and the device responses appropriatelly. The embedded code can be based on example project provided in Lab08.

The description of the command interface is lab10.

PC application

The PC application is based on HW01. The application has to be able to send the device a command and accept responses.

The basic functionality (not enough for creditation - hw01):

  • Send and receive command *IDN?
  • Read the state of the User Button or Joystick
  • Control the state of the User LED

The full functionality ( lab09 ):

  • The application has at least two threads: main thread and communication thread.
  • The application is able to send basic commands entered on request.
  • The app is capable to open a text file and send the commands stored in the file to the device.

The finest functionality ( lab12 ):

  • The app is capable to process asynchronous data sent by joystick and execute different parts of the command file.

These parameters of the program will be evaluated:

  • 1 point - the Nucleo sends the asynchronous data based on the joystick events
  • 4 points - the Nucleo is capable to process all the commands described in the Lab10 page
  • 1 point - the PC application is capable to send “DRAW:TEXT 64,80,Nucleo RULEZ!,1” commands with space and Nucleo is capable to show the correct strings on the display.
  • 1 point - explain the functionality of the LED
  • 2 points - correct the command files so all the texts will be displayed properly, e.g. no text behind the corners, fill the missing parts of the definition, correct for missing arguments.
  • 6 points - the PC application is capable to process all the directives properly - demonstrate the #wait_for_joystick:5000:JOY_NONE: and #wait_for_joystick without parameters (mainly the wait time), demonstrate #if and #else and #goto and #exit.
  • 5 points - the final homework is presented before the end of the term.
courses/be5b99cpl/hw/hw06.txt · Last modified: 2018/10/04 15:47 (external edit)