Σκοπός της εργασίας είναι η σχεδίαση και η υλοποίηση μιας βιβλιοθήκης γραφικών, η οποία θα παρέχει ρουτίνες για την ανάπτυξη γραφικών διεπαφών χρήστη, που προορίζονται για ενσωματωμένα συστήματα και κυρίως για ιατρικές συσκευές. Η βιβλιοθήκη υλοποιήθηκε σε γλώσσα προγραμματισμού υψηλού επιπέδου και δεν προϋποθέτει κάποιο λειτουργικό σύστημα.
Για την ανάπτυξή της απαιτήθηκαν αρκετά στάδια. Κατ’ αρχάς, ξεκινήσαμε από την ανάλυση των απαιτήσεων και προδιαγραφών της βιβλιοθήκης. Από τη διαδικασία αυτή, προέκυψαν οι λειτουργικότητες που θα παρέχει, καθώς και οι περιορισμοί που σχετίζονται με αυτές. Στη συνέχεια, έγινε ο σχεδιασμός της αρχιτεκτονικής κατά τον οποίο καθορίστηκαν τα ιεραρχικά επίπεδα της βιβλιοθήκης, σύμφωνα με τις προδιαγραφές που εξήχθησαν. Επιπλέον, σε αυτή τη φάση της ανάπτυξης περιγράψαμε τον τρόπο λειτουργίας των επιπέδων αυτών και των επιμέρους τμημάτων τους, όπως επίσης και την μεταξύ τους αλληλεπίδραση. Στο επόμενο στάδιο επιλέχθηκαν οι κατάλληλες δομές και αλγόριθμοι για κάθε λειτουργία και έπειτα υλοποιήθηκαν σε γλώσσα C. Τέλος, πραγματοποιήσαμε τον έλεγχο της υλοποίησης, χρησιμοποιώντας μια αναπτυξιακή πλακέτα, η οποία διαθέτει επεξεργαστή ARM, και τα κατάλληλα εργαλεία προγραμματισμού.
The purpose of this thesis is the design and implementation of a graphics library, which provides routines for developing graphical user interfaces for embedded systems, and mainly for medical devices. The library was implemented in a high-level programming language and does not require any operating system.
Several stages were required for its development. Firstly, we started by analysing library's requirements and specifications. From this process emerged the functionalities that it will provide and also the restrictions that are associated with them. Then we proceeded to the architectural design in which the hierarchical levels of the library were defined, according to the specifications. Moreover, at this stage of development we described how these levels and their individual parts are functioning, as well as the interaction between them. In the next stage the appropriate data structures and algorithms were chosen for each functionality and then they were implemented in the C programming language. Finally, we tested the implementation using a development board, with an ARM processor, and the appropriate programming tools.