Course M402 Developing Qt Based Communication and Control Applications for Interacting With and Controlling PIC based Embedded Systems
Duration: 5 Days
Intended Audience
This course is aimed at Programmers who need a rapid and intensive introduction to application development using C++ and the Qt framework where the applications interact with and control embedded PIC based applications
Synopsis - Course Objectives
By the end of the course student should know and understand
- The architecture and design of the Qt framework
- The syntax and structure of the C++ programming language
- Making use of inheritance, polymorphism, composition and aggregation in the design and implementation of C++ applications
- Be able to create Qt Interfaces for interacting with and controlling embedded systems
- Know how to implement applications using RS232, USB and TCP/IP to interact with the embedded target platform.
- Various Microchip target platforms with pre-built applications will be used.
- The course can be tailored to focus on particular kinds of applications and particular communications systems
Course Outline
- Introduction to C++
- Development and evolution of C# and .NET
- Overview of Object Oriented concepts
- Overview of .NET Common Language Infrastructure (CLI), .NET Managed Code Philosophy, CIL (Common Intermediate Language) and metadata
- C++ - Intensive Introducion
- Data types and control constructs
- Implicit vs. explicit variables
- Value types vs. reference types
- Methods - Defining them and calling them
- Specifying the Main method
- Mechanisms for passing arguments and returning values
- Scope and lifetime of variables
- Exceptions and exception handling
- C++ Classes
- Defining a Class
- Realising attributes with methods and properties
- Constructors and initialisation
- Method and constructor overloading
- Inheritance and Polymorphism
- Class instance - Object
- Allocating memory with new
- Passing initialisation values to constructors
- Value allocation vs. reference allocation
- Boxing and unboxing
- Accessing properties and invoking methods
- Working with the Standard Template Library and IOStreams
- Namespaces - purpose, usage and syntax
- I/O using the Console and stream classes
- Introduction to C++ Templates
- Standard and Generic collection classes - an overview
- Class Relationships, Collections of Classes and Interfaces
- Aggregation and Composition
- References and how to manipulate them
- Physical equivalence vs. logical equivalence
- Deep copying vs. shallow copying
- Inheritance and Polymorphism
- Collection Library Classes
- Generics
- Virtual Methods and Interfaces
- Specifying an interface
- Implemeting an interface
- Interface Polymorphism
- Synergy between collection classes, generics and interfaces
- Qt5 Application Development
- Architecture of the Qt5 Framework
- SIGNALs SLOTs and connections
- Dialogs and Widgets
- QMainWindow - menus, toolbars and the status bar
- Subclassing Widgets
- Layout Design and Management
- Stacked layouts
- Splitters
- Scrolling areas
- Dock windows
- Multiple Document Interface applications
- Event Processing and Interactivity
- Event handlers
- Event filters
- Drag and drop
- Layout Design and Management
- Stacked layouts
- Splitters
- Scrolling areas
- Dock windows
- Multiple Document Interface applications
- Graphics
- QPainter and 2D graphics
- Overview of OpenGl and 3D graphics
- Basics of data plotting and visualisation
- Programming Communications with a PIC Target Board
- Serial communication over RS232
- HID and CDC communication over USB
- Sockets based communication over TCP/IP