====== Covid HW 09 - Project ====== The final application of the CPL course is a project composed from: * a PC application (chw09.c and all related files - makefile, serial.c, whatever is needed + please add the test dataset you are using: main.txt, splash.txt and intro.txt or your version) * a Nucleo device (main.c only) ===== Nucleo device ===== The Nucleo device is composed from NUCLEO F4xxRE 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 appropriately. The description of the command interface implemented in NUCLEO is ([[courses:be5b99cpl:labs:lab10]]. ===== PC application ===== The application has to be able to send the device a command and accept responses. The basic functionality (not enough for creditation - [[courses:be5b99cpl:hw:hw01]]): * Send and receive command *IDN? * The application is able to send basic commands entered on request selected from the app menu ([[courses:be5b99cpl:labs:lab10]]). * The app is capable to open a text file and send the commands stored in the file to the device. The Full functionality ( [[courses:be5b99cpl:labs:lab12]] ): * The application uses three threads: User interaction ([[courses:be5b99cpl:hw:hw01]]), file handling ([[courses:be5b99cpl:labs:lab09]]) and communication thread . * The app is capable to process asynchronous data sent by joystick and execute different parts of the command file. Please note: These parameters of the program will be evaluated: * the Nucleo sends the asynchronous data based on the joystick events * the Nucleo is capable to process all the commands described in the Lab10 page * 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. * correct the command files provoded as example so all the texts will be displayed properly, e.g. no text behind the corners, fill the missing part of the definition, correct for missing arguments. * the PC application and its file handling thread 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. * the final homework is presented before the end of the term. **The test data set to be used:** * The main control file: {{courses:be5b99cpl:labs:main.txt|}} * The first include: {{courses:be5b99cpl:labs:intro.txt|}} * The second include: {{courses:be5b99cpl:labs:splash.txt|}}