LabVIEW to CCS Link. Ζυγούρης Θ. Ευάγγελος Καλαντζόπουλος Γ. Αθανάσιος Βασσάλος Ε. Ευάγγελος. Εσωτερική Αναφορά

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "LabVIEW to CCS Link. Ζυγούρης Θ. Ευάγγελος Καλαντζόπουλος Γ. Αθανάσιος Βασσάλος Ε. Ευάγγελος. Εσωτερική Αναφορά"

Transcript

1 Ζυγούρης Θ. Ευάγγελος Καλαντζόπουλος Γ. Αθανάσιος Βασσάλος Ε. Ευάγγελος LabVIEW to CCS Link Εσωτερική Αναφορά Εργαστήριο Ηλεκτρονικής Τοµέας Ηλεκτρονικής και Υπολογιστών Τµήµα Φυσικής Πανεπιστήµιο Πατρών Πάτρα 2007

2

3 LabVIEW to CCS Link Περιεχόµενα i 1. Εισαγωγή Link for Code Composer Studio Development Tools Test Integration Toolkit for TI DSPs Τι είναι το LabVIEW to CCS Link; Περιγραφή των subvis του LabVIEW to CCS Link Ρύθµιση του CCS CCS_Setup_Open.vi CCS_Setup_Close.vi CCS_Setup_Clear.vi CCS_Setup_Add_Board.vi CCS_Setup_Rename_Board.vi CCS_Setup_Remove_Board.vi CCS_Setup_Rename_Processor.vi CCS_Setup_Boards_&_Processors.vi CCS_Setup_Save.vi Αυτοµατοποίηση του CCS CCS_Open.vi CCS_Close.vi CCS_Open_Project.vi CCS_Close_Project.vi CCS_Connect.vi CCS_Disconnect.vi CCS_Build_All.vi CCS_Build_Result.vi CCS_Download.vi CCS_Reset.vi CCS_Run.vi CCS_Restart.vi CCS_Halt.vi CCS_Is_DSP_Running.vi CCS_RTDX_Enable.vi CCS_RTDX_Disable.vi CCS_RTDX_Logfile_Configuration.vi Επικοινωνία µε το CCS RTDX_Channel_Disable.vi RTDX_Channel_Enable.vi RTDX_Channel_Status.vi RTDX_Read.vi RTDX_Write.vi MEM_Get_Address.vi MEM_Read.vi MEM_Write.vi Leds_Read_(DSK6713).vi Leds_Write_(DSK6713).vi

4 ii Περιεχόµενα Switshes_Read_(DSK6713).vi Χρησιµοποιώντας το LabVIEW to CCS Link Ρύθµιση του CCS Ρύθµιση του CCS για την χρησιµοποίηση µιας κάρτας Ρύθµιση του CCS για την χρησιµοποίηση πολλαπλών καρτών Αυτοµατοποίηση του CCS Αυτοµατοποίηση του CCS για τον έλεγχο ενός DSP Αυτοµατοποίηση του CCS για τον έλεγχο περισσότερων του ενός DSP Επικοινωνία µε το CCS Απευθείας προσπέλαση της µνήµης του DSP Χρήση της RTDX τεχνολογίας Εφαρµογές Γραφικός ισοσταθµιστής τριών περιοχών Γενικά για τους γραφικούς ισοσταθµιστές Προδιαγραφές Σχεδίαση και έλεγχος του γραφικού ισοσταθµιστή µε το MATLAB Υλοποίηση του γραφικού ισοσταθµιστή µε το CCS Υλοποίηση ενός VI για τον έλεγχο του γραφικού ισοσταθµιστή Αποτελέσµατα Συµπεράσµατα Εφαρµογή στην ψηφιακή επεξεργασία εικόνας Ανίχνευση ακµών Ευθύς και αντίστροφος διακριτός µετασχηµατισµός συνηµιτόνου Κωδικοποίηση και αποκωδικοποίηση σύµφωνα µε το πρότυπο JPEG Ισοστάθµιση Ιστογράµµατος Υλοποίηση ενός VI για τον έλεγχο της εφαρµογής Αποτελέσµατα Συµπεράσµατα Βιβλιογραφία

5 LabVIEW to CCS Link 1 1. Εισαγωγή Η συνεχής ανάπτυξη των DSPs οδήγησε µεγάλες εταιρείες όπως η The Mathworks και η National Instruments να εξοπλίσουν τα προϊόντα τους µε εργαλεία για την διασύνδεση µε αναπτυξιακές πλατφόρµες που περιέχουν επεξεργαστές ψηφιακού σήµατος (Digital Signal Processors DSPs). Επειδή η Texas Instruments κατέχει το µεγαλύτερο µέρος της παγκόσµιας αγοράς των DSPs η The Mathworks και η National Instruments (NI) έχουν δώσει ιδιαίτερη έµφαση στους DSPs της Texas Instruments (TI) και στο αναπτυξιακό περιβάλλον της Code Composer Studio (CCS). 1.1 Link for Code Composer Studio Development Tools Η The Mathworks στην προσπάθειά της να ακολουθήσει την ανάπτυξη των DSPs δηµιούργησε το Link for Code Composer Studio Development Tools, το οποίο επιτρέπει στο MATLAB και στο Simulink να συνδεθούν µε το αναπτυξιακό περιβάλλον Code Composer Studio (CCS) και µε τους DSPs της ΤΙ. Το Link for Code Composer Studio Development Tools είναι ένα σύνολο συναρτήσεων του MATLAB µε το οποίο δηµιουργείται µια αµφίδροµη σύνδεση µεταξύ του MATLAB και του CCS µέσω αυτή της σύνδεσης είναι εφικτός ο έλεγχος του CCS και κατά επέκταση του DSP, όπως φαίνεται στο Σχήµα 1. Χρησιµοποιώντας το παραπάνω σύνολο συναρτήσεων είναι δυνατή η µεταφορά δεδοµένων από την µνήµη ή τους καταχωρητές του DSP. Η µεταφορά δεδοµένων από την µνήµη του DSP στο MATLAB και αντίστροφα πραγµατοποιείται είτε µε απευθείας προσπέλαση της µνήµης του DSP είτε αξιοποιώντας την RTDX (Real-Time Data Exchange) τεχνολογία της ΤΙ. Το Link for Code Composer Studio Developments Tools v2.1 απαιτεί την ύπαρξη του CCS v3.1 ή µεταγενέστερη έκδοση και του MATLAB R2006b ή µεταγενέστερη έκδοση. MATLAB and Simulink Link for Code Composer Studio Code Composer Studio C2000 C5000 C6000 OMAP Σχήµα 1. Σύνδεση του MATLAB µε το CCS Για την δηµιουργία γραφικών περιβαλλόντων αλληλεπίδρασης µε τον χρήστη (Graphical User Interfaces GUIs) το MATLAB διαθέτει το GUIDE (GUI Development Environment), που παρέχει ένα σύνολο εργαλείων για την δηµιουργία ενός GUI. Αυτά τα εργαλεία απλοποιούν κατά πολύ την διαδικασία της σχεδίασης και προγραµµατισµού του GUI. Χρησιµοποιώντας το GUIDE σε συνδυασµό µε το Link for Code Composer Studio

6 2 1. Εισαγωγή Development Tools ο χρήστης µπορεί να δηµιουργήσει GUIs που θα ελέγχουν και θα επικοινωνούν µε εφαρµογές των DSPs της ΤΙ που έχουν υλοποιηθεί µε το CCS. 1.2 Test Integration Toolkit for TI DSPs Για να πραγµατοποιηθεί η διασύνδεση του LabVIEW µε το CCS η National Instrument (ΝΙ) διαθέτει ένα toolkit µε όνοµα DSP Test Integration Toolkit for TI DSP v2.0. Όταν εγκατασταθεί το παραπάνω toolkit το LabVIEW αποκτά ένα σύνολο από subvis µε τα οποία µπορεί να ελεγχθεί και να αυτοµατοποιηθεί το CCS προγραµµατιστικά καθώς και να µεταφέρονται δεδοµένα από το CCS στο LabVIEW και αντίστροφα είτε µε απευθείας ανάγνωση και εγγραφή της µνήµης του DSP είτε µε χρήση της RTDX τεχνολογίας που υποστηρίζουν οι DSPs της TI. Τα βασικά VIs που περιέχει το toolkit χωρίζονται σε δύο µεγάλες κατηγορίες : Αυτοµατοποίηση του CCS (CCS Automation VIs): Τα VIs που ανήκουν σε αυτή την κατηγορία χρησιµοποιούνται για τον έλεγχο του CSS.και κατά επέκταση του DSP. Επικοινωνία µε το CCS (CCS Communication VIs): Τα VIs αυτής της κατηγορίας χρησιµοποιούνται για την µεταφορά δεδοµένων από το DSP στο LabVIEW και αντίστροφά, είτε µε απευθείας προσπέλαση της µνήµης του DSP είτε χρησιµοποιώντας την RTDX τεχνολογία. Στον Πίνακα 1 παρουσιάζεται το εικονίδιο και το όνοµα κάθε VI του Test Integration Toolkit for TI DSPs σύµφωνα µε την κατηγορία που ανήκει. Αυτοµατοποίηση του CCS Επικοινωνία µε το CCS Εικ. Ονοµασία Εικ. Ονοµασία CCS Open Project.vi CCS Build.vi CCS Download Code.vi CCS Run.vi CCS Halt.vi CCS Close Project.vi CCS Window Visibility.vi CCS Reset.vi CCS RTDX Read.vi CCS RTDX Write.vi CCS RTDX Enable.vi CCS RTDX Enable Channel.vi CCS RTDX Disable.vi CCS RTDX Disable Channel.vi CCS Memory Read.vi CCS Memory Write.vi CCS Symbol to Memory Address.vi Πίνακας 1. Τα VIs του Test Integration Toolkit for TI DSPs της ΝΙ Το toolkit της NI απαιτεί την ύπαρξη του LabVIEW 7.0 ή µεταγενέστερη έκδοση και του Code Composer Studio v2.2 ή µεταγενέστερη έκδοση. Το toolkit της ΝΙ δεν υποστηρίζει την εγγραφή και ανάγνωση αριθµών και πινάκων κινητής υποδιαστολής µε απευθείας

7 LabVIEW to CCS Link 3 προσπέλαση της µνήµης του DSP. εν υποστηρίζει την εγγραφή και ανάγνωση µη προσηµασµένων ακέραιων είτε µε απευθείας προσπέλαση της µνήµης του DSP είτε µε την χρήση της RTDX τεχνολογίας. Το toolkit της NI δεν υποστηρίζει τις νέες δυνατότητες του CCS v3.1 όπως η δυναµική σύνδεση και αποσύνδεση της κάρτας µε αποτέλεσµα να µην µπορεί να ελεγχθεί αποτελεσµατικά το CCS µέσω του LabVIEW. 1.3 Τι είναι το LabVIEW to CCS Link; Ακολουθώντας την φιλοσοφία του Test Integration Toolkit for TI DSPs της National Instrument και µε σκοπό να καλύψουµε τις αδυναµίες του, δηµιουργήσαµε από την αρχή ένα νέο toolkit που το ονοµάσαµε LabVIEW to CCS Link. Το νέο toolkit έχει την δυνατότητα να ελέγχει πλήρως το Code Composer Studio v3.1 και να επικοινωνεί µε τους DSPs της Texas Instruments (TI). Στο Σχήµα 2 παρουσιάζεται η σύνδεση του LabVIEW µε το CCS χρησιµοποιώντας το LabVIEW to CCS Link Επιπρόσθετα παρέχει την δυνατότητα να ελεγχθεί το CCStudio Setup v3.1 ώστε να είναι δυνατό να οριστεί προγραµµατιστικά µέσω του LabVIEW το υλικό (hardware) µε το οποίο θα επικοινωνεί το CCS. Το LabVIEW to CCS Link υποστηρίζει την εγγραφή και ανάγνωση αριθµών και πινάκων όλων των τύπων (κινητής υποδιαστολής απλής ή διπλής ακρίβειας και ακέραιων µε ή χωρίς πρόσηµο των 1-, 2- ή 4- bytes) καθώς και γραµµατοσειρών (strings) µε απευθείας προσπέλαση της µνήµης του DSP. Υποστηρίζει την µεταφορά αριθµών και πινάκων (κινητής υποδιαστολής απλής ή διπλής ακρίβειας και ακέραιων µε ή χωρίς πρόσηµο των 1-, 2- ή 4-bytes) µε την RTDX τεχνολογία από και προς τον DSP.Το LabVIEW to CCS Link απαιτεί την ύπαρξη του LabVIEW 7.1 ή µεταγενέστερης έκδοσης και του Code Composer Studio v3.1 ή µεταγενέστερης έκδοσης. LabVIEW to CCS Link C2000 C5000 C6000 OMAP Σχήµα 2. Σύνδεση του LabVIEW µε το CCS Mε το LabVIEW to CCS Link είναι δυνατό να δηµιουργηθούν εύκολα και γρήγορα VIs που θα λειτουργούν ως γραφικά περιβάλλοντα αλληλεπίδρασης µε τον χρήστη (Graphical User Interfaces GUIs) για τον έλεγχο και την διαχείριση εφαρµογών µε DSPs. Το LabVIEW to CCS Link είναι ένα πολύ χρήσιµο εργαλείο τόσο για εκπαιδευτικούς σκοπούς όσο και για σχεδιαστές DSP συστηµάτων λόγο του µικρού χρόνου ανάπτυξης των GUIs που οφείλεται στον γραφικό προγραµµατισµό του LabVIEW αλλά και στις δυνατότητες του LabVIEW to CCS Link. Με τον συνδυασµό των δυνατοτήτων του LabVIEW και του toolkit ο χρήστης µπορεί να δηµιουργήσει GUIs για εφαρµογές µε DSPs, µε πολύ µεγάλες δυνατότητες τόσο για τον έλεγχο των εφαρµογών του όσο και για την περαιτέρω επεξεργασία των αποτελεσµάτων ή για την προεπεξεργασία των δεδοµένων.

8 4 2. Περιγραφή των subvis του LabVIEW to CCS Link 2. Περιγραφή των subvis του LabVIEW to CCS Link Τα subvis του LabVIEW to CCS Link χωρίζονται σε τρεις κατηγορίες σύµφωνα µε την χρησιµότητα τους: Ρύθµιση του CCS Αυτοµατοποίηση του CCS Επικοινωνία µε το CCS 2.1 Ρύθµιση του CCS Τα subvis που ανήκουν στην κατηγορία Ρύθµιση του CCS ελέγχουν το CCStudio Setup v3.1 ή µεταγενέστερη έκδοση ώστε να είναι δυνατό προγραµµατιστικά να οριστεί η κάρτα ή οι κάρτες που θα επικοινωνήσει το CCS. Με τον όρο κάρτα πέρα από τις αναπτυξιακές πλατφόρµες εννοούµε και τους εξοµοιωτές. Το CCS δεν υποστηρίζει ταυτόχρονα την ύπαρξη πέραν του ενός εξοµοιωτή, υποστηρίζει όµως την ταυτόχρονη ύπαρξη ενός εξοµοιωτή και µιας ή περισσότερες αναπτυξιακές πλατφόρµες. Τα subvis αυτής της κατηγορίας παρουσιάζονται στον Πίνακα 2. Εικ. Ονοµασία Εικ. Ονοµασία CCS_Setup_Open.vi CCS_Setup_Close.vi CCS_Setup_Clear.vi CCS_Setup_ Add_Board.vi CCS_Setup_Rename_ Board.vi CCS_Setup_Remove_ Board.vi CCS_Setup_Rename_ Processor.vi CCS_Setup_Boards_&_ Processors.vi CCS_Setup_Save.vi Πίνακας 2. Τα VIs της κατηγορίας Ρύθµιση του CCS CCS_Setup_Open.vi Το subvi CCS_Setup_Open.vi που φαίνεται στο Σχήµα 3 φορτώνει το CCStudio Setup και δηµιουργεί µια αναφορά στο CCStudio Setup. Visible error in CCSetup Out error out Σχήµα 3. Το CCS_Setup_Open.vi Η είσοδος Visible είναι Boolean τύπου και ελέγχει αν θα γίνει ορατό στο χρήστη το παράθυρο του CCStudio Setup (True). Η προκαθορισµένη τιµή της είναι True.

9 LabVIEW to CCS Link 5 Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Αν συµβεί κάποιο σφάλµα πριν την εκτέλεση του συγκεκριµένου VI δεν θα γίνει καµία ενέργεια από το VI και το περιεχόµενο της εισόδου error in θα περάσει στην έξοδο error out. Αυτό το VI θα λειτουργήσει φυσιολογικά µόνο αν δεν έχει προκύψει κάποιο σφάλµα νωρίτερα. Η προκαθορισµένη τιµή αυτής της εισόδου είναι η κατάσταση no error. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου. Η τιµή της είναι False ( ) αν δεν είχε προκύψει κάποιο σφάλµα πριν την εκτέλεση του VI ή True ( ) αν είχε προκύψει κάποιο σφάλµα νωρίτερα. Η προκαθορισµένη τιµή της είναι False. Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Αν η είσοδος status έχει τιµή True τότε η είσοδος code θα έχει µια µη µηδενική τιµή που θα αντιπροσωπεύει το συγκεκριµένο σφάλµα, διαφορετικά θα έχει την τιµή µηδέν. Η προκαθορισµένη τιµή της είναι µηδέν. Η είσοδος source είναι τύπου String και περιγράφει το Αν δεν έχει προκύψει κάποιο σφάλµα η τιµή της είναι ένα κενό String. Η προκαθορισµένη τιµή της είναι το κενό String. Η έξοδος CCSetup Out είναι µια αναφορά στο CCStudio Setup. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Αν η είσοδος error in δείχνει ότι είχε προκύψει κάποιο σφάλµα πριν από την εκτέλεση του VI τότε το περιεχόµενο της εξόδου error out θα είναι ίδιο µε το περιεχόµενο της εισόδου error in, διαφορετικά θα περιγράφει το σφάλµα που µπορεί να προέκυψε κατά την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου. Η τιµή της είναι False ( ) αν δεν έχει προκύψει κάποιο σφάλµα, διαφορετικά είναι True ( ). Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Αν η έξοδος status έχει τιµή True τότε η έξοδος code θα έχει µια µη µηδενική τιµή που θα αντιπροσωπεύει το συγκεκριµένο σφάλµα, διαφορετικά θα έχει την τιµή µηδέν. Η έξοδος source είναι τύπου String και περιγράφει το Αν δεν έχει προκύψει κάποιο σφάλµα η τιµή της είναι ένα κενό String CCS_Setup_Close.vi Το subvi CCS_Setup_Close.vi που φαίνεται στο Σχήµα 4 κλείνει το CCStudio Setup και την αναφορά σε αυτό που είχε δηµιουργήσει το CCS_Setup_Open.vi. CCSetup In error in error out Σχήµα 4. Το CCS_Setup_Close.vi Η είσοδος CCSetup In είναι µια αναφορά στο CCStudio Setup.

10 6 2. Περιγραφή των subvis του LabVIEW to CCS Link Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθ ανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδ ος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφα λµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το CCS_Setup_Clear.vi Το subvi CCS_Setup_Clear.vi που φαίνεται στο Σχήµα 5 σβήνει τις ρυθµίσεις που είχαν γίνει στο CCStudio Setup. CCSetup In error in CCSetup Out error out Σχήµα 5. Το CCS_Setup_Clear.vi Η είσοδος CCSetup In είναι µια αναφορά στο CCStudio Setup. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθ ανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCSetup Out είναι µια αναφορά στο CCStudio Setup. Η έξοδ ος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφα λµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το

11 LabVIEW to CCS Link CCS_Setup_Add_Board.vi Το subvi CCS_ Setup_Add_Board.vi που φαίνεται στο Σχήµα 6 προσθέτει στο CCStudio Setup την κάρτα της οποίας οι οδηγοί (αρχείο µε επέκταση.ccs) δηλώνονται στην είσοδο Driver Path. CCSetup In Driver Path Options error in CCSetup Out error out Σχήµα 6. Το CCS_Setup_Add_Board.vi Η είσοδος CCSetup In είναι µια αναφορά στο CCStudio Setup. Η είσοδος Driver Path είναι η πλήρης διαδροµή του αρχείου (µε επέκταση.ccs) των οδηγών για την κάρτα που θα προστεθεί. Τα αρχεία οδηγών για τις κάρτες που υποστηρίζει το Code Composer Studio v3.1 εφόσον έχει εγκατασταθεί στην προκαθορισµένη διαδροµή είναι C:\CCStudio_v3.1\drivers\import\*.ccs (όνοµα αρχείου). Η είσοδος Options είναι ένα ακέραιος των 32 bits µε συγκεκριµένες καταστάσεις που παρουσιάζονται στον Πίνακα 3. Τιµ ή Κατάσταση Περιγραφή 0 CLEAR_ORIGINAL Εντοπίζει αν υπάρχει ήδη η κάρτα που πρόκειται να προστεθεί ακόµα και µε άλλο όνοµα. Αν υπάρχει τότε την αντικαθιστά δίνοντας το προκαθορισµένο της όνοµα 1 NO_DUPLICATES Εντοπίζει αν υπάρχει ήδη η κάρτα που πρόκειται να προστεθεί σύµφωνα µε το όνοµα της. Αν υπάρχει τότε δεν προσθέτει την συγκεκριµένη κάρτα 2 REPLACE_DUPLICATES Εντοπίζει αν υπάρχει ήδη η κάρτα που πρόκειται να προστεθεί σύµφωνα µε το όνοµα της. Αν υπάρχει τότε την αντικαθιστά δίνοντας το προκαθορισµένο της όνοµα 3 RENAME_DUPLICATES Εντοπίζει αν υπάρχει ήδη η κάρτα που πρόκειται να προστεθεί σύµφωνα µε το όνοµα της. Αν υπάρχει τότε την προσθέτει δίνοντας της ένα διαφορετικό όνοµα. Πίνακας 3. Οι καταστάσεις της εισόδου Options Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCSetup Out είναι µια αναφορά στο CCStudio Setup. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι:

12 8 2. Περιγραφή των subvis του LabVIEW to CCS Link Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το CCS_Setup_Rename_Board.vi Το subvi CCS_Setup_Rename_Board.vi που φαίνεται στο Σχήµα 7 δίνει στην κάρτα που δείχνει η είσοδος Board το όνοµα που περιέχει η είσοδος New Name. Για να χρησιµοποιηθεί το CCS_Setup_Rename.vi θα πρέπει να έχει οριστεί τουλάχιστον µια κάρτα στo CCStudio Setup. CCSetup In Board New Name error in CCSetup Out error out Σχήµα 7. Το CCS_Setup_Rename_Board.vi Η είσοδος CCSetup In είναι µια αναφορά στο CCStudio Setup. Η είσοδος Board είναι ένα ακέραιος των 32 bits που δείχνει ποια κάρτα από αυτές που έχουν οριστεί στο CCStudio Setup θα µετονοµαστεί. Αν έχουν οριστεί N κάρτες τότε η είσοδος Board µπορεί να πάρει τιµές από 0 έως και Ν-1 διαφορετικά θα προκύψει κάποιο Η προκαθορισµένη τιµή της εισόδου Board είναι µηδέν. Η είσοδος New Name είναι τύπου String και καθορίζει το νέο όνοµα που θα πάρει η κάρτα. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCSetup Out είναι µια αναφορά στο CCStudio Setup. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το

13 LabVIEW to CCS Link CCS_Setup_Remove_Board.vi Το subvi CCS_Setup_Remove_Board.vi που φαίνεται στο Σχήµα 8 αποµακρύνει από τις τρέχουσες ρυθµίσεις του CCStudio Setup την κάρτα που δείχνει η είσοδος Board. Για να χρησιµοποιηθεί το CCS_Setup_Remove_Board.vi θα πρέπει να έχει οριστεί τουλάχιστον µια κάρτα στo CCStudio Setup. CCSetup In Board error in CCSetup Out error out Σχήµα 8. Το CCS_Setup_Remove_Board.vi Η είσοδος CCSetup In είναι µια αναφορά στο CCStudio Setup. Η είσοδος Board είναι ένα ακέραιος των 32 bits που δείχνει ποια κάρτα από αυτές που έχουν οριστεί στο CCStudio Setup θα αποµ ακρυνθεί. Αν έχουν οριστεί N κάρτες τότε η είσοδος Board µπορεί να πάρει τιµές από 0 έως και Ν-1 διαφορετικά θα προκύψ ει κάποιο Η προκαθορισµένη τιµή της εισόδου Board είναι µηδέν. Η είσο δος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCSetup Out είναι µια αναφορά στο CCStudio Setup. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το CCS_Setup_Rename_Processor.vi Το subvi CCS_Setup_Rename_Processor.vi που φαίνεται στο Σχήµα 9, δίνει στον επεξεργαστή που δηλώνουν οι είσοδοι Processor και Board το όνοµα που περιέχει η είσοδος ProcName. Η είσοδος Board καθορίζει την κάρτα που περιέχει τον συγκεκριµένο επεξεργαστή, ενώ η είσοδος Processor καθορίζει τον επεξεργαστή. Για να χρησιµοποιηθεί το CCS_Setup_Rename_ Processor.vi θα πρέπει να έχει οριστεί τουλάχιστον µια κάρτα στo CCStudio Setup.

14 10 2. Περιγραφή των subvis του LabVIEW to CCS Link ProcName CCSetup In Board Processor error in CCSetup Out error out Σχήµα 9. Το CCS_Setup_Rename_Processor.vi H είσοδος ProcName είναι τύπου String και περιέχει το όνοµα που θα πάρει ο επεξεργαστής Η είσοδος CCSetup In είναι µια αναφορά στο CCStudio Setup. Η είσοδος Board είναι ένα ακέραιος των 32 bits που δείχνει την κάρτα της οποίας θα µετονοµαστεί ο επεξεργαστής. Αν έχουν οριστεί N κάρτες στο CCStudio Setup τότε η είσοδος Board µπορεί να πάρει τιµές από 0 έως και Ν-1 διαφορετικά θα προκύψει κάποιο Η προκαθορισµένη τιµή της εισόδου Board είναι µηδέν. Η είσοδος Processor είναι ένας ακέραιος των 32 bits που δείχνει τον επεξεργαστή που θα µετονοµαστεί. Αν η κάρτα που περιέχει τον επεξεργαστή που θα µετονοµαστεί (που δηλώνεται από την είσοδο Board ) διαθέτει Μ επεξεργαστές τότε η είσοδος Processor µπορεί να πάρει τιµές από 0 έως και Μ-1, διαφορετικά θα προκύψει κάποιο Η προκαθορισµένη τιµή της εισόδου Processor είναι µηδέν. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCSetup Out είναι µια αναφορά στο CCStudio Setup. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το CCS_Setup_Boards_&_Processors.vi Το subvi CCS_Setup_Boards_&_Processors.vi που φαίνεται στο Σχήµα 10 επιστρέφει ένα πίνακα στην έξοδο Boards & Processors που δείχνει τις τρέχουσες ρυθµίσεις του CCStudio Setup.

15 LabVIEW to CCS Link 11 CCSetup In error in CCSetup Out Boards & Processors error out Σχήµα 10. Το CCS_Setup_Rename_Processor.vi Η είσοδος CCSetup In είναι µια αναφορά στο CCStudio Setup. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCSetup Out είναι µια αναφορά στο CCStudio Setup. Η έξοδος Boards & Processors είναι ένας δύο διαστάσεων πίνακας µε στοιχεία τύπου String που δείχνει τις τρέχουσες ρυθµίσεις στο CCStudio Setup. Το πρώτο στοιχείο κάθε γραµµής του παραπάνω πίνακα περιέχει το όνοµα της κάρτας ενώ τα επόµενα στοιχεία κάθε γραµµής του πίνακα περιέχουν το όνοµα κάθε επεξεργαστή που περιέχει η συγκεκριµένη κάρτα. Για µια κάρτα µε όνοµα my_board που διαθέτει τρεις ε πεξεργαστές µε ονόµατα cpu1, cpu2 και cpu3, το πρώτο στοιχείο της γραµµής του πίνακα θα περιέχει το my_board, το δεύτερο στοιχείο θα περιέχει το cpu1, το τρίτο στοιχείο της γραµµής θα περιέχει το cpu2 και το τέταρτο στοιχείο θα περιέχει το cpu3. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το CCS_Setup_Save.vi Το subvi CCS_Setup_Save.vi που φαίνεται στο Σχήµα 11 αναλαµβάνει την αποθήκευση των ρυθµίσεων στο CCStudio Setup. CCSetup In error in CCSetup Out error out Σχήµα 11. Το CCS_Setup_Save.vi Η είσοδος CCSetup In είναι µια αναφορά στο CCStudio Setup.

16 12 2. Περιγραφή των subvis του LabVIEW to CCS Link Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCSetup Out είναι µια αναφορά στο CCStudio Setup. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το 2.2 Αυτοµατοποίηση του CCS Τα subvis που ανήκουν στην κατηγορία Αυτοµ ατοποίηση του CCS έχουν ως σκοπό τον έλεγχο του Code Composer Studio v3.1 ή µεταγενέστερη έκδοση και κατά επέκταση του DSP. Στον Πίνακα 4 παρουσιάζονται τα subvis αυτής της κατηγορίας. Εικ. Ονοµασία Εικ. Ονοµασία CCS_Open.vi CCS_Close.vi CCS_Open_ Project.vi CCS_Close_ Project.vi CCS_Connect.vi CCS_Disconnect.vi CCS_Build_All.vi CCS_Build_ Result.vi CCS_Reset.vi CCS_Run.vi CCS_Restart.vi CCS_Halt.vi CCS_Is_DSP_ Running.vi CCS_RTDX_Enable.vi CCS_RTDX_Disable.vi CCS_RTDX_Logfile_ Configuration.vi CCS_Download.vi Πίνακας 4. Τα VI s της κατηγορίας Αυτοµατοποίηση του CCS

17 LabVIEW to CCS Link CCS_Open.vi Το subvi CCS_Open.vi που φαίνεται στο Σχήµα 12 φορτώνει το CCS. CCS Visible error in CCS Out Is CCS Visible error out Σχήµα 12. Το CCS_Open.vi Η είσοδος CCS Visible είναι Boolean τύπου και ελέγχει αν θα γίνει ορατός ο Parallel Debug Manager (PDM) όταν το CCS έχει ρυθµιστεί ώστε να υποστηρίζει περισσότερες από µια κάρτες. Όταν το CCS έχει ρυθµιστεί να υποστηρίζει µόνο µια κάρτα τότε η είσοδος CCS Visible καθορίζει αν θα γίνει ορατό το Debug Window του CCS. Η προκαθορισµένη τιµή της είναι True. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Is CCS Visible είναι Boolean τύπου και δείχνει αν o Parallel Debug Manager είναι ορατός (εφόσον έχει οριστεί η ταυτόχρονη υποστήριξη περισσοτέρων από µ ια ς κάρτας) ή αν το Debug Window του CCS είναι ορατό (εφόσον έχει οριστεί η υποστήριξη µόνο µιας κάρτας). Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το CCS_Close.vi Το subvi CCS_Close.vi που φαίνεται στο Σχήµα 13 κλείνει το CCS και τις σχετικές αναφορές. CCS In error in error out Σχήµα 13. Το CCS_Close.vi

18 14 2. Περιγραφή των subvis του LabVIEW to CCS Link Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθ ανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το CCS_Open_Project.vi Το subvi CCS_Open_Project.vi που φαίνεται στο Σχήµα 14 ανοίγει το project που δηλώνει η είσοδος Project Path στο Debug Window του CCS για τον επεξεργαστή της κάρτας που δείχνει η είσοδος Boards & Processor. Project Path In CCS_Event_Notif_Out CCS In CCS Out Board & Processor error in error out Debug Window Visible Σχήµα 14. Το CCS_Open_Project.vi Η είσοδος Project Path In είναι τύπου String και δηλώνει την πλήρη διαδροµή του project (αρχείο µε επέκταση.pjt) που πρόκειται να φορτωθεί. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Board & Processors είναι µια οµάδα εισόδων που δείχνει τον επεξεργαστή και την κάρτα που θα χρησιµοποιηθεί για την υλοποίηση του project. Η είσοδος Board & Processor αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Processor είναι ένας µη προσηµασµένος ακέραιος των 8 bits που δηλώνει τον επεξεργαστή που θα χρησιµοποιηθεί. Η προκαθορισµένη τιµή της είναι µηδέν. Η είσοδος Board είναι ένας µη προσηµασµένος ακέραιος των 8bits που δηλώνει την κάρτα που θα χρησιµοποιηθεί. Η προκαθορισµένη τιµή της είναι µηδέν.

19 LabVIEW to CCS Link 15 Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η είσοδος Debug Window Visible είναι Boolean τύπου και ελέγχει αν θα γίνει ορατό το Debug Window του CCS για την συγκεκριµένη κάρτα και επεξεργαστή. Η προκαθορισµένη τιµή της είναι True. Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το CCS_Close_Project.vi Το subvi CCS_Close_Project.vi που φαίνεται στο Σχήµα 15 κλείνει το Project και διαγράφει τις πληροφορίες που σχετίζονται µε αυτό. CCS_Event_Notif_In CCS In error in CCS Out error out Σχήµα 15. Το CCS_Close_Project.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθ ανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

20 16 2. Περιγραφή των subvis του LabVIEW to CCS Link Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το CCS_Connect.vi Το subvi CCS_Connect.vi που φαίνεται στο Σχήµα 16 δίνει εντολή στο CCS να συνδεθεί µε την κάρτα. Στην πραγµατικότητα αξιοποιεί την δυνατότητα της δυναµικής σύνδεσης µε την κάρτα του CCS v3.1. εν έχει νόηµα να χρησιµοποιείται το CCS_Connect.vi όταν το CCS έχει ρυθµιστεί να χρησιµοποιήσει κάποιον από τους εξοµοιωτές, αφού σε αυτή την περίπτωση η δυναµική σύνδεση δεν υποστηρίζεται από το CCS. CCS In Timeout error in CCS Out Connection Status error out Σχήµα 16. Το CCS_Connect.vi Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσο δος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να επιτευχθεί η σύνδεση µε την κάρτα. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει επιτευχθεί η σύνδεση µε την κάρτα τότε δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος error in είναι µ ια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν τη ν εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είν αι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµ α. Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

21 LabVIEW to CCS Link 17 Η έξοδος Connection Status είναι ένας ακέραιος των 32 bits µε συγκεκριµένες καταστάσεις που παρουσιάζονται στον Πίνακα 5. Τιµή Κατάσταση Περιγραφή 0 CONNECTED Η κάρτα συνδέθηκε µε το CCS 1 CONNECTING Εκτελείται η διαδικασία σύνδεσης της κάρτας 2 DISCONNECTED Η κάρτα αποσυνδέθηκε από το CCS 3 DISCONNECTING Εκτελείται η διαδικασία αποσύνδεσης της κάρτας Πίνακας 5. Οι καταστάσεις της εισόδου Connection Status Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code Η έξοδος source είναι τύπου String και περιγράφει το είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του CCS_Disconnect.vi Το subvi CCS_Disconnect.vi που φαίνεται στο Σχήµα 17 δίνει εντολή στο CCS να αποσυνδέσει την κάρτα. Στην πραγµατικότητα αξιοποιεί την δυνατότητα της δυναµικής αποσύνδεσης της κάρτας που διαθέτει το CCS v3.1. εν έχει νόηµα να χρησιµοποιείται το CCS_Disconnect.vi όταν το CCS έχει ρυθµιστεί να χρησιµοποιήσει κάποιον από τους εξοµοιωτές, αφού σε αυτή την περίπτωση η δυναµική αποσύνδεση δεν υποστηρίζεται από το CCS. CCS In Timeout error in CCS Out Connection Status error out Σχήµα 17. Το CCS_Disconnect.vi Η είσοδ ος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να επιτευχθεί η αποσύνδεση της κάρτας. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει επιτευχθεί η αποσύνδεση τότε δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µ ε την κάρτα εξαρτώντα ι από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµ ένες πε ριπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµ ένη τιµή της εί ναι 10 sec (10000 msec). Η είσοδος error in είναι µ ια ο µάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν ν α προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

22 18 2. Περιγραφή των subvis του LabVIEW to CCS Link Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µ ε το CCS. Η έξοδος Connection Status είναι ένας ακέραιος των 32 bits µε συγκεκριµένες καταστάσεις που παρουσιάζονται στον Πίνακα 6. Τιµή Κατάσταση Περιγραφή 0 CONNECTED Η κάρτα συνδέθηκε µε το CCS 1 CONNECTING Εκτελείται η διαδικασία σύνδεσης της κάρτας 2 DISCONNECTED Η κάρτα αποσυνδέθηκε από το CCS 3 DISCONNECTING Εκτελείται η διαδικασία αποσύνδεσης της κάρτας Πίνακας 6. Οι καταστάσεις της εισόδου Connection Status Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το CCS_Build_All.vi Το subvi CCS_Build_All.vi που φαίνεται στο Σχήµα 18 δίνει εντολή να κτιστεί και να δηµιουργηθεί το εκτελέσιµο αρχείο (µε επέκταση.out) για το project και την κάρτα που περιγράφεται από τις πληροφορίες παρέχει η είσοδος CCS In. CCS In Timeout error in CCS Out error out Σχήµα 18. Το CCS_Close_Project.vi Η είσοδ ος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί το κτίσιµο του project. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί το κτίσιµο δηµιουργείται ένα Επ ειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 100 sec ( msec). Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι:

23 LabVIEW to CCS Link 19 Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code Η έξοδος source είναι τύπου String και περιγράφει το είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του CCS_Build_Result.vi Το subvi CCS_Build_Result.vi που φαίνεται στο Σχήµα 19 ελέγχει το αρχείο cc_buil d_debug.log για τυχόν λάθη, προειδοποιήσεις ή παρατηρήσεις που δηµιουργήθηκαν µ ετά το κτίσιµο του project. Το αρχείο cc_build_debug.log δηµιουργείται αυτόµ ατα από το CCS όταν ολοκληρώνεται η διαδικασία του κτισίµατος κάποιου project. Αν το CCS_Build_Result.vi εντοπίσει κάποιο λάθος ή προειδοποίηση ή παρατήρηση και εφόσον η είσοδος Ignore Errors From Build είναι False εξάγει στην έξοδο error out ένα σφάλµα που ενηµερώνει τα subvis που ακολουθούν. CCS In Ignore Errors From Build error in Errors Warnings Remarks CCS Out Build Result error out Σχήµα 19. Το CCS_Build_Result.vi Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Ignore Errors From Build είναι Boolean τύπου. Η προκαθορισµένη τιµή της είναι False. Αν η είσοδος Ignore Errors From Build είναι False και εντοπιστεί κάποια ανωµαλία (λάθος ή προειδοποίηση ή παρατήρηση) κατά το κτίσιµο του project τότε θα εξαχθεί ένα σφάλµα από την έξοδο error out που θα ενηµερώνει τα VIs που το ακολουθούν. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το

24 20 2. Περιγραφή των subvis του LabVIEW to CCS Link Η έξοδ ος Error είναι τύπου String και δείχνει τον αριθµό των λαθών που προέκυψαν κατά το κτίσιµο του project ανεξάρτητα από την τιµή τις εισόδου Ignore Errors From Build Η έξοδος Warnings είναι τύπου String και δείχνει τον αριθµό των προειδοποιήσεων που προέκυψαν κατά το κτίσιµο του project ανεξάρτητα από την τιµή τις εισόδου Ignore Errors From Build Η έξοδος Remarks είναι τύπου String και δείχνει τον αριθµό των προειδοποιήσεων που προέκυψαν κατά το κτίσιµο του project ανεξάρτητα από την τιµή τις εισόδου Ignore Errors From Build Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Build Result είναι τύπου String και δείχνει το αποτέλεσµα του κτισίµατος του project ανεξάρτητα από την τιµή τις εισόδου Ignore Errors From Build Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το CCS_Download.vi Το subvi CCS_Download.vi που φαίνεται στο Σχήµα 20 δίνει εντολή στο CCS να φορτώσει το εκτελέσιµο αρχείο (µε επέκταση.out) στον DSP. Θα πρέπει κατά την δηµιουργία του project στο CCS να έχει οριστεί, ως όνοµα του εκτελέσιµου αρχείου το ίδιο µε του project και ότι θα αποθηκευτεί στον φάκελο Debug (προκαθορισµένες ρυθµίσεις του CCS) διαφορετικά το CCS_Download.vi δεν θα είναι σε θέση να εντοπίσει το συγκεκριµένο αρχείο και θα προκύψει κάποιο CCS_Event_Notif_In CCS In Timeout error in CCS_Event_Notif_Out CCS Out error out Σχήµα 20. Το CCS_Download.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η µεταφορά του εκτελέσιµου αρχείου στον DSP. Στην

25 LabVIEW to CCS Link 21 περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η µεταφορά δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα πο υ µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το CCS_Reset.vi Τ ο subvi CCS_Reset.vi που φαίνεται στο Σχήµα 21 δίνει εντολή στον DSP, µέσω του C CS, να επανέλθει στην αρχική του κατάσταση (Reset). CCS_Event_Notif_In CCS In Timeout error in CCS_Event_Notif_Out CCS Out Σχήµα 21. Το CCS_Reset.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η επαναφορά του DSP στην αρχική του κατάσταση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η επαναφορά του DSP στην αρχική του κατάσταση δηµιουργείται ένα Επειδή

26 22 2. Περιγραφή των subvis του LabVIEW to CCS Link πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το CCS_Run.vi Το subvi CCS_Run.vi που φαίνεται στο Σχήµα 22 δίνει εντολή στον DSP, µέσω του CCS, να ξεκινήσει την εκτέλεση του προγράµµατος. CCS In Timeout error in CCS Out error out Σχήµα 22. Το CCS_Run.vi Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρ ι να ξεκινήσει η εκτέλεση του προγράµµατος από τον DSP Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ξεκινήσει η εκτέλεση του προγρά µµατος από τον DSP δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

27 LabVIEW to CCS Link 23 Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code ε ίναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το CCS_Restart.vi Το subvi CCS_Restart.vi που φαίνεται στο Σχήµα 23 µέσω του CCS επαναφέρει τον Program Counter του DSP στην αρχική του τιµή. CCS_Event_Notif_In CCS In Timeout error in CCS_Event_Notif_Out CCS Out error out Σχήµα 23. Το CCS_Restart.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµ α σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η επαναφορά του Program Counter στην αρχική του τιµή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η επαναφορά του Program Counter στην αρχική του τιµή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι:

28 24 2. Περιγραφή των subvis του LabVIEW to CCS Link Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το CCS_Halt.vi Το subvi CCS_Halt.vi που φαίνεται στο Σχήµα 24 δίνει εντολή στον DSP µέσω του CCS σταµατήσει την εκτέλεση του προγράµµατος. Στην περίπτωση που δοθεί εντολή από το CCS_Halt.vi στον DSP να σταµατήσει την εκτέλεση του προγράµµατος ενώ είναι σταµατηµένος η εντολή απλά αγνοείται χωρίς να προκύψει κάποιο CCS In Timeout error in CCS Out error out Σχήµα 24. Το CCS_Halt.vi Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσο δος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να σταµατήσει η εκτέλεση του προγράµµατος από τον DSP Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει σταµατήσει η εκτέλεση του προγράµµατος από τον DSP δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

29 LabVIEW to CCS Link 25 Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το CCS_Is_DSP_Running.vi Το subvi CCS_Is_DSP_Running.vi που φαίνεται στο Σχήµα 25 ελέγχει αν ο DSP εκτελεί κάποιο πρόγραµµα. CCS In error in CCS Out DSP_State Running error out Σχήµα 25. Το CCS_Is_DSP_Running.vi Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µ ε το CCS. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίε ς σχετικές µε το CCS. Η έξοδος DSP_State είναι ένας ακέραιος των 32 bits που δείχνει την κατάσταση του DSP. Η τιµή -1 σηµαίνει ότι o DSP βρίσκεται σε απροσδιόριστη κατάσταση ή έχει χαθεί η σύνδεση την κάρτας µε το CCS. Η τιµή 0 σηµαίνει ότι ο DSP έχει σταµατήσει την εκτέλεση κάποιου προγράµµατος και η τιµή 1 σηµαίνει ότι ο DSP εκτελεί κάποιο πρόγραµµα. Η έξοδος Is CCS Visible είναι Boolean τύπου και δείχνει αν ο DSP εκτελεί κάποιο πρόγραµµα (True). Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι:

30 26 2. Περιγραφή των subvis του LabVIEW to CCS Link Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το CCS_RTDX_Enable.vi Το subvi CCS_RTDX_Enable που φαίνεται στο Σχήµα 26 ενεργοποιεί και ρυθµίζει την RTDX τεχνολογία. CCS In RTDX Settings Timeout error in CCS Out error out Σχήµα 26. Το CCS_RTDX_Enable.vi Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος RTDX Settings είναι µια οµάδα εισόδων που περιέχει πληροφορίες για την ρύθµιση της RTDX τεχνολογίας. Η είσοδος RTDX Settings αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Mode είναι ένας ακέραιος των 32 bits µε συγκεκριµένες καταστάσεις, που δηλώνει την µέθοδο που θα ακολουθήσει η RTDX τεχνολογία. Η τιµή 0 σηµαίνει την χρήση της Non Continuous µεθόδου ενώ η τιµή 1 σηµαίνει την χρήση της Continuous µεθόδου. Η προκαθορισµένη τιµή της είναι µηδέν (Non Continuous). Η είσοδος Buffer Size είναι ένας ακέραιος των 32 bits, που δηλώνει τo µέγεθος σε bytes κάθε buffer που χρησιµοποιεί η RTDX τεχνολογία. Η προκαθορισµένη τιµή της είναι Η είσοδος Num of Buffers είναι ένας ακέραιος των 32 bits, που δηλώνει τoν αριθµό των buffers που χρησιµοποιεί η RTDX τεχνολογία. Η προκαθορισµένη τιµή της είναι 4. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ενεργοποιηθεί η RTDX τεχνολογία Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ενεργοποιηθεί η RTDX τεχνολογία δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµ α που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο

31 LabVIEW to CCS Link 27 Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το CCS_RTDX_Disable.vi Τ ο subvi CCS_RTDX_Disable.vi που φαίνεται στο Σχήµα 27 απενεργοποιεί την RTDX τεχνολογία. CCS In Timeout error in CCS Out error out Σχήµα 27. Το CCS_RTDX_Enable.vi Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να απενεργοποιηθεί η RTDX τεχνολογία Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει απενεργοποιηθεί η RTDX τεχνολογία δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι:

32 28 2. Περιγραφή των subvis του LabVIEW to CCS Link Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το CC S_RTDX_Logfile_Configuration.vi Το subvi CCS_RTDX_Logfile_Configuration.vi που φαίνεται στο Σχήµα 28 ρυθµίζει τις ιδιότητες του Logfile αρχείου (*µε επέκταση.rtd) που χρησιµοποιεί η RTDX τεχνολογία όταν επιλεχθεί η Non Continuous µέθοδος. CCS In Logfile Parameters Logfile Path error in CCS Out error out Σχήµα 28. Το CCS_RTDX_Enable.vi Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Logfile Parameters είναι µια οµάδα εισόδων που περιέχει πληροφορίες για την ρύθµιση των παραµέτρων του Logfile που θα χρησιµοποιηθεί από την RTDX τεχνολογία αν επιλεχθεί η Non Continuous µέθοδος. Η είσοδος Logfile Parameters αποτελείται από τα παρακάτω στοιχεία: Η είσοδος FileSize είναι ένας ακέραιος των 32 bits, που καθορίζει το µέγεθος του Logfile σε bytes. Η προκαθορισµένη τιµή της είναι bytes. Η είσοδος FileFullMode είναι ένας ακέραιος των 32 bits µε συγκεκριµένες καταστάσεις, που δηλώνει τον τρόπο που θα δηµιουργείται το Logfile αρχείο. Η τιµή 0 αντιστοιχεί στην µέθοδο Discard που είναι και η προκαθορισµένη. Η τιµή 1 αντιστοιχεί στην µέθοδο Circular. Η είσοδος FileOpenMode είναι ένας ακέραιος των 32 bits µε συγκεκριµένες καταστάσεις, που δηλώνει τον τρόπο που θα ανοίγει το Logfile αρχείο. Η τιµή 0 αντιστοιχεί στην µέθοδο RTDX_Read_Only. Η τιµή 1 αντιστοιχεί στην µέθοδο RTDX_Append και η τιµή 2 αντιστοιχεί στην µέθοδο RTDX_Over_ Write που είναι και η προκαθορισµένη τιµή. Η είσοδος Logfile Path που είναι τύπου String, καθορίζει την διαδροµή στην οποία θα δηµιουργηθεί το Logfile αρχείο. Η προκαθορισµένη τιµή της είναι C:\CCStudio_v3.1\cc\bin\logfile.rtd (προκαθορισµένες ρυθµίσεις του CCS εφόσον έχει εγκατασταθεί στην διαδροµή που προτείνεται κατά την εγκατάσταση). Η είσοδος error in είναι µια οµάδα (Cluste r) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείτ αι η είσ οδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σφάλµ α. Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµ ατος. Η είσοδος source είναι τύπου String και περιγράφει το

33 LabVIEW to CCS Link 29 Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το 2.3 Επικοινωνία µε το CCS Τα subvis που ανήκουν στην κατηγορία Επικοινωνία µε το CCS χρησιµοποιούντα για την ανταλλαγή δεδοµένων µεταξύ του LabVIEW και του CCS. Με τα subvis αυτής της κατηγορίας ο χρήστης µπορεί να δηµιουργήσει VIs που θα στέλνουν και θα λαµβάνουν δεδοµένα από τον DSP είτε µ ε απευθείας προσπέλαση της µνήµης του DSP είτε αξιοποιώντας την RTDX τεχνολογία. Τα subvis αυτή της κατηγορίας παρουσιάζονται στον Πίνακα 7. Εικ. Ονοµασία Εικ. Ονοµασία RTDX_Channel_ Disable.vi RTDX_Channel_ Enable.vi RTDX_Channel_ Status.vi RTDX_Read.vi RTDX_Write.vi MEM_Read.vi MEM_Write.vi Leds_Read_ (DSK6713).vi Leds_Write_ (DSK6713).vi Switches_Read_ (DSK6713).vi MEM_Get_ Address.vi Πίνακας 7. Τα subvis της κατηγορίας Επικοινωνία µε το CCS RTDX_Channel_Disable.vi Το subvi RTDX_Cha nnel_disable.vi που φαίνεται στο Σχήµα 29 απενεργοποιεί το RTDX κανάλι που περιγράφει η είσοδος Channel. CCS In Channel error in CCS Out error out Σχήµα 29. Το RTDX_Channel_Disable.vi Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

34 30 2. Περιγραφή των subvis του LabVIEW to CCS Link Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού που θα απενεργοποιηθεί. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το RTDX_Channel_Enable.vi Το subvi RTDX_Channel_Enable.vi που φαίνεται στο Σχήµα 30 ενεργοποιεί το RTDX κανάλι που περιγράφει η είσοδος Channel. CCS In Channel error in CCS Out error out Σχήµα 30. Το RTDX_Channel_Enable.vi Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού που θα ενεργοποιηθεί. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

35 LabVIEW to CCS Link 31 Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το RTDX_Channel_Status.vi Το subvi RTDX_Channel_Enable.vi που φαίνεται στο Σχήµα 31 δείχνει την κατάσταση του RTDX καναλιού που περιγράφει η είσοδος Channel. CCS In Channel error in CCS Out ChannelStatus error out Σχήµα 31. Το RTDX_Channel_Status.vi Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού που θα ελεγχθεί η κατάσταση του. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο σ φάλµα. Η είσο δος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδ ος source είναι τύπου String κ αι περιγράφει το Η έξοδος CC S Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος C hannelstatus είναι ένας ακέραιος των 32 bits µ ε συγκεκριµένες καταστάσεις που δείχνει την κατάσταση του συ γκεκριµένου RTDX καναλιού. Η τιµή 0 που αντιστοιχεί στην κατάσταση RTDX_Channel_Enabled δείχνει ότι το κανάλι είναι ενεργοποιηµένο. Η τιµή 1 που αντιστοιχεί στην κατάσταση RTDX_Channel_Disable δείχνει ότι το κανάλι είναι απενεργοποιηµένο και η τιµή 2 που αντιστοιχε ί στην κατάσταση Unknown δείχνει ότι δεν µπορεί να προσδιοριστεί η κατάσταση του καναλιού. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τ α στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το

36 32 2. Περιγραφή των subvis του LabVIEW to CCS Link RTDX_Read.vi Το subvi RTDX_Read.vi είναι ένα πολυµορφικό VI που διαβάζει πίνακες και αριθµούς κινητής υποδιαστολής µονής ή διπλής ακρίβειας, ακέραιους µε ή χωρίς πρόσηµο των 8-, 16- και 32-bit από ένα RTDX κανάλι. Το RTDX_Read.vi αποτελείται από ένα σύνολο subvis που θα περιγραφούν στην συνέχεια και που παρουσιάζονται ονοµαστικά στον Πίνακα 8. Εικ. Ονοµασία Εικ. Ονοµασία RTDX_Read_F4.vi RTDX_Read_F8.vi RTDX_Read_I1.vi RTDX_Read_I2.vi RTDX_Read_SA_F4.vi RTDX_Read_SA_F8.vi RTDX_Read_SA_I1.vi RTDX_Read_SA_I2.vi RTDX_Read_I4.vi RTDX_Read_UI1.vi RTDX_Read_UI2.vi RTDX_Read_UI4.vi RTDX_Read_SA_I4.vi RTDX_Read_SA_UI1.vi RTDX_Read_SA_UI2.vi RTDX_Read_SA_UI4.vi Πίνακας 8. Τα subvis του RTDX_Read.vi RTDX_Read_F4.vi Το subvi RTDX_Read_F4.vi που φαίνεται στο Σχήµα 32 διαβάζει αριθµούς κινητής υποδιαστολής µονής ακρίβειας των 32 bits (4 bytes) από το RTDX κανάλι που προσδιορίζει η είσοδος Channel. CCS In Channel Timeout error in CCS Out Data error out Σχήµα 32. Το RTDX_Read_F4.vi Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µ ε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού από το οποίο θα αναγνωστούν τα δεδοµένα. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό

37 LabVIEW to CCS Link 33 διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας αριθµός κινητής υποδιαστολής µονής ακρίβειας των 32 bits που δείχνει το περιεχόµενο του συγκεκριµένου RTDX καναλιού. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το RTDX_Re ad_ F8.vi Τ ο subvi RTDX_Read_F8.vi που φαίνεται στο Σχήµα 33 διαβάζει αριθµούς κινητής υποδιασ τολής διπλής ακρίβειας των 64 bits (8 bytes) από το RTDX κανάλι που προσδιορίζει η είσοδος Channel. CCS In Channel Timeout error in CCS Out Data error out Σχήµα 33. Το RTDX_Read_F8.vi Η είσοδ ος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού από το οποίο θα αναγνωστούν τα δεδοµένα. Η είσοδος Timeout που είναι ακέραιος των 32 bits καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µ ε το CCS και την επικοινωνία µε την κάρτα

38 34 2. Περιγραφή των subvis του LabVIEW to CCS Link εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status που είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code που είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source που είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας αριθµός κινητής υποδιαστολής διπλής ακρίβειας των 64 bits που δείχνει το περιεχόµενο του συγκεκριµένου RTDX καναλιού. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status που είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code που είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source που είναι τύπου String και περιγράφει το RTD X_Read_Ι1.vi Το subvi RTDX_Read_Ι1.vi που φαίνεται στο Σχήµ α 34 διαβάζει ακέραιους αριθµούς µ ε πρόσηµο των 8 bits (1 byte) από το RTDX κανάλι που προσδιορίζει η είσοδος Channel. CCS In Channel Timeout error in CCS Out Data error out Σχήµα 34. Το RTDX_Read_Ι1.vi Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που τύπου String, καθορίζει το όνοµα του RTDX καναλιού από το οποίο θα αναγνωστούν τα δεδοµένα. Η είσοδος Timeout που είναι ακέραιος των 32 bits καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή πο υ διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

39 LabVIEW to CCS Link 35 Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας ακέραιος αριθµός µε πρόσηµο των 8 bits που δείχνει το περιεχόµενο του συγκεκριµένου RTDX καναλιού. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το RTD X_Read_Ι2.vi Το subvi RTDX_Read_Ι2.vi που φαίνεται στο Σχήµα 35 διαβάζει ακέραιους αριθµούς µ ε πρόσηµο των 16 bits (2 bytes) από το RTDX κανάλι που προσδιορίζει η είσοδος Channel. CCS In Channel Timeout error in CCS Out Data error out Σχήµα 35 Το RTDX_Read_Ι2.vi Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού από το οποίο θα αναγνωστούν τα δεδοµένα. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στ ην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµ ιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

40 36 2. Περιγραφή των subvis του LabVIEW to CCS Link Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας ακέραιος αριθµός µε πρόσηµο των 16 bits που δείχνει το περιεχόµενο του συγκεκριµένου RTDX καναλιού. Η έξοδ ος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το R TDX_Read_Ι4.vi Το subvi RTDX_Read_Ι4.vi που φαίνεται στο Σχήµα 36 διαβάζει ακέραιους αριθµούς µε πρόσηµο των 32 bits (4 bytes) από το RTDX κανάλι που προσδιορίζει η είσοδος Channel. CCS In Channel Timeout error in CCS Out Data error out Σχήµα 36. Το RTDX_Read_Ι4.vi Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού από το οποίο θα αναγνωστούν τα δεδοµένα. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ο λοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

41 LabVIEW to CCS Link 37 Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας ακέραιος αριθµός µε πρόσηµο των 32 bits που δείχνει το περιεχόµενο του συγκεκριµένου RTDX καναλιού. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το RTD X_Read_UΙ1.vi Το subvi RTDX_Read_UΙ1.vi που φαίνεται στο Σχήµα 37 διαβάζει ακέραιους αριθµούς χωρίς πρόσηµο των 8 bits (1 byte) από το RTDX κανάλι που προσδιορίζει η είσοδος Channel. CCS In Channel Timeout error in CCS Out Data error out Σχήµα 37. Το RTDX_Read_UΙ1.vi Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού από το οποίο θα αναγνωστούν τα δεδοµ ένα. Η είσοδος Timeout π ου είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

42 38 2. Περιγραφή των subvis του LabVIEW to CCS Link Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας ακέραιος αριθµός χωρίς πρόσηµο των 8 bits που δείχνει το περιεχόµενο του συγκεκριµένου RTDX καναλιού. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το RTDX_Read_ UΙ2.vi Το subvi RTDX_Read_UΙ2.vi που φαίνεται στο Σχήµα 38 διαβάζει ακέραιους αριθµούς χωρίς πρόσηµο των 16 bits (2 bytes) από το RTDX κανάλι που προσδιορίζει η είσοδος Channel. CCS In Channel Timeout error in CCS Out Data error out Σχήµα 38. Το RTDX_Read_UΙ2.vi Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού από το οποίο θα αναγνωστούν τα δεδοµένα. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

43 LabVIEW to CCS Link 39 Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδ ος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας ακέραιος αριθµός χωρίς πρόσηµο των 16 bits που δείχνει το περιεχόµενο του συγκεκριµένου RTDX καναλιού. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το RTDX_Read_ UΙ4.vi Το subvi RTDX_Read_UΙ4.vi που φαίνεται στο Σχήµα 39 διαβάζει ακέραιους αριθµούς χωρίς πρόσηµο των 32 bits (4 bytes) από το RTDX κανάλι που προσδιορίζει η είσοδος Channel. CCS In Channel Timeout error in CCS Out Data error out Σχήµα 39. Το RTDX_Read_UΙ4.vi Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού από το οποίο θα αναγνωστούν τα δεδοµένα. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

44 40 2. Περιγραφή των subvis του LabVIEW to CCS Link Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένα ς ακέραιος αριθµ ός χωρίς πρόσηµο των 32 bits που δείχνει το περιεχόµενο του συγκεκριµένου RTDX καναλιού. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το RTDX_Read_SA_F4.vi Το subvi RTDX_Read_SA_F4.vi που φαίνεται στο Σχήµα 40 διαβάζει πίνακες που αποτελούνται από αριθµούς κινητής υποδιαστολής µονής ακρίβειας των 32 bits (4 bytes) από το RTDX κανάλι που προσδιορίζει η είσοδος Channel. CCS In Channel Timeout error in CCS Out Data error out Σχήµα 40. Το RTDX_Read_SA_F4.vi Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού από το οποίο θα αναγνωστούν τα δεδοµένα. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

45 LabVIEW to CCS Link 41 Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας πίνακας που αποτελείται από αριθµούς κινητής υποδιαστολής µονής ακρίβειας των 32 bits και περιλαµβάνει το περιεχόµενο του συγκεκριµένου RTDX καναλιού. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το RTDX_Read_SA_F8.vi Το subvi RTDX_Read_SA_F8.vi που φαίνεται στο Σχήµα 41 διαβάζει πίνακες που αποτελούνται από αριθµούς κινητής υποδιαστολής διπλής ακρίβειας των 64 bits (8 bytes) από το RTDX κανάλι που προσδιορίζει η είσοδος Channel. CCS In Channel Timeout error in CCS Out Data error out Σχήµα 41. Το RTDX_Read_SA_F8.vi Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού από το οποίο θα αναγνωστούν τα δεδοµένα. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

46 42 2. Περιγραφή των subvis του LabVIEW to CCS Link Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθ ανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας πίνακας που αποτελείται από αριθµούς κινητής υποδιαστολής διπλής ακρίβειας των 64 bits και περιλαµβάνει το περιεχόµενο του συγκεκριµένου RTDX καναλιού. Η έξοδ ος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφα λµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το RTDX_Read_SA_Ι1.vi Το subvi RTDX_Read_SA_Ι1.vi που φαίνεται στο Σχήµα 42 διαβάζει πίνακες που αποτελούνται από ακέραιους αριθµούς µε πρόσηµο των 8 bits (1 byte) από το RTDX κανάλι που προσδιορίζει η είσοδος Channel. CCS In Channel Timeout error in CCS Out Data error out Σχήµα 42. Το RTDX_Read_SA_Ι1.vi Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού από το οποίο θα αναγνωστούν τα δεδοµένα. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

47 LabVIEW to CCS Link 43 Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθ ανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς µε πρόσηµο των 8 bits και περιλαµβάνει το περιεχόµενο του συγκεκριµένου RTDX καναλιού. Η έξοδ ος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφα λµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το RTDX_Read_SA_Ι2.vi Το subvi RTDX_Read_SA_Ι2.vi που φαίνεται στο Σχήµα 43 διαβάζει πίνακες που αποτελούνται από ακέραιους αριθµούς µε πρόσηµο των 16 bits (2 bytes) από το RTDX κανάλι που προσδιορίζει η είσοδος Channel. CCS In Channel Timeout error in CCS Out Data error out Σχήµα 43. Το RTDX_Read_SA_Ι2.vi Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού από το οποίο θα αναγνωστούν τα δεδοµένα. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

48 44 2. Περιγραφή των subvis του LabVIEW to CCS Link Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας πίνακας που αποτελείται από ακέραιους αριθµ ούς µε πρόσηµ ο των 16 bits και περιλαµβάνει το περιεχόµενο του συγκεκριµένου RTDX καναλιού. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το RTDX_Read_SA_Ι4.vi Το subvi RTDX_Read_SA_Ι4.vi που φαίνεται στο Σχήµα 44 διαβάζει πίνακες που αποτελούνται από ακέραιους αριθµούς µε πρόσηµο των 32 bits (4 bytes) από το RTDX κανάλι που προσδιορίζει η είσοδος Channel. CCS In Channel Timeout error in CCS Out Data error out Σχήµα 44. Το RTDX_Read_SA_Ι4.vi Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού από το οποίο θα αναγνωστούν τα δεδοµένα. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

49 LabVIEW to CCS Link 45 Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας πίνακας που αποτελείται από ακέραιους αριθµ ούς µε πρόσηµ ο των 32 bits και περιλαµβάνει το περιεχόµενο του συγκεκριµένου RTDX καναλιού. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το RTDX_Read_SA_UΙ1.vi Το subvi RTDX_Read_SA_UΙ1.vi που φαίνεται στο Σχήµα 45 διαβάζει πίνακες που αποτελούνται από ακέραιους αριθµούς χωρίς πρόσηµο των 8 bits (1 byte) από το RTDX κανάλ ι που προσδιορίζει η είσοδος Channel. CCS In Channel Timeout error in CCS Out Data error out Σχήµα 45. Το RTDX_Read_SA_UΙ1.vi Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού από το οποίο θα αναγνωστούν τα δεδοµένα. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

50 46 2. Περιγραφή των subvis του LabVIEW to CCS Link Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς χωρίς πρόσηµ ο των 8 bits και περιλαµβάνει το περιεχόµενο του συγκεκριµένου RTDX καναλιού. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το RTDX_Read_SA_UΙ2.vi Το subvi RTDX_Read_ SA_UΙ2.vi που φαίνεται στο Σχήµα 46 διαβάζει πίνακες που αποτελούνται από ακέραιους αριθµούς χωρίς πρόσηµο των 16 bits (2 bytes) από το RTDX κανάλι που προσδιορίζει η είσοδος Channel. CCS In Channel Timeout error in CCS Out Data error out Σχήµα 46. Το RTDX_Read_SA_UΙ2.vi Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού από το οποίο θα αναγνωστούν τα δεδοµένα. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή τη ς είναι 10 sec (10000 msec).

51 LabVIEW to CCS Link 47 Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς χωρίς πρόσηµ ο των 16 bits και περιλαµβάνει το περιεχόµενο του συγκεκριµ ένου RTDX καναλιού. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το RTDX_Read_SA_UΙ4.vi Το subvi RT DX_Read_SA_UΙ4.vi που φαίνεται στο Σχήµα 47 διαβάζει πίνακες που αποτελούνται από ακέραιους αριθµούς χωρίς πρόσηµ ο των 32 bits (4 bytes) από το RTDX κανάλι που προσδιορίζει η είσοδος Channel. CCS In Channel Timeout error in CCS Out Data error out Σχήµα 47. Το RTDX_Read_SA_UΙ4.vi Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού από το οποίο θα αναγνωστούν τα δεδοµένα. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµ ή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

52 48 2. Περιγραφή των subvis του LabVIEW to CCS Link Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς χωρίς πρόσηµο των 32 bits και περιλαµβάνει το περιεχόµενο του συγκεκριµένου RTDX καναλιού. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το RTD X_Write.vi Το subvi RTDX_Write.vi είναι ένα πολυµορφικό VI που γράφει πίνακες και αριθµούς κινητής υποδιαστολής µονής ή διπλής ακρίβειας, ακέραιους µε ή χωρίς πρόσηµο των 8-, 16- και 32- bit σε ένα RTDX κανάλι. Το RTDX_Write.vi αποτελείται από ένα σύνολο subvis που θα περιγραφούν στην συνέχεια και που παρουσιάζονται ονοµαστικά στον Πί νακα 9. Εικ. Ονοµασία Εικ. Ονοµασία RTDX_Write_F4.vi RTDX_Write_SA_ F4.vi RTDX_Write_F8.vi RTDX_Write_I1.vi RTDX_Write_I2.vi RTDX_Write_I4.vi RTDX_Write_UI1.vi RTDX_Write_SA_F8.vi RTDX_Write_SA_I1.vi RTDX_Write_SA_I2.vi RTDX_Write_SA_I4.vi RTDX_Write_SA_UI1.vi RTDX_Write_UI2.vi RTDX_Write_UI4.vi RTDX_Write_SA_UI2.vi RTDX_Write_SA_UI4.vi

53 LabVIEW to CCS Link 49 RTD X_Write_F4.vi Πίν ακας 9. Τα subvis του RTDX_Write.vi Το subvi RTDX_Write_F4.vi που φαίνεται στο Σχήµα 48 γράφει πίνακες που περιέχουν αριθµούς κινητής υποδιαστολής µονής ακρίβειας των 32 bits (4 bytes) στο RTDX κανάλι που προσδιορίζει η είσοδος Channel. Timeout CCS In Channel Data error in CCS Out error out Σχήµα 48. Το RTDX_Write_F4.vi Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσο δος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού στο οποίο θα εγγραφούν τα δεδοµένα. Η είσοδος Data που είναι ένας αριθµός κινητής υποδιαστολής απλής ακρίβειας των 32 bits, περιέχει τα δεδοµένα που θα εγγραφούν στο RTDX κανάλι. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το

54 50 2. Περιγραφή των subvis του LabVIEW to CCS Link RTDX_Write_F8.vi Το subvi RTDX_Write_F8.vi που φαίνεται στο Σχήµα 49 γράφει αριθµούς κινητής υποδιαστολής διπλής ακρίβειας των 64 bits (8 bytes) στο RTDX κανάλι που προσδιορίζει η είσοδος Channel. Timeout CCS In Channel Data error in CCS Out error out Σχήµα 49. Το RTDX_Write_F8.vi Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή τη ς είναι 10 sec (10000 msec). Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού στο οποίο θα εγγραφούν τα δεδοµένα. Η είσοδος Data που είναι ένας αριθµός κινητής υποδιαστολής απλής ακρίβειας των 64 bits, περιέχει τα δεδοµένα που θα εγγραφούν στο RTDX κανάλι. Η είσο δος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το

55 LabVIEW to CCS Link 51 RTDX_Write_Ι1.vi Το subvi RTDX_Write_Ι1.vi που φαίνεται στο Σχήµα 50 γράφει ακέραιους αριθµούς µ ε πρόσηµο των 8 bits (1 byte) στο RTDX κανάλι που προσδιορίζει η είσοδος Channel. Timeout CCS In Channel Data error in CCS Out error out Σχήµα 50. Το RTDX_Write_Ι1.vi Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή τη ς είναι 10 sec (10000 msec). Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού στο οποίο θα εγγραφούν τα δεδοµένα. Η είσοδος Data που είναι ένας ακέραιος αριθµός µε πρόσηµο των 8 bits, περιέχει τα δεδοµέ να που θα εγγραφούν στο RTDX κανάλι. Η είσο δος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµ ατος. Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το

56 52 2. Περιγραφή των subvis του LabVIEW to CCS Link RTDX_Write_Ι2.vi Το subvi RTDX_Write_Ι2.vi που φαίνεται στο Σχήµα 51 γράφει ακέραιους αριθµούς µε πρόσηµο των 16 bits (2 bytes) στο RTDX κανάλι που προσδιορίζει η είσοδος Channel. Timeout CCS In Channel Data error in CCS Out error out Σχήµα 51. Το RTDX_Write_I2.vi Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού στο οποίο θα εγγραφούν τα δεδοµένα. Η είσοδος Data που είναι ένας ακέραιος αριθµός µε πρόσηµο των 16 bits, περιέχει τα δεδοµένα που θα εγγραφούν στο RTDX κανάλι. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το

57 LabVIEW to CCS Link 53 RTDX_Write_Ι4.vi Το subvi RTDX_Write_Ι4.vi που φαίνεται στο Σχήµα 52 γράφει ακέραιους αριθµούς µε πρόσηµο των 32 bits (4 bytes) στο RTDX κανάλι που προσδιορίζει η είσοδος Channel. Timeout CCS In Channel Data error in CCS Out error out Σχήµα 52. Το RTDX_Write_I4.vi Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού στο οποίο θα εγγραφούν τα δεδοµένα. Η είσοδος Data που είναι ένας ακέραιος αριθµός µε πρόσηµο των 32 bits, περιέχει τα δεδοµένα που θα εγγραφούν στο RTDX κανάλι. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το

58 54 2. Περιγραφή των subvis του LabVIEW to CCS Link RTDX_Write_UΙ1.vi Το subvi RTDX_Write_UΙ1.vi που φαίνεται στο Σχήµα 53 γράφει ακέραιους αριθµούς χωρίς πρόσηµο των 8 bits (1 byte) στο RTDX κανάλι που προσδιορίζει η είσοδος Channel. Timeout CCS In Channel Data error in CCS Out error out Σχήµα 53. Το RTDX_Write_UΙ1.vi Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµ α του RTDX καναλιού στο οποίο θα εγγραφούν τα δεδοµένα. Η είσοδος Data που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο των 8 bits, περιέχει τα δεδοµένα που θα εγγραφούν στο RTDX κανάλι. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το

59 LabVIEW to CCS Link 55 RTDX_Write_UΙ2.vi Το subvi RTDX_Write_UΙ2.vi που φαίνεται στο Σχήµα 54 γράφει ακέραιους αριθµούς χωρίς πρόσηµο των 16 bits (2 bytes) στο RTDX κανάλι που προσδιορίζει η είσοδος Channel. Timeout CCS In Channel Data error in CCS Out error out Σχήµα 54. Το RTDX_Write_UΙ2.vi Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστη µα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού στο οποίο θα εγγραφούν τα δεδοµένα. Η είσοδος Data που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο περιέχει τα δεδοµένα που θα εγγραφούν στο RTDX κανάλι. των 16 bits, Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το

60 56 2. Περιγραφή των subvis του LabVIEW to CCS Link RTD X_Write_UΙ4.vi Το subvi RTDX_Write_UΙ4.vi που φαίνεται στο Σχήµα 55 γράφει ακέραιους αριθµούς χωρίς πρόσηµο των 32 bits (4 bytes) στο RTDX κανάλι που προσδιορίζει η είσοδος Channel. Timeout CCS In Channel Data error in CCS Out error out Σχήµα 55. Το RTDX_Write_UΙ4.vi Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµ ή της είναι 10 sec (10000 msec). Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού στο οποίο θα εγγραφούν τα δεδοµένα. Η είσοδος Data που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο των 32 bits, περιέχει τα δεδοµένα που θα εγγραφούν στο RTDX κανάλι. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το

61 LabVIEW to CCS Link 57 RTDX_Write_SA_F4.vi Το subvi RTDX_Write_SA_F4.vi που φαίνεται στο Σχήµα 56 γράφει πίνακες που αποτελούνται από αριθµούς κινητής υποδιαστολής µονής ακρίβειας των 32 bits (4 bytes) στο RTDX κανάλι που προσδιορίζει η είσοδος Channel. Timeout CCS In Channel Data error in CCS Out error out Σχήµα 56. Το RTDX_Write_SA_F4.vi Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµ α και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού στο οποίο θα εγγραφούν τα δεδοµένα. Η είσοδος Data είναι ένας πίνακας που αποτελείται από αριθµούς κινητής υποδιαστολής µονής ακρίβειας των 32 bits και περιέχει τα δεδοµένα που θα εγγραφούν στο RTDX κανάλι. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το

62 58 2. Περιγραφή των subvis του LabVIEW to CCS Link RTD X_Write_SA_F8.vi Το subvi RTDX_Write_SA_F8.vi που φαίνεται στο Σχήµα 57 γράφει πίνακες που αποτελούνται από αριθµούς κινητής υποδιαστολής διπλής ακρίβειας των 64 bits (8 bytes) στο RTDX κανάλι που προσδιορίζει η είσοδος Channel. Timeout CCS In Channel Data error in CCS Out error out Σχήµα 57. Το RTDX_Write_SA_F8.vi Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµ α σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµ ένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµ ή της είναι 10 sec (10000 msec). Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού στο οποίο θα εγγραφούν τα δεδοµένα. Η είσοδος Data είναι ένας πίνακας που αποτελείται από αριθµούς κινητής υποδιαστολής διπλής ακρίβειας των 64 bits και περιέχει τα δεδοµένα που θα εγγραφούν στο RTDX κανάλι. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το

63 LabVIEW to CCS Link 59 RTD X_Write_SA_Ι1.vi Το subvi RTDX_Write_SA_Ι1.vi που φαίνεται στο Σχήµα 58 γράφει πίνακες που αποτελούνται από ακέραιους αριθµούς µε πρόσηµο των 8 bits (1 byte) στο RTDX κανάλι που προσδιορίζει η είσοδος Channel. Timeout CCS In Channel Data error in CCS Out error out Σχήµα 58. Το RTDX_Write_SA_Ι1.vi Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµ α σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµ ένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµ ή της είναι 10 sec (10000 msec). Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού στο οποίο θα εγγραφούν τα δεδοµένα. Η είσοδος Data είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς µε πρόσηµο των 8 bits και περιέχει τα δεδοµένα που θα εγγραφούν στο RTDX κανάλι. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το

64 60 2. Περιγραφή των subvis του LabVIEW to CCS Link RTD X_Write_SA_Ι2.vi Το subvi RTDX_Write_SA_Ι2.vi που φαίνεται στο Σχήµα 59 γράφει πίνακες που αποτελούνται από ακέραιους αριθµούς µε πρόσηµο των 16 bits (2 bytes) στο RTDX κανάλι που προσδιορίζει η είσοδος Channel. Timeout CCS In Channel Data error in CCS Out error out Σχήµα 59. Το RTDX_Write_SA_Ι2.vi Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διά στηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού στο οποίο θα εγγραφούν τα δεδοµένα. Η είσοδος Data είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς µε πρόσηµο των 16 bits και περιέχει τα δεδοµένα που θα εγγραφούν στο RTDX κανάλι. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος cod e είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το

65 LabVIEW to CCS Link 61 RTD X_Write_SA_Ι4.vi Το subvi RTDX_Write_SA_Ι4.vi που φαίνεται στο Σχήµα 60 γράφει πίνακες που αποτελούνται από ακέραιους αριθµούς µε πρόσηµο των 32 bits (4 bytes) στο RTDX κανάλι που προσδιορίζει η είσοδος Channel. Timeout CCS In Channel Data error in CCS Out error out Σχήµα 60. Το RTDX_Write_SA_Ι4.vi Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διά στηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού στο οποίο θα εγγραφούν τα δεδοµένα. Η είσοδος Data είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς µε πρόσηµο των 32 bits και περιέχει τα δεδοµένα που θα εγγραφούν στο RTDX κανάλι. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το

66 62 2. Περιγραφή των subvis του LabVIEW to CCS Link RTD X_Write_SA_UΙ1.vi Το subvi RTDX_Write_SA_UΙ1.vi που φαίνεται στο Σχήµα 61 γράφει πίνακες που αποτελούνται από ακέραιους αριθµούς χωρίς πρόσηµο των 8 bits (1 byte) στο RTDX κανάλι που προσδιορίζει η είσοδος Channel. Timeout CCS In Channel Data error in CCS Out error out Σχήµα 61. Το RTDX_Write_SA_UΙ1.vi Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρ ι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µ ε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού στο οποίο θα εγγραφούν τα δεδοµένα. Η είσοδος Data είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς χωρίς πρόσηµο των 8 bits και περιέχει τα δεδοµένα που θα εγγραφούν στο RTDX κανάλι. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το

67 LabVIEW to CCS Link 63 RTD X_Write_SA_UΙ2.vi Το subvi RTDX_Write_SA_UΙ2.vi που φαίνεται στο Σχήµα 62 γράφει πίνακες που αποτελούνται από ακέραιους αριθµούς χωρίς πρόσηµο των 16 bits (2 bytes) στο RTDX κανάλι που προσδιορίζει η είσοδος Channel. Timeout CCS In Channel Data error in CCS Out error out Σχήµα 62. Το RTDX_Write_SA_UΙ2.vi Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρ ι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µ ε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού στο οποίο θα εγγραφούν τα δεδοµένα. Η είσοδος Data είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς χωρίς πρόσηµο των 16 bits και περιέχει τα δεδοµένα που θα εγγραφούν στο RTDX κανάλι. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το

68 64 2. Περιγραφή των subvis του LabVIEW to CCS Link RTD X_Write_SA_UΙ4.vi Το subvi RTDX_Write_SA_UΙ4.vi που φαίνεται στο Σχήµα 63 γράφει πίνακες που αποτελούνται από ακέραιους αριθµούς χωρίς πρόσηµο των 32 bits (4 bytes) στο RTDX κανάλι που προσδιορίζει η είσοδος Channel. Timeout CCS In Channel Data error in CCS Out error out Σχήµα 63. Το RTDX_Write_SA_UΙ4.vi Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διά στηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µ έχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώ νται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Channel που είναι τύπου String, καθορίζει το όνοµα του RTDX καναλιού στο οποίο θα εγγραφούν τα δεδοµένα. Η είσοδος Data είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς χωρίς πρόσηµο των 32 bits και περιέχει τα δεδοµένα που θα εγγραφούν στο RTDX κανάλι. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκ υψε πριν την εκτέλεση του συγκ εκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µ ια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραι ος των 32 bits που δείχνει τον κώδικα του σφάλµ ατος. Η έξοδ ος source είναι τύπου String κα ι περιγράφει το

69 LabVIEW to CCS Link MEM_Get_Address.vi Το subvi MEM_Get_Address.vi που φαίνεται στο Σχήµα 64 εντοπίζει την σελίδα και την διεύθυνση στην µ νήµη του DSP που είναι αποθηκευµένο το σύµβολο που περιγράφει η είσοδος Symbol Name. Ο όρος σύµβολο σηµαίνει µια µεταβλητή ή ένα πίνακα οποιουδήποτε τύπου που έχει οριστεί στο project του CCS. Αν πρόκειται για πίνακα το MEM_Get_Address.vi θα επιστρέψει την σελίδα και την διεύθυνση στην µνήµη του DSP που είναι αποθηκευµένο το πρώτο στοιχείο του πίνακα. Το σύµβολο προτείνεται να είναι γενικό (global). CCS In Symbol Name error in CCS Out Page & Address error out Σχήµα 64. Το MEM_Get_Address.vi Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Symbol Name που είναι τύπου String, καθορίζει το όνοµα του συµβόλου. Το σύµβολο θα πρέπει να έχει οριστεί στο project του CCS διαφορετικά θα δηµιουργηθεί κάποιο Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP που είναι αποθηκευµένο το σύµβολο που δείχνει η είσοδος Symbol Name. Η έξοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η έξοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP στην οποία είναι αποθηκευµένο το σύµβολο. Η έξοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP που είναι αποθηκευµένο το σύµβολο. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το

70 66 2. Περιγραφή των subvis του LabVIEW to CCS Link MEM_Read.vi Το subvi MEM_Read.vi είναι ένα πολυµορφικό VI που έχει την δυνατότητα να διαβάζει σειρές αλφαριθµητικών χαρακτήρων (Strings), πίνακες και αριθµούς κινητής υποδιαστολής µονής ή διπλής ακρίβειας, ακέραιους µε ή χωρίς πρόσηµο των 8-, 16- και 32- bit από την µνήµη του DSP µε απευθείας προσπέλαση της. Το MEM_Read.vi αποτελείται από ένα σύνολο subvis που θα περιγραφούν στην συνέχεια και παρουσιάζονται ονοµαστικά στον Πίνακα 10. Εικ. Ονοµασία Εικ. Ονοµασία MEM_Read_F4.vi MEM_Read_F8.vi MEM_Read_I1.vi MEM_Read_I2.vi MEM_Read_A_F4.vi MEM_Read_A_F8.vi MEM_Read_A_I1.vi MEM_Read_A_I2.vi MEM_Read_I4.vi MEM_Read_UI1.vi MEM_Read_UI2.vi MEM_Read_UI4.vi MEM_Read_A_I4.vi MEM_Read_A_UI1.vi MEM_Read_A_UI2.vi MEM_Read_A_UI4.vi MEM_Read_String.vi Πίνακας 10. Τα subvis του MEM_Read.vi MEM_ Read_F4.vi Το subvi MEM_Read_F4.vi που φαίνεται στο Σχήµα 65 διαβάζει αριθµούς κινητής υποδιαστολής µονής ακρίβειας των 32 bits (4 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης. CCS_Event_Notif_In CCS In Timeout Page & Address error in CCS_Event_Notif_Out CCS Out Data error out Σχήµα 65. Το MEM_Read_F4.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

71 LabVIEW to CCS Link 67 Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστη µα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας αριθµός κινητής υποδιαστολής µονής ακρίβειας των 32 bits που δείχνει το περιεχόµενο της µ νήµ ης του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status που είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το MEM_ Read_F8.vi Το subvi MEM_Read_F8.vi που φαίνεται στο Σχήµα 66 διαβάζει αριθµούς κινητής υποδιαστολής διπλής ακρίβειας των 64 bits (8 bytes) ξεκινώντας από την σελίδα και την διεύθυν ση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης.

72 68 2. Περιγραφή των subvis του LabVIEW to CCS Link CCS_Event_Notif_In CCS In Timeout Page & Address error in CCS_Event_Notif_Out CCS Out Data error out Σχήµα 66. Το MEM_Read_F8.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσο δος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας αριθµός κινητής υποδιαστολής διπλής ακρίβειας των 64 bits που δείχνει το περιεχόµενο της µνήµης του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι:

73 LabVIEW to CCS Link 69 MEM_ Read_Ι1.vi Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το Το subvi MEM_Read_Ι1.vi που φαίνεται στο Σχήµα 67 διαβάζει ακέραιους αριθµούς µ ε πρόσηµο των 8 bits (1 byte) από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης. CCS_Event_Notif_In CCS In Timeout Page & Address error in CCS_Event_Notif_Out CCS Out Data error out Σχήµα 66. Το MEM_Read_Ι1.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσο δος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτ ό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσο δος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το

74 70 2. Περιγραφή των subvis του LabVIEW to CCS Link Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας ακέραιος αριθµός µε πρόσηµο των 8 bits που δείχνει το περιεχόµενο της θέσης µνήµης του DSP που καθορίζει η είσοδος Page & Number. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το MEM_Read_I2.vi Το subvi MEM_Read_I2.vi που φαίνεται στο Σχήµα 68 διαβάζει ακέραιους αριθµούς µε πρόσηµο των 16 bits (2 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης. CCS_Event_Notif_In CCS In Timeout Page & Address error in CCS_Event_Notif_Out CCS Out Data error out Σχήµα 68. Το MEM_Read_Ι2.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδ ος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

75 LabVIEW to CCS Link 71 Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας ακέραιος αριθµός µε πρόσηµο των 16 bits που δείχνει το περιεχόµενο της µνήµης του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το MEM_Read_I4.vi Το subvi MEM_Read_I4.vi που φαίνεται στο Σχήµα 69 διαβάζει ακέραιους αριθµούς µε πρόσηµο των 32 bits (4 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης. CCS_Event_Notif_In CCS In Timeout Page & Address error in CCS_Event_Notif_Out CCS Out Data error out Σχήµα 69. Το MEM_Read_Ι4.vi Η είσοδος CCS_ Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδ ος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα

76 72 2. Περιγραφή των subvis του LabVIEW to CCS Link εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σε λίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας ακέραιος αριθµός µε πρόσηµο των 32 bits που δείχνει το περιεχόµενο της µνήµης του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το MEM_ Read_UΙ1.vi Το subvi MEM_Read_UΙ1.vi που φαίνεται στο Σχήµα 70 διαβάζει ακέραιους αριθµούς χωρίς πρόσηµ ο των 8 bits (1 byte) από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης. CCS_Event_Notif_In CCS In Timeout Page & Address error in CCS_Event_Notif_Out CCS Out Data error out Σχήµα 66. Το MEM_Read_UΙ1.vi

77 LabVIEW to CCS Link 73 Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας ακέραιος αριθµός χωρίς πρόσηµο των 8 bits που δείχνει το περιεχόµενο της θέσης µνήµης του DSP που καθορίζει η είσοδος Page & Number. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το

78 74 2. Περιγραφή των subvis του LabVIEW to CCS Link ME M_ Read_UI2.vi Το subvi MEM_Read_UI2.vi που φαίνεται στο Σχήµα 71 διαβάζει ακέραιους αριθµούς χωρίς πρόσηµ ο των 16 bits (2 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης. CCS_Event_Notif_In CCS In Timeout Page & Address error in CCS_Event_Notif_Out CCS Out Data error out Σχήµα 71. Το MEM_Read_UΙ2.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µ πορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σε λίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

79 LabVIEW to CCS Link 75 Η έξοδος Data είναι ένας ακέραιος αριθµός χωρίς πρόσηµο των 16 bits που δείχνει το περιεχόµενο της µνήµης του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το MEM_Rea d_ UI4.vi Το subvi MEM_Read_UI4.vi που φαίνεται στο Σχήµα 72 διαβάζει ακέραιους αριθµούς χωρίς πρόσηµ ο των 32 bits (4 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης τ ου DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης. CCS_Event_Notif_In CCS In Timeout Page & Address error in CCS_Event_Notif_Out CCS Out Data error out Σχήµα 72. Το MEM_Read_UΙ4.vi Η είσοδος CCS_Event_Notif_In είναι µια οµ άδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι:

80 76 2. Περιγραφή των subvis του LabVIEW to CCS Link Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας ακέραιος αριθµός χωρίς πρόσηµο των 32 bits που δείχνει το περιεχόµενο της µνήµης του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το MEM_ Read_String.vi Το subvi MEM_Read_String.vi που φαίνεται στο Σχήµα 73 διαβάζει µια σειρά από αλφαριθµητικούς χαρακτήρες (String) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης. Το πλήθος των αλφαριθµητικών χαρακτήρων καθορίζεται από την είσοδο Size. CCS_Event_Notif_In CCS In Timeout Page & Address error in Size CCS_Event_Notif_Out CCS Out Data error out Σχήµα 73. Το MEM_Read_String.vi Η είσοδ ος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες

81 LabVIEW to CCS Link 77 περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η είσοδος Size που είναι ένας ακέραιος των 32 bits και δείχνει πλήθος των αλφαριθµητικών χαρακτήρων που θα αναγνωστούν. Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι τύπου String και δείχνει το περιεχόµενο της µνήµης του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number. Το πλήθος των χαρακτήρων που περιέχει η έξοδος Data καθορίζεται από την είσοδο Size. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το ME M_ Read_A_F4.vi Το subvi MEM_Read_A_F4.vi που φαίνεται στο Σχήµα 74 διαβάζει πίνακες που αποτελούνται από αριθµούς κινητής υποδιαστολής µονής ακρίβειας των 32 bits (4 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µ ε απευθείας προσπέλαση της µνήµης. Το πλήθος των στοιχείων του πίνακα καθορίζεται από την είσοδο Size.

82 78 2. Περιγραφή των subvis του LabVIEW to CCS Link CCS_Event_Notif_In CCS In Timeout Page & Address error in Size CCS_Event_Notif_Out CCS Out Data error out Σχήµα 74. Το MEM_Read_A_F4.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η είσοδος Size είναι ένας ακέραιος των 32 bits που δείχνει πλήθος των στοιχείων του πίνακα που θα αναγνωστεί. Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µ ε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας πίνακας που αποτελείται από αριθµούς κινητής υποδιαστολής µονής ακρίβειας των 32 bits και δείχνει το περιεχόµενο της µνήµης του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number. Το πλήθος των στοιχείων του πίνακα καθορίζεται από την είσοδο Size.

83 LabVIEW to CCS Link 79 Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το ME M_ Read_A_F8.vi Το subvi MEM_Read_A_F8.vi που φαίνεται στο Σχήµα 75 διαβάζει πίνακες που αποτελούνται από αριθµούς κινητής υποδιαστολής µονής ακρίβειας των 64 bits (8 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µ ε απευθείας προσπέλαση της µνήµης. Το πλήθος των στοιχείων του πίνακα καθορίζεται από την είσοδο Size. CCS_Event_Notif_In CCS In Timeout Page & Address error in Size CCS_Event_Notif_Out CCS Out Data error out Σχήµα 75. Το MEM_Read_A_F8.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι:

84 80 2. Περιγραφή των subvis του LabVIEW to CCS Link Η είσοδος status που είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code που είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source που είναι τύπου String και περιγράφει το Η είσοδος Size είναι ένας ακέραιος των 32 bits που δείχνει πλήθος των στοιχείων του πίνακα που θα αναγνωστεί. Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα π ου περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας πίνακας που αποτελείται από αριθµούς κινητής υποδιαστολής διπλής ακρίβειας των 64 bits και δείχνει το περιεχόµενο της µνήµης του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number. Το πλήθος των στοιχείων του πίνακα καθορίζεται από την είσοδο Size. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το MEM_Read_A_I1.vi Το subvi MEM_Read_A_I1.vi που φαίνεται στο Σχήµα 76 διαβάζει πίνακες που αποτελούνται από ακέραιους αριθµούς µε πρόσηµο των 8 bits (1 byte) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης. Το πλήθος των στοιχείων του πίνακα καθορίζεται από την είσοδο Size. CCS_Event_Notif_In CCS In Timeout Page & Address error in Size CCS_Event_Notif_Out CCS Out Data error out Σχήµα 76. Το MEM_Read_A_I1.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI

85 LabVIEW to CCS Link 81 µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσο δος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η είσοδος Size είναι ένας ακέραιος των 32 bits που δείχνει πλήθος των στοιχείων του πίνακα που θα αναγνωστεί. Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς µε πρόσηµο των 8 bits και δείχνει το περιεχόµενο της µνήµης του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number. Το πλήθος των στοιχείων του πίνακα καθορίζεται από την είσοδο Size. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το

86 82 2. Περιγραφή των subvis του LabVIEW to CCS Link ME M_ Read_A_I2.vi Το subvi MEM_Read_A_I2.vi που φαίνεται στο Σχήµα 77 διαβάζει πίνακες που αποτελούνται από ακέραιους αριθµούς µε πρόσηµο των 16 bits (2 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης. Το πλήθος των στοιχείων του πίνακα καθορίζεται από την είσοδο Size. CCS_Event_Notif_In CCS In Timeout Page & Address error in Size CCS_Event_Notif_Out CCS Out Data error out Σχήµα 77. Το MEM_Read_A_I2.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η είσοδος Size είναι ένας ακέραιος των 32 bits που δείχνει πλήθος των στοιχείων του πίνακα που θα αναγνωστεί.

87 LabVIEW to CCS Link 83 Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς µε πρόσηµο των 16 bits και δείχνει το περιεχόµενο της µνήµης του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number. Το πλήθος των στοιχείων του πίνακα καθορίζεται από την είσοδο Size. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το MEM_Rea d_ A_ I4.vi Το subvi MEM_Read_A_I4.vi που φαίνεται στο Σχήµα 78 διαβάζει πίνακες που αποτελούνται από ακέραιους αριθµούς µε πρόσηµο των 32 bits (4 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης. Το πλήθος των στοιχείων του πίνακα καθορίζεται από την είσοδο Size. CCS_Event_Notif_In CCS In Timeout Page & Address error in Size CCS_Event_Notif_Out CCS Out Data error out Σχήµα 78. Το MEM_Read_A_I4.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµ ή της είναι 10 sec (10000 msec).

88 84 2. Περιγραφή των subvis του LabVIEW to CCS Link Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το σφάλµ α. Η είσοδος Size είναι ένας ακέραιος των 32 bits που δείχνει πλήθος των στοιχείων του πίνακα που θα αναγνωστεί. Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς µε πρόσηµο των 32 bits και δείχνει το περιεχόµενο της µνήµης του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number. Το πλήθος των στοιχείων του πίνακα καθορίζεται από την είσοδο Size. Η έξοδος error out είναι µια οµ άδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το MEM_Read_ A_UI1.vi Το subvi MEM_Read_A_UI1.vi που φαίνεται στο Σχήµα 79 διαβάζει πίνακες που αποτελούνται από ακέραιους αριθµούς χωρίς πρόσηµο των 8 bits (1 byte) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης. Το πλήθος των στοιχείων του πίνακα καθορίζεται από την είσοδο Size.

89 LabVIEW to CCS Link 85 CCS_Event_Notif_In CCS In Timeout Page & Address error in Size CCS_Event_Notif_Out CCS Out Data error out Σχήµα 79. Το MEM_Read_A_UI1.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διά στηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώ σεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η είσοδος Size είναι ένας ακέραιος των 32 bits που δείχνει πλήθος των στοιχείων του πίνακα που θα αναγνωστεί. Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς χωρίς πρόσηµο των 8 bits και δείχνει το περιεχόµενο της µνήµης του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number. Το πλήθος των στοιχείων του πίνακα καθορίζεται από την είσοδο Size.

90 86 2. Περιγραφή των subvis του LabVIEW to CCS Link Η έξοδ ος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το MEM_Rea d_ A_UI2.vi Το subv I MEM_Read_A_UI2.vi που φαίνεται στο Σχήµα 80 διαβάζει πίνακες που αποτελούνται από ακέραιους αριθµούς χωρίς πρόσηµο των 16 bits (2 bytes) ξεκινώντας από τ ην σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης. Το πλήθος των στοιχείων του πίνακα καθορίζεται από την είσοδο Size. CCS_Event_Notif_In CCS In Timeout Page & Address error in Size CCS_Event_Notif_Out CCS Out Data error out Σχήµα 80. Το MEM_Read_A_UI2.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι:

91 LabVIEW to CCS Link 87 Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσ οδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδ ος source είναι τύπου String και περιγράφει το Η είσοδος Size είναι ένας ακ έραιος των 32 bits που δείχνει πλήθος των στοιχείων του πίνακα που θα αναγνωστεί. Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµ βούν στο CCS. Η έξοδος CCS Out είναι µια οµ άδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς χωρίς πρόσηµο τω ν 16 bits και δείχνει το περιεχόµενο της µνήµης του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number. Το πλήθος των στοιχείων του πίνακα καθορίζεται από την είσοδο Size. Η έξοδος err or out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του σφάλµ ατος. Η έξοδος source είναι τύπου String και περιγράφει το MEM_Read_A_UI4.vi Το subvi MEM_Read_A_UI4.vi που φαίνεται στο Σχήµα 81 διαβάζει πίνακες που αποτελούνται από ακέραιους αριθµούς χωρί ς πρόσηµο των 32 bits (4 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µ νήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµ ης. Το πλήθος των στοιχείων του πίνακα καθορίζεται από την είσοδο Size. CCS_Event_Notif_In CCS In Timeout Page & Address error in Size CCS_Event_Notif_Out CCS Out Data error out Σχήµα 81. Το MEM_Read_A_UI4.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI

92 88 2. Περιγραφή των subvis του LabVIEW to CCS Link µέχρι να ολοκληρωθεί η ανάγνωση. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP από όπου θα γίνει η ανάγνωση. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η είσοδος Size είναι ένας ακέραιος των 32 bits που δείχνει πλήθος των στοιχείων του πίνακα που θα αναγνωστεί. Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Data είναι ένας πίνακας που αποτελείται από ακέραιους αριθµούς χωρίς πρόσηµο των 32 bits και δείχνει το περιεχόµενο της µνήµης του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number. Το πλήθος των στοιχείων του πίνακα καθορίζεται από την είσοδο Size. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το

93 LabVIEW to CCS Link MEM_Write.vi Το subvi MEM_Write.vi είναι ένα πολυµορφικό VI που έχει την δυνατότητα να γράφει σειρές αλφαριθµητικών χαρακτήρων (Strings), πίνακες και αριθµούς κινητής υποδιαστολής µονής ή διπλής ακρίβειας, ακέραιους µε ή χωρίς πρόσηµο των 8-, 16- και 32-bit στην µνήµη του DSP µε απευθείας προσπέλαση της. Το MEM_Write.vi αποτελείται από ένα σύνολο subvis που θα περιγραφούν στην συνέχεια και παρουσιάζονται ονοµαστικά στον Πίνακα 11. Εικ. Ονοµασία Εικ. Ονοµασία MEM_Write_F4.vi MEM_Write_F8.vi MEM_Write_I1.vi MEM_Write_I2.vi MEM_Write_A_F4.vi MEM_Write_A_F8.vi MEM_Write_A_I1.vi MEM_Write_A_I2.vi MEM_Write_I4.vi MEM_Write_UI1.vi MEM_Write_UI2.vi MEM_Write_UI4.vi MEM_Write_A_I4.vi MEM_Write_A_UI1.vi MEM_Write_A_UI2.vi MEM_Write_A_UI4.vi MEM_Write_String.vi Πίνακας 11. Τα subvis του MEM_Write.vi MEM_ Write_F4.vi Το subvi MEM_Write_F4.vi που φαίνεται στο Σχήµα 82 γράφει αριθµούς κινητής υποδιαστολής µονής ακρίβειας των 32 bits (4 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλασ η της µνήµης. CCS_Event_Notif_In CCS In Timeout Page & Address error in Data CCS_Event_Notif_Out CCS Out error out Σχήµα 82. Το MEM_Write_F4.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS.

94 90 2. Περιγραφή των subvis του LabVIEW to CCS Link Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η είσοδος Data είναι ένας αριθµός κινητής υποδιαστολής µονής ακρίβειας των 32 bits που θα εγγραφεί στην µνήµη του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number. Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδ ος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το

95 LabVIEW to CCS Link 91 ME M_ Write_F8.vi Το subvi MEM_Write_F8.vi που φαίνεται στο Σχήµα 83 γράφει αριθµούς κινητής υποδια στολής διπλής ακρίβειας των 64 bits (8 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης. CCS_Event_Notif_In CCS In Timeout Page & Address error in Data CCS_Event_Notif_Out CCS Out error out Σχήµα 83. Το MEM_Write_F8.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή πο υ διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η είσοδος Data είναι ένας αριθµ ός κινητής υποδιαστολής µονής ακρίβειας των 64 bits που θα εγγραφεί στην µνήµη του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number.

96 92 2. Περιγραφή των subvis του LabVIEW to CCS Link Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το ME M_ Write_I1.vi Τ ο subvi MEM_Write_I1.vi που φαίνεται στο Σχήµα 84 γράφει ακέραιους αριθµούς µε πρόσηµ ο των 8 bits (1 byte) στην σελίδα και στην διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης. CCS_Event_Notif_In CCS In Timeout Page & Address error in Data CCS_Event_Notif_Out CCS Out error out Σχήµα 84. Το MEM_Write_I1.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

97 LabVIEW to CCS Link 93 Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η είσοδος Data είναι ένας ακέραιος αριθµός µε πρόσηµο των 8 bits που θα εγγραφεί στην θέση µνήµης του DSP, που καθορίζει η είσοδος Page & Number. Η έξο δος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µ ε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το ME M_ Write_I2.vi Το subvi MEM_Write_I2.vi που φαίνεται στο Σχήµα 85 γράφει ακέραιους αριθµούς µε πρόσηµ ο των 16 bits (2 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης. CCS_Event_Notif_In CCS In Timeout Page & Address error in Data CCS_Event_Notif_Out CCS Out error out Σχήµα 85. Το MEM_Write_I2.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµ α σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες

98 94 2. Περιγραφή των subvis του LabVIEW to CCS Link περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η είσο δος Data είναι ένας ακέραιος αριθµός µε πρόσηµο των 16 bits που θα εγγραφεί στην µνήµη του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number. Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το ME M_ Write_I4.vi Το subvi MEM_Write_I4.vi που φαίνεται στο Σχήµα 86 γράφει ακέραιους αριθµούς µε πρόσηµ ο των 32 bits (4 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης. CCS_Event_Notif_In CCS In Timeout Page & Address error in Data CCS_Event_Notif_Out CCS Out error out Σχήµα 86. Το MEM_Write_I4.vi

99 LabVIEW to CCS Link 95 Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout πο υ είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανό ν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η είσοδος Data είναι ένας ακέραιος αριθµός µε πρόσηµο των 32 bits που θα εγγραφεί στην µνήµη του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number. Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το

100 96 2. Περιγραφή των subvis του LabVIEW to CCS Link MEM_ Write_ UI1.vi Το subvi MEM_Write_UI1.vi που φαίνεται στο Σχήµα 87 γράφει ακέραιους αριθµούς χωρίς πρόσηµ ο των 8 bits (1 byte) στην σελίδα και στην διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης. CCS_Event_Notif_In CCS In Timeout Page & Address error in Data CCS_Event_Notif_Out CCS Out error out Σχήµα 87. Το MEM_Write_UI1.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout πο υ είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανό ν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η είσοδος Data είναι ένας ακέραιος αριθµός χωρίς πρόσηµο των 8 bits που θα εγγραφεί στην θέση µνήµης του DSP, που καθορίζει η είσοδος Page & Number. Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

101 LabVIEW to CCS Link 97 Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το ME M_ Write_UI2.vi Το subvi MEM_Write_UI2.vi που φαίνεται στο Σχήµα 88 γράφει ακέραιους αριθµούς χωρίς πρόσηµ ο των 16 bits (2 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης. CCS_Event_Notif_In CCS In Timeout Page & Address error in Data CCS_Event_Notif_Out CCS Out error out Σχήµα 88 Το MEM_Write_UI2.vi Η είσοδος CCS_Event_Notif_In είναι µ ια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι:

102 98 2. Περιγραφή των subvis του LabVIEW to CCS Link Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η είσοδος Data είναι ένας ακέραιος αριθµός χωρίς πρόσηµο των 16 bits που θα εγγραφεί στην µνήµη του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number. Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το MEM_Write_ UI4.vi Το subvi MEM_Write_UI4.vi που φαίνεται στο Σχήµα 89 γράφει ακέραιους αριθµούς χωρίς πρόσηµο των 32 bits (4 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης. CCS_Event_Notif_In CCS In Timeout Page & Address error in Data CCS_Event_Notif_Out CCS Out error out Σχήµα 89 Το MEM_Write_UI4.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

103 LabVIEW to CCS Link 99 Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status που είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code που είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source που είναι τύπου String και περιγράφει το Η είσοδος Data είναι ένας ακέραιος αριθµός χωρίς πρόσηµο των 16 bits που θα εγγραφεί στην µ νήµη του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number. Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το MEM_ Write_ String.vi Το subvi MEM_Write_String.vi που φαίνεται στο Σχήµα 90 γράφει µια σειρά από αλφαριθµητικο ύς χαρακτήρες (String) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µ νήµης. CCS_Event_Notif_In CCS In Timeout Page & Address error in Data CCS_Event_Notif_Out CCS Out error out Σχήµα 90 Το MEM_Write_String.vi

104 Περιγραφή των subvis του LabVIEW to CCS Link Η είσοδος CCS_Event_ Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η είσοδος Data είναι µια σειρά αλφαριθµητικών χαρακτήρων που θα εγγραφεί στην µνήµη του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number. Η έξοδος CCS_Event_Notif_Out είναι µια οµ άδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το

105 LabVIEW to CCS Link 101 MEM_Write_A_F4.vi Το subvi MEM_Write_A_F4.vi που φαίνεται στο Σχήµα 91 γράφει ένα πίνακα που αποτελείται από αριθµούς κινητής υποδιαστολής µονής ακρίβειας των 32 bits (4 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης. CCS_Event_Notif_In CCS In Timeout Page & Address error in Data CCS_Event_Notif_Out CCS Out error out Σχήµα 91 Το MEM_Write_A_F4.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η είσοδος Data που είναι ένας πίνακας από αριθµούς κινητής υποδιαστολής µονής ακρίβειας των 32 bits, θα εγγραφεί στην µνήµη του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number.

106 Περιγραφή των subvis του LabVIEW to CCS Link Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το MEM_Write_A_F8.vi Το subvi MEM_Write_A_F8.vi που φαίνεται στο Σχήµα 92 γράφει ένα πίνακα που αποτελείται από αριθµούς κινητής υποδιαστολής διπλής ακρίβειας των 64 bits (8 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης. CCS_Event_Notif_In CCS In Timeout Page & Address error in Data CCS_Event_Notif_Out CCS Out error out Σχήµα 92 Το MEM_Write_A_F8.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµ η του DSP που θα γίνει η εγγραφή. Η είσοδος Pa ge & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP.

107 LabVIEW to CCS Link 103 Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθ ανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η είσοδος Data που είναι ένας πίνακας από αριθµούς κινητής υποδιαστολής διπλής ακρίβειας των 64 bits, θα εγγραφεί στην µνήµη του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number. Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδ ος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφα λµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το MEM_Write_A_I1.vi Το subvi MEM_Write_A_I1.vi που φαίνεται στο Σχήµα 93 γράφει ένα πίνακα που αποτελείται από ακέραιους αριθµούς µε πρόσηµο των 8 bits (1 byte) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης. CCS_Event_Notif_In CCS In Timeout Page & Address error in Data CCS_Event_Notif_Out CCS Out error out Σχήµα 93 Το MEM_Write_A_I1.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή

108 Περιγραφή των subvis του LabVIEW to CCS Link πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η είσοδος Data που είναι ένας πίνακας από ακέραιους αριθµούς µε πρόσηµο των 8 bits, θα εγγραφεί στην µνήµη του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number. Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµά των. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το MEM_Write_A_I2.vi Το subvi MEM_Write_A_I2.vi που φαίνεται στο Σχήµα 94 γράφει ένα πίνακα που αποτελείται από ακέραιους αριθµούς µε πρόσηµο των 16 bits (2 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης.

109 LabVIEW to CCS Link 105 CCS_Event_Notif_In CCS In Timeout Page & Address error in Data CCS_Event_Notif_Out CCS Out error out Σχήµα 94 Το MEM_Write_A_I2.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµ ένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος Pa ge & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η είσοδος Data που είναι ένας πίνακας από ακέραιους αριθµούς µε πρόσηµο των 16 bi ts, θα εγγραφεί στην µνήµη του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number. Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι:

110 Περιγραφή των subvis του LabVIEW to CCS Link Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το MEM_Write_A_I4.vi Το subvi MEM_Write_A_I4.vi που φαίνεται στο Σχήµα 95 γράφει ένα πίνακα που αποτελείται από ακέραιους αριθµούς µε πρόσηµο των 32 bits (8 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης. CCS_Event_Notif_In CCS In Timeout Page & Address error in Data CCS_Event_Notif_Out CCS Out error out Σχήµα 95 Το MEM_Write_A_I4.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του

111 LabVIEW to CCS Link 107 Η είσοδος source είναι τύπου String και περιγράφει το Η είσοδος Data που είναι ένας πίνακας από ακέραιους αριθµούς µε πρόσηµο των 32 bits, θα εγγραφεί στην µνήµη του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number. Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το MEM_Write_A_UI1.vi Το subvi MEM_Write_A_UI1.vi που φαίνεται στο Σχήµ α 96 γράφει ένα πίνακα που αποτελείται από ακέραιους αριθµούς χωρίς πρόσηµο των 8 bits (1 byte) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης. CCS_Event_Notif_In CCS In Timeout Page & Address error in Data CCS_Event_Notif_Out CCS Out error out Σχήµα 96 Το MEM_Write_A_UI1.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

112 Περιγραφή των subvis του LabVIEW to CCS Link Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος Pa ge & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η είσοδος Data που είναι ένας πίνακας από ακέραιους αριθµούς χωρίς πρόσηµο των 8 bits, θα εγγραφεί στην µνήµη του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number. Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το MEM_Write_A_UI2.vi Το subvi MEM_Write_A_UI2.vi που φαίνεται στο Σχήµα 97 γράφει ένα πίνακα που αποτελείται από ακέραιους αριθµούς χωρίς πρόσηµο των 16 bits (2 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης. CCS_Event_Notif_In CCS In Timeout Page & Address error in Data CCS_Event_Notif_Out CCS Out error out Σχήµα 97 Το MEM_Write_A_UI2.vi

113 LabVIEW to CCS Link 109 Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η είσοδος Data που είναι ένας πίνακας από ακέραιους αριθµούς χωρίς πρόσηµο των 16 bits, θα εγγραφεί στην µνήµη του DSP ξεκινώντας από την θέση µνήµης που καθορίζει η είσοδος Page & Number. Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το

114 Περιγραφή των subvis του LabVIEW to CCS Link ME M_ Write_A_UI4.vi Το subvi MEM_Write_A_UI4.vi που φαίνεται στο Σχήµα 98 γράφει ένα πίνακα που αποτελείται από ακέραιους αριθµούς χωρίς πρόσηµο των 32 bits (8 bytes) ξεκινώντας από την σελίδα και την διεύθυνση µνήµης του DSP που δείχνει η είσοδος Page & Address µε απευθείας προσπέλαση της µνήµης. CCS_Event_Notif_In CCS In Timeout Page & Address error in Data CCS_Event_Notif_Out CCS Out error out Σχήµα 98 Το MEM_Write_A_UI4.vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η εγγραφή. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η εγγραφή δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Page & Address είναι µια οµάδα που παρέχει πληροφορίες για την σελίδα και την διεύθυνση στην µνήµη του DSP που θα γίνει η εγγραφή. Η είσοδος Page & Address αποτελείται από τα παρακάτω στοιχεία: Η είσοδος Page που είναι ένας ακέραιος αριθµός των 16 bits, δείχνει την σελίδα της µνήµης του DSP. Η είσοδος Address που είναι ένας ακέραιος αριθµός χωρίς πρόσηµο σε δεκαεξαδική αναπαράσταση, δείχνει την διεύθυνση στην µνήµη του DSP. Η είσ οδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η είσοδος Data που είναι ένας πίνακας από ακέραιους αριθµούς χωρίς πρόσηµο των 32 bits, θα εγγραφεί στην µνήµη του DSP ξεκινώντας από την θέση µ νήµης που καθορίζει η είσοδος Page & Number.

115 LabVIEW to CCS Link 111 Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το Leds_Read_(DSK6713).vi Το subvi Leds_Read_(DSK6713).vi που φαίνεται στο Σχήµα 99 επιστρέφει στην έξοδο Le ds_ Value, σε δεκαδική αναπαράσταση, την κατάσταση των τεσσάρων φωτοδιόδων (leds) του αναπτυξιακού DSK C6713 της Spectrum Digital που είναι βασισµένο στον TMS320C6713 DSP της Texas Instruments. Η κατάσταση των τεσσάρων φωτοδιόδων εκφράζεται ως ένας δυαδικός αριθµός των τεσσάρων ψηφίων, όπου κάθε ένα ψηφίο αντιστοιχεί σε µια φωτοδίοδο. Το πλέον σηµαντικό ψηφίο αντιστοιχεί στην φωτοδίοδο 3 και το ελάχιστα σηµαντικό ψηφίο αντιστοιχεί στην φωτοδίοδο 0. Κάθε φωτοδίοδος θεωρείται ότι έχει την τιµή 1όταν φωτοβολεί διαφορετικά θεωρείται ότι έχει τιµή 0. Εποµένως η έξοδος Leds_Value παίρνει τιµές από 0 έως 15. Αν η τιµή της εξόδου Leds_ Value, σε δεκαδική αναπαράσταση, είναι 10 συνεπάγεται ότι µόνο οι φωτοδί οδοι 1 και 3 φωτοβολούν. CCS_Event_Notif_In CCS In Timeout error in CCS_Event_Notif_Out CCS Out Leds_Value error out Σχήµα 99. Το Leds_Read_(DSK6713).vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση της κατάστασης των φωτοδιόδων. Στην περίπτωση που περάσει α υτό το χρονικό διάστηµ α και δεν έχει ολοκληρωθεί η ανάγνωση της κατάστασης των φωτοδιόδων δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec).

116 Περιγραφή των subvis του LabVIEW to CCS Link Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Leds_Value είναι ένας ακέραιος αριθµός χωρίς πρόσηµο των 8 bits που δείχνει την κατάσταση των φωτοδιόδων του DSK C6713 σε δεκαδική αναπαράσταση. Η έξοδος Leds_Value παίρνει τιµές από 0 έως 15. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το Leds_Write_(DSK6713).vi Το subvi Leds_Write_(DSK6713).vi που φαίνεται στο Σχήµα 100 αλλάζει την κατάσταση των τεσσάρων φωτοδιόδων (leds) του DSKC6713 σύµφωνα µε την τιµή της εισόδου Leds_Value. Η είσοδος Leds_Value παίρνει τιµές από 0 έως 15. Η κατάσταση των τεσσάρων φωτοδιόδων εκφράζεται ως ένας δυαδικός αριθµός των τεσσάρων ψηφίων, όπου κάθε ψηφίο αντιστοιχεί σε µια φωτοδίοδο. Το πλέον σηµαντικό ψηφίο αντιστοιχεί στην φωτοδίοδο 3 και το ελάχιστα σηµαντικό ψηφίο αντιστοιχεί στην φωτοδίοδο 0. Κάθε φωτοδίοδος θεωρείται ότι έχει την τιµή 1όταν φωτοβολεί διαφορετικά θεωρείται ότι έχει τιµή 0. Αν η τιµή της εισόδου Leds_Value, σε δεκαδική αναπαράσταση, γίνει 12 το Leds_Write_(DSK6713) θα αλλάξει την κατάσταση των φωτοδιόδων ώστε να ανάψουν µόνο οι φωτοδίοδοι 2 και 3 ανεξάρτητα από την προηγούµενη κατάστασή τους. CCS_Event_Notif_In CCS In Timeout Leds_Value error in CCS_Event_Notif_Out CCS Out error out Σχήµα 100. Το Leds_Write_(DSK6713).vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS.

117 LabVIEW to CCS Link 113 Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η αλλαγή της κατάστασης των φωτοδιόδων. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η αλλαγή της κατάστασης των φωτοδιόδων δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος Leds_Value είναι ένας ακέραιος αριθµός χωρίς πρόσηµο των 8 bits που καθορίζει την νέα κατάσταση των φωτοδιόδων του DSK C6713 σε δεκαδική αναπαράσταση. Η είσοδος Leds_Value παίρνει τιµές από 0 έως 15. Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το Switches_Read_(DSK6713).vi Το subvi Switches_Read_(DSK6713).vi που φαίνεται στο Σχήµα 101 επιστρέφει στην έ ξοδο Switches_Value, σε δεκαδική αναπαράσταση, την κατάσταση των τεσσάρων διακοπτών του αναπτυξιακού DSK C6713 Η κατάσταση των τεσσάρων διακοπτών εκφράζεται ως ένας δυαδικός αριθµός των τεσσάρων ψηφίων, όπου κάθε ένα ψηφίο αντιστοιχεί σε ένα διακόπτη. Το πλέον σηµαντικό ψηφίο αντιστοιχεί στον διακόπτη 3 και το ελάχιστα σηµαντικό ψηφίο αντιστοιχεί στον διακόπτη 0. Κάθε διακόπτης θεωρείται ότι έχει την τιµή 1όταν είναι ανοικτός (κατάσταση OFF) διαφορετικά θεωρείται ότι έχει τιµή 0. Εποµένως η έξοδος Switches_Value παίρνει τιµ ές από 0 έως 15. Αν η τιµή της εξόδου Switches_Value, σε δεκαδική αναπαράσταση,

118 Περιγραφή των subvis του LabVIEW to CCS Link είναι 5 συνεπάγεται ότι οι διακόπτες 0 και 2 είναι ανοικτοί ενώ οι διακόπτες 1 και 3 είναι κλειστοί. CCS_Event_Notif_In CCS_Event_Notif_Out CCS In CCS Out Timeout Switches_Value error in error out Σχήµα 101. Το Switches_Read_(DSK6713).vi Η είσοδος CCS_Event_Notif_In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η είσοδος CCS In είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η είσοδος Timeout που είναι ακέραιος των 32 bits, καθορίζει το µέγιστο χρονικό διάστηµα σε msec, από την στιγµή που ξεκίνησε η εκτέλεση του συγκεκριµένου VI µέχρι να ολοκληρωθεί η ανάγνωση της κατάστασης των διακοπτών. Στην περίπτωση που περάσει αυτό το χρονικό διάστηµα και δεν έχει ολοκληρωθεί η ανάγνωση της κατάστασης των διακοπτών, δηµιουργείται ένα Επειδή πολλές διαδικασίες που σχετίζονται µε το CCS και την επικοινωνία µε την κάρτα εξαρτώνται από τον υπολογιστή που διαθέτει o χρήστης µπορεί σε ορισµένες περιπτώσεις να πρέπει να αυξηθεί η τιµή της εισόδου Timeout. Η προκαθορισµένη τιµή της είναι 10 sec (10000 msec). Η είσοδος error in είναι µια οµάδα (Cluster) εισόδων που περιγράφει το σφάλµα που πιθανόν να προέκυψε πριν την εκτέλεση του συγκεκριµένου VI. Τα στοιχεία από τα οποία αποτελείται η είσοδος error in είναι: Η είσοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η είσοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η είσοδος source είναι τύπου String και περιγράφει το Η έξοδος CCS_Event_Notif_Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε τα γεγονότα που µπορεί να συµβούν στο CCS. Η έξοδος CCS Out είναι µια οµάδα που περιέχει πληροφορίες σχετικές µε το CCS. Η έξοδος Switches_Value είναι ένας ακέραιος αριθµός χωρίς πρόσηµο των 8 bits που δείχνει την κατάσταση των διακοπτών του DSK C6713 σε δεκαδική αναπαράσταση. Η έξοδος Switches_Value παίρνει τιµές από 0 έως 15. Η έξοδος error out είναι µια οµάδα εξόδων που περιέχει την πληροφορία των σφαλµάτων. Τα στοιχεία από τα οποία αποτελείται η έξοδος error out είναι: Η έξοδος status είναι Boolean τύπου και δείχνει αν προέκυψε κάποιο Η έξοδος code είναι ένας ακέραιος των 32 bits που δείχνει τον κώδικα του Η έξοδος source είναι τύπου String και περιγράφει το

119 LabVIEW to CCS Link Χρησιµοποιώντας του LabVIEW to CCS Link Με το LabVIEW και το LabVIEW to CCS Link ο χρήστης µπορεί να δηµιουργήσει εύκολα και γρήγορα VIs που θα ελέγχουν και θα επικοινωνούν µε εφαρµογές για DSPs.Θα πρέπει να γίνει σαφές ότι τα VIs που δηµιουργούνται µε το LabVIEW και το LabVIEW to CCS Link δεν δηµιουργούν κώδικα για τον DSP αλλά επικοινωνούν και ελέγχουν εφαρµογές µε DSPs. Εποµένως πρώτα θα πρέπει να αναπτυχθεί η αντίστοιχη εφαρµογή µε το Code Composer Studio και στην συνέχει να δηµιουργηθεί το VI που θα την διαχειρίζεται. Σε αυτό το σηµείο δίνεται έµφαση στον τρόπο δηµιουργίας ενός VI που θα ελέγχει µια εφαρµογή. Στις παραγράφους που ακολουθούν γίνεται µια προσπάθεια να κατανοηθεί ο τρόπος που µ πορούν να χρησιµοποιηθούν τα subvis που περιλαµβάνει το LabVIEW to CCS Link σύµ φωνα µε την κατηγορία που ανήκουν και τις δυνατότητες που έχουν. 3.1 Ρύθµιση του CCS Τα subvis της κατηγορίας Ρύθµιση του CCS που παρουσιάστηκαν παραπάνω, δίνουν την δυνατότητα στον χρήστη να καθορίσει προγραµµατιστικά, µέσα από ένα VI, την κάρτα ή τον DSP που θα χρησιµοποιήσει το CCS. Στην πραγµατικότητα τα subvis αυτής της κατηγορίας ελέγχουν το CCStudio Setup. Στην συνέχεια θα παρουσιαστεί ο τρόπος που µπορεί κάποιος να καθορίσει την ύπαρξη ενός ή περισσότερων DSPs µέσα από ένα VI Ρύθµιση του CCS για την χρησιµοποίηση µιας κάρτας Για να µπορέσει κάποιος να δηµιουργήσει ένα VI που θα ρυθµίσει το CCS ώστε να χρησιµοποιήσει το DSKC6713 αρχικά θα πρέπει να σκεφτεί ένα προς ένα τα βήµατα που θα έκανε χρησιµοποιώντας το CCStudio Setup χειροκίνητα. Τα βήµατα που θα έκανε κάποιος χειροκίνητα για να καθορίσει την ύπαρξη του DSKC6713 είναι: Να ανοίξει το CCStudio Setup Να σβήσει τις προ ηγούµ ενες ρυθµ ίσεις Να επιλέξει και να προσθέσει την κάρτα που επιθυµεί, στην συγκεκριµένη περίπτωση το DSKC6713, είτε χρησιµοποιώντας το παράθυρο Available Boards είτε εισάγοντας το αρχείο των οδηγών της κάρτας ή του εξοµοιοωτή (αρχείο µε επέκταση.ccs) επιλέγοντας File Import και δίνοντας την διαδροµή και το όνοµα του αρχείου. Να αποθηκεύσει τις ρυθµίσεις που έκανε. Τέλος να κλείσει το CCStudio Setup. Όλα τα παραπάνω βήµατα µπορούν να υλοποιηθούν προγραµµατιστικά µε το LabVIEW αξιοποιώντας τα subvis που περιέχει η κατηγορία Ρύθµιση του CCS, του LabVIEW to CCS Link. Εποµένως σε ένα κενό VI του LabVIEW ο χρήστης θα πρέπει να τοποθετήσει τα subvis της παραπάνω κατηγορίας που αντιστοιχούν στα βήµατα που θα έκανε χειροκίνητα. Η επιλογή των κατάλληλων subvis γίνεται µε το παρακάτω σκεπτικό: Το 1 o βήµα ήταν να ανοίξει το CCStudio Setup αυτό το αναλαµβάνει το CCSetup_ Open.vi.

120 Χρησιµοποιώντας του LabVIEW to CCS Link Το 2 o βήµα ήταν να σβήσει τις προηγούµενες ρυθµίσεις του CCStudio Setup αυτό το αναλαµβάνει το CCSetup_Clear.vi. Το 3 o βήµα ήταν να επιλεγεί και να προστεθεί η κάρτα αυτό το αναλαµβάνει το CCSetup_Add_Board.vi. Το 4 o βήµα είναι να αποθηκευτούν οι ρυθµίσεις αυτό το αναλαµβάνει το CCSetup_Save.vi. Το 5 o βήµα είναι να κλείσει το CCSetup Studio αυτό το αναλαµβάνει το CCSetup_Close.vi. Εφόσον τοποθετηθούν παραπάνω subvis στο κενό VI, ο χρήστης θα πρέπει να τα συνδέσει µεταξύ τους και να προσθέσει τους απαραίτητους ελεγκτές (controls), ενδείκτες (indicators) και σταθερές (constants) ώστε να µπορέσει να λειτουργήσει το VI. Θα πρέπει να σηµειωθεί ότι οι είσοδοι των subvis που µένουν ασύνδετες παίρνουν τις προκαθορισµένες τιµές τους. Στο Σχήµα 102 παρουσιάζεται η τελική µορφή του block diagram του VI που καθορίζει µέσω του CCStudio Setup την ύπαρξη του DSKC6713. Σχήµα 102. Το block diagram του VI που καθορίζει την ύπαρξη του DSKC6713. Η Boolean σταθερά µε τιµή False που συνδέθηκε στην είσοδο Visible του CCSetup_ Open.vi καθορίζει ότι το CCStudio Setup θα ανοίξει αλλά δεν θα είναι ορατό στον χρήστη. Ο ελεγκτής error in που συνδέθηκε στην αντίστοιχη είσοδο του CCSetup_Open.vi είναι προαιρετικός αφού έχει αξία αν το συγκεκριµένο VI χρησιµοποιηθεί ως subvi. Η σταθερά Driver Path περιέχει την πλήρη διαδροµή του αρχείου των οδηγών του DSKC6713. Αν το CCS έχει εγκατασταθεί σε διαφορετική από την προκαθορισµ ένη διαδροµή τότε κατάλληλα θ α πρέπει να τροποποιηθεί το περιεχόµενο της σταθεράς Driver Path που συνδέεται στην αντίστοιχη είσοδο του CCSetup_Add_ Board.vi. Τέλος ο ενδείκτης error out θα ενηµερώσει τον χρήστη αν προέκυψε κάποιο σφάλµα κατά την εκτέλεση του VI. Σχήµα 103. Το παράθυρο του CCStudio Setup εφόσον εκτελεστεί το VI που καθορίζει την ύπαρξη του DSKC6713.

121 LabVIEW to CCS Link 117 Αν εκτελεστεί το παραπάνω VI και µετά ανοίξετε το CCStudio Setup θα παρατηρήσετε ότι έχει γίνει η ρύθµιση του CCS για την χρησιµοποίηση του DSKC6713, αφού το CCStudio Setup θα έχει την µορφή του Σχήµατος Ρύθµιση του CCS για την χρησιµοποίηση πολλαπλών καρτών Το CCS έχει την δυνατότητα να χρησιµοποιεί ταυτόχρονα περισσότερες από µια κάρτες ή συνδυασµό διαφόρων καρτών και ενός εξοµοιωτή. εν επιτρέπει την χρησιµοποίηση περισσότερων του ενός εξοµοιωτή. Ακολουθώντας την λογική που αναφέρθηκε στην παράγραφο δηµιουργήθηκε το VI µε όνοµα CCS_Setup_for_multiple_boards.vi του οποίου το block diagram παρουσιάζεται στ ο Σχήµα 104. Αυτό το VI καθορίζει την ταυτόχρονη ύπαρξη της κάρτας DSKC6713, της κάρτας DSKC6711 και του εξοµοιωτή C6713 Device Cycle Accurate Simulator. Επίσης αλλάζει το όνοµα της κάρτας DSKC6711 σε my_board και το όνοµα του επεξεργαστή της κάρτας DSKC6713 σε my_cpu. Σχήµα 104. Το block diagram του CCS_Setup_for_multiple_boards.vi To CCS_Setup_for_multiple_boards.vi αρχικά ανοίγει το CCStudio Setup που γίνεται ορατό στον χρήστη αφού η προκαθορισµένη τιµή της εισόδου Visible του CCSetup_Open.vi είναι True. Στην συνέχεια το CCSetup_Clear.vi σβήνει τις ρυθµίσεις που είχε το CCStudio Setup και το CCS_Setup_Add_Board.vi εισάγει την κάρτα που αντιστοιχεί στ ο αρχείο των οδηγών που δείχνει η σταθερά Driver Path. Η κάρτα που εισάγεται είναι το DS KC6713. Το CCSetup_Rename_Board.vi αλλάζει το όνοµα της κάρτας που εισάχθηκε (δηλαδή του DSKC6713) σε αυτό που περιέχει η σταθερά New Name δηλαδή σε my_board. Το CCS_Setup_Add_Board.vi χρησιµοποιείται ξανά για να εισαχθεί η κάρτα της οποίας η διαδροµή του αρχείου των οδηγών της καθορίζεται από την σταθερά Driver Path1. Η σταθερά Driver Path1 περιέχει την διαδροµή του αρχείου των οδηγών του DSKC6711 που χρησιµοποιεί την SPP378 διεύθυνση της παράλληλης θύρας εποµένως η κάρτα που εισάγεται τώρα είναι το DSKC6711. Το CCSetup_Rename_Processor.vi αλλάζει το όνοµα του επεξεργαστή της κάρτας που εισάχθηκε (δηλαδή του DSKC6711) σε αυτό που περιέχει η σταθερά ProcName δηλαδή σε my_cpu. Το CCS_Setup_Add_Board.vi που χρησιµοποιείται για µια ακόµα φορά, εισάγει τον εξοµοιωτή του οποίου η διαδροµή του αρχείου των οδηγών του καθορίζεται από την σταθερά Driver Path2. Η σταθερά Driver Path2 περιέχει την διαδροµή του αρχείου των οδηγών του C6713 Device Cycle Accurate Simulator εποµένως θα εισαχθεί ο εξοµοιωτής του TMS320C6713 DSP. Οι νέες ρυθµίσεις θα αποθηκευτούν µε την εκτέλεση του CCSetup_Save.vi. Τέλος η εκτέλεση του CCS_Setup_for_multiple_boards.vi ολοκληρώνεται µε το κλείσιµο του CCStudio Setup που προκαλεί το CCSetup_Close.vi.

122 Χρησιµοποιώντας του LabVIEW to CCS Link Με την ολοκλήρωση της εκτέλεσης του CCS_Setup_for_multiple_boards.vi οι ρυθµίσεις έχουν πλέον αποθηκευτεί και το CCS είναι έτοιµο να χρησιµοποιήσει το DSKC6713 µε το νέο του όνοµα, το DSKC6711 µε το νέο όνοµα του επεξεργαστή και τον εξοµοιωτή C6713 Device Cycle Accurate Simulator. Το CCStudio Setup θα έχει πλέον την µορφή του Σχήµατος 105. Σχήµα 105. Το παράθυρο του CCStudio Setup µετά την εκτέλεση του CCS_Setup_for_multiple_boards.vi 3.2 Αυτοµατοποίηση του CCS Τα subvis της κατηγορίας Αυτοµατοποίηση του CCS που παρουσιάστηκαν παραπάνω, δίνουν την δυνατότητα στον χρήστη ελέγξει προγραµµατιστικά, µέσα από ένα VI, το Code Compose Studio και κατά επέκταση τον DSP. Στην συνέχεια θα παρουσιαστεί ο τρόπος που µ πορεί κάποιος δηµιουργήσει ένα VI που θα ελέγχει έναν ή περισσότερούς DSPs Αυτοµατοποίηση του CCS για τον έλεγχο ενός DSP Για να µπορέσει κάποιος να δηµιουργήσει ένα VI που ελέγξει έναν DSP της TI µέσω του CCS αρχικά θα πρέπει να σκεφτεί ένα προς ένα τα βήµατα που θα έκανε χρησιµοποιώντας το CCS χειροκίνητα. Τα βήµατα που θα έκανε κάποιος χειροκίνητα για να ελέγξει ένα DSP µέσω του CCS (εφόσον το project του CCS που θα χρησιµοποιηθεί έχει δηµιουργηθεί νωρίτερα) είναι: Να ανοίξει το CCS. Να ανοίξει το project που επιθυµεί στο CCS. Να κτίσει το project. Να δώσει εντολή στο CCS να συνδεθεί µε τον DSP. Να δώσει εντολή στον DSP να επανέλθει στην αρχική του κατάσταση (Reset). Να φορτώσει - κατεβάσει το πρόγραµµα (αρχείο µε επέκταση.out) στον DSP. Να ενεργοποιήσει την RTDX τεχνολογία αν το project που φόρτωσε την αξιοποιεί.

123 LabVIEW to CCS Link 119 Να δώσει εντολή στον DSP να ξεκινήσει την εκτέλεση του προγράµµατος. Εφόσον ο DSP ολοκληρωθεί η διαδικασία που επιθυµεί ο χρήστης, θα πρέπει να δοθεί εντολή στον DSP να σταµατήσει την εκτέλεση του προγράµµατος. Εφόσον έχει ενεργοποιηθεί η RTDX τεχνολογία θα πρέπει ο χρήστης να την απενεργοποιήσει. Να δώσει εντολή στο CCS να αποσυνδέσει την κάρτα. Να κλείσει το project που είχε ανοίξει στο CCS. Να κλείσει το CCS. Όλα τα παραπάνω βήµατα µπορούν να υλοποιηθούν προγραµµατιστικά µε το LabVIEW αξιοποιώντας τα subvis που περιέχει η κατηγορία Αυτοµατοποίηση του CCS, του LabVIEW to CCS Link. Εποµένως σε ένα κενό VI του LabVIEW ο χρήστης θα πρέπει να τοποθετήσει τα subvis της παραπάνω κατηγορίας που αντιστοιχούν στα βήµατα που θα έκανε χειροκίνητα. Η επιλογή των κατάλληλων subvis γίνεται µε το παρακάτω σκεπτικό: To 1 o βήµα ήταν να ανοίξει το CCS, αυτό το αναλαµβάνει το CCS_Open.vi. To 2 o βήµα ήταν να ανοιχτεί το επιθυµητό project στο CCS, αυτό το αναλαµβάνει το CCS_Open_Project.vi. Το 3 o βήµα ήταν να κτιστεί το συγκεκριµένο project, αυτό το αναλαµβάνει το CCS_Build_All.vi. Αν είναι ο χρήστης επιθυµεί να βλέπει και τα αποτελέσµατα του κτισίµατος στο VI που θα δηµιουργήσει θα πρέπει να χρησιµοποιήσει και το CCS_Build_ Result.vi Το 4 ο βήµα ήταν να συνδεθεί το CCS µε τον DSP, αυτό το αναλαµβάνει το CCS_ Connect.vi. Το 5 o βήµα ήταν να επανέλθει ο DSP στην αρχική του κατάσταση (Reset), αυτό το αναλαµβάνει το CCS_Reset.vi. Το 6 ο βήµα ήταν να φορτωθεί το πρόγραµµα (αρχείο µε επέκταση.out) στον DSP, αυτό το αναλαµβάνει το CCS_Download.vi. Το 7 ο βήµα ήταν η ενεργοποίηση της RTDX τεχνολογίας αυτό το αναλαµβάνει το CCS_RTDX_Enable.vi. Το 8 ο βήµα ήταν εκκίνηση της εκτέλεση του προγράµµατος από το DSP, αυτό το αναλαµβάνει το CCS_Run.vi. To 9 o βήµα ήταν το σταµάτηµα της εκτέλεσης του προγράµµατος από τον DSP, αυτό το αναλαµβάνει το CCS_Halt.vi. Το 10 ο βήµα ήταν η απενεργοποίηση της RTDX τεχνολογίας, αυτό το αναλαµβάνει το CCS_Disable_RTDX.vi. To 11 o βήµα ήταν η αποσύνδεση της κάρτας, αυτό το αναλαµβάνει το CCS_ Disconnect.vi. Το 12 ο βήµα ήταν το κλείσιµο του project, αυτό το αναλαµβάνει το CCS_Close_ Project.vi. To 13 o βήµα ήταν το κλείσιµο του CCS, αυτό το αναλαµβάνει το CCS_Close.vi. Εφόσον τοποθετηθούν παραπάνω subvis στο κενό VI, ο χρήστης θα πρέπει να τα συνδέσει µεταξύ τους και να προσθέσει τους απαραίτητους ελεγκτές (controls), ενδείκτες (indicators), σταθερές (constants) και δοµές (structures) ώστε να µπορέσει να λειτουργήσει το VI. Θα πρέπει να σηµειωθεί ότι οι είσοδοι των subvis που µένουν ασύνδετες παίρνουν τις προκαθορισµένες τιµές τους. Στο Σχήµα 106 παρουσιάζεται το block diagram ενός τυπικού VI που ελέγχει το CCS και κατά επέκταση έναν DSP.

124 Χρησιµοποιώντας του LabVIEW to CCS Link Σχήµα 106. Το block diagram ενός τυπικού VI που ελέγχει έναν DSP µέσω του CCS Στο τυπικό block diagram του Σχήµατος 106 η σταθερά Project Path που συνδέεται στην είσοδο Project Path In του CCS_Open_Project.vi θα πρέπει να περιέχει την πλήρη διαδροµή του project (αρχείο µε επέκταση.pjt) που πρόκειται να ανοιχτεί στο CCS. Ο ενδείκτης Build Result συνδέεται µε την έξοδο Build Result του CCS_Build_Result.vi και δείχνει το αποτέλεσµα του κτισίµατος του project. Μεταξύ του CCS_Run.vi και του CCS_Halt.vi παρεµβάλλεται µια δοµή While στην οποία θα πρέπει να τοποθετηθεί ο κυρίως κώδικας του VI. Ο κυρίως κώδικας θα πρέπει να πραγµατοποιεί την επεξεργασία και την µεταφορά των δεδοµένων από και προς τον DSP. Ο τρόπος µε τον οποίο ο κυρίως κώδικας µπορεί να ανταλλάξει δεδοµένα µε τον DSP θα παρουσιαστεί σε επόµενη παράγραφο. Η δοµή While όπως παρουσιάζεται στο Σχήµα 106, σταµατάει να εκτελείται αν προκύψει κάποιο σφάλµα ή αν ο ελεγκτής Stop πάρει την τιµή True. Όσο εκτελείται η δοµή While δεν µπορούν να εκτελεστούν τα subvis που την ακολουθούν, το γεγονός αυτό διασφαλίζει ότι ο DSP θα συνεχίσει την εκτέλεση του προγράµµατός του, µέχρι αυτό να ολοκληρωθεί ή µέχρι ο ελεγκτής Stop να πάρει την τιµή True. Θα πρέπει να τονιστεί αν το CCS έχει ρυθµιστεί για την χρησιµοποίηση κάποιου από τους εξοµοιωτές, δεν θα πρέπει στο block diagram να τοποθετηθούν τα CCS_Connect.vi και CCS_Disconnect.vi, αφού η δυναµική σύνδεση και αποσύνδεση έχει νόηµα µόνο για τις κάρτες και όχι για τους εξοµοιωτές. Αν το CCS έχει ρυθµιστεί για την χρησιµοποίηση κάποιας κάρτας τότε υποχρεωτικά πριν τ α subvis που σχετίζονται µε τον DSP όπως τα CCS_Run.vi, CCS_ Reset.vi κλπ. θα πρέπει να έχει τοποθετηθεί το CCS_Connect.vi ώστε να επιτευχθεί η σύνδεση του CCS µε την κάρτα. Επίσης πριν τα subvis που προκαλούν το κλείσιµο του project και του CCS και µ ετά από τα subvis που σχετίζονται µε τον DSP, θα πρέπει να τοποθετηθεί το CCS_ Disconnect.vi ώστε να αποσυνδεθεί η κάρτα από το CCS. Στην περίπτωση που το project του CCS δεν κάνει χρήση της RTDX τεχνολογίας είναι άσκοπη η χρήση και η τοποθέτηση των subvis που σχετίζονται µε την RTDX τεχνολογία όπως τα CCS_ RTDX_Enable.vi, CCS_RTDX_Disable.vi κλπ. Αν γίνεται χρήση της Non Continuous µεθόδους της RTDX τεχνολογίας θα µπορούσε να χρησιµοποιηθεί και το CCS_RTDX_Logfile_Configuration.vi εφόσον οι προκαθορισµένες ρυθµίσεις του logfile δεν ανταπεξέρχονται στις απαιτήσεις του χρήστη. εν έχει νόηµα η χρησιµοποίηση του CCS_RTDX_Logfile_Configuration.vi αν χρησιµοποιείται η Continuous µέθοδος της RTDX τεχνολογίας, αφού σε αυτή την περίπτωση δεν γίνεται χρήση του logfile. Η επιλογή της RTDX µεθόδου γίνεται από το CCS_RTDX_Enable.vi.

125 LabVIEW to CCS Link Αυτοµατοποίηση του CCS για τον έλεγχο περισσότερων του ενός DSP Το CCS έχει την δυνατότητα µέσω του Parallel Debug Manager (PDM) να διαχειριστεί ταυτόχρονα περισσότερες από µια κάρτες ή συνδυασµό καρτών και ενός εξοµοιωτή. Ο PDM εµφανίζεται µόνο όταν µέσω του CCStudio Setup έχει οριστεί η ύπαρξη τουλάχιστον δύο καρτών ή µιας κάρτας και ενός εξοµοιωτή. Στο Σχήµ α 107 παρουσιάζεται το παράθυρο του PDM όταν έχει οριστεί στο CCStudio Setup ότι θα χρησιµοποιηθούν τα DSK C6713 και C6711. Σχήµα 107. Το παράθυρο του Parallel Debug Manager Για την ταυτόχρονη διαχείριση των CPU που περιέχουν οι κάρτες, το CCS έχει την δυνατότητα να ανοίγει ένα Debug Window για κάθε µια CPU. Αυτό παρέχει την δυνατότητα στον χρήστη να προγραµµατίσει και να διαχειριστεί κάθε κάρτα ανεξάρτητα. Το LabVIEW to CCS Link µε τα subvis της κατηγορίας Αυτοµατοποίηση του CCS παρέχει την δυνατότητα στον χρήστη να ελέγχει διαφορετικά Debug Window εποµένως και διαφ ορετικές κάρτες. Το subvi CCS_Open_Project.vi σύµφωνα µε την τιµή της εισόδου του Boards & Processors, καθορίζει ποια κάρτα και ποιον επεξεργαστή της θα διαχειριστούν τα subvis που το ακολουθούν. Η είσοδος Boards & Processors είναι µια οµάδα εισόδων που αποτελείται από δύο εισόδους την Board και την Processor που δέχονται ακέραιους αριθµούς χωρίς πρόσηµο των 8 bits. Η είσοδος Board δηλώνει την κάρτα που θα ελεγχθεί και η είσοδος Processor δηλώνει τον επεξεργαστή της κάρτας που θα ελεγχθεί. Για να ανοίξει το Debug Window του DSK C6713 στην περίπτωση που ο PDM έχει την µορφή του Σχήµ ατος 107 θα πρέπει η είσοδος Boards να έχει την τιµή 1 και η είσοδος Processor να έχει την τιµή 0. Εποµένως η έξοδος CCS_Out του CCS_Open_Project.vi θα περιείχε ένα σύνολο πληροφοριών που θα σχετίζονταν µε το Debug Window του DSK C6713, συνεπώς όποια subvis θα συνδεθούν άµεσα ή έµµεσα µε αυτή την έξοδο θα αναφέρονται στο DSKC6713. Όµοια και η έξοδος CCS_Event_Notif_Out σύνολο πληροφοριών που σχετίζονται µε τα γεγονότα που συµβαίνουν στο Debug Window του DSK C6713. Τα subvis του LabVIEW to CCS Link µ πορούν να χρησιµοποιηθούν πολλές φορές µέσα σε ένα VI. Εποµένως ένα VI µπορεί να χρησιµοποιεί δύο ή περισσότερες φορές το CCS_Open_Project.vi µε σκοπό να ανοίξει περισσότερα από ένα Debug Windows. Θα πρέπει ο χρήστης, πριν συνδέσει κάποιο subvi µε µια έξοδο CCS_Out ή CCS_Event_Notif_Out, να προσέχει σε πιο Debug Window και κατά επέκταση σε ποια CPU αναφέρεται η συγκεκριµένη έξοδος. Στο Σχήµα 108 παρουσιάζεται το block diagram ενός VI που ελέγχει ταυτόχρονα δύο κάρτες. Οι κάρτες που θα διαχειριστεί το VI εξαρτάται από την µορφή που έχει ο PDM. Στην περίπτωση που ο PDΜ έχει την µορφή του Σχήµατος 107 το VI θα ελέγχει ταυτόχρονα τα DSK C6711 (Board 0) και C6713 (Board 1). Στο block diagram του Σχήµατος 108 το CCS_Open_Project.vi που δέχεται ως είσοδο την σταθερά Project Path ανοίγει το Debug Window για το DSK C6711 (Board 0) και φορτώνει το project, του οποίου η διαδροµή

126 Χρησιµοποιώντας του LabVIEW to CCS Link καθορίζεται από την σταθερά Project Path. Τα VIs που το ακολουθούν βασίζονται στην λογική που γίνεται η αυτοµατοποίηση και ο έλεγχος του CCS όταν χρησιµοποιείται µια κάρτα ό πως παρουσιάστηκε στην παράγραφο Το CCS_Open_Project.vi που δέχεται ως είσοδο την σταθερά Project Path1 ανοίγει το Debug Window του DSK C6713 (Board 1) και φορτώνει το project του οποίου την διαδροµή περιγράφει η σταθερά Project Path1 εποµένως τα VIs που το ακολουθούν αναφέρονται στο DSK C6713. Σχήµα 108. Το block diagram του VI που ελέγχει δύο DSPs µέσω του CCS Ακολουθώντας την λογική που παρουσιάστηκε παραπάνω µπορούν να δηµιουργηθούν εύκολα VIs που θα διαχειρίζονται ταυτόχρονα περισσότερες από µια κάρτες. 3.3 Επικοινωνία µε το CCS Για την ανταλλαγή δεδοµένων ενός VI και ενός DSP έχουν δηµιουργηθεί τα subvis της κατηγορίας Επικοινωνία µε το CCS. Τα subvis που ασχολούνται µε την επικοινωνία υποστηρίζουν την εγγραφή και ανάγνωση δεδοµένων στην µνήµη του DSP µε απευθείας προσπέλασή της και την ανταλλαγή δεδοµένων µε την αξιοποίηση της RTDX τεχνολογίας που υποστηρίζουν οι DSPs της TI. Τα subvis που αναλαµβάνουν την επικοινωνία µε το CCS και κατά επέκταση µε τον DSP, αποτελούν τµήµα του κυρίως κώδικα του VI που αυτοµατοποιεί το CCS όπως παρουσιάστηκε στην παράγραφο 3.2. ηλαδή τα subvis της κατηγορίας Επικοινωνία µε το CCS συνήθως τοποθετούνται µέσα στην δοµή While των Σχηµάτων 106 και 108 ώστε να διασφαλίζεται η συνεχή επικοινωνία µε το CCS και τον DSP. Η µεταφορά δεδοµένων µε απευθείας προσπέλαση της µνήµης του DSP έχει το πλεονέκτηµα ότι δεν απαιτεί την τροποποίηση του κώδικα ενός project στο CCS. Το µεγάλο µειονέκτηµα της µεταφοράς δεδοµένων µε απευθείας προσπέλαση της µνήµης είναι ότι ο DSP διακόπτει την εκτέλεση του προγράµµατος που εκτελεί, µέχρι να ολοκληρωθεί η µεταφορά των δεδοµένων. Το χρονικό διάστηµα της διακοπής της εκτέλεσης του προγράµµατος του DSP κατά την µεταφορά των δεδοµένων εξαρτάται από τον όγκο των δεδοµένων. Η TI µε την RTDX τεχνολογία που δηµιούργησε και που ενσωµάτωσε στους DSPs της κατάφερε να επιτύχει µεγαλύτερη ταχύτητα µεταφοράς δεδοµένων και να µην διακόπτει ο DSP την εκτέλεση του προγράµµατος, για µεγάλα χρονικά διαστήµατα, ώστε να ολοκληρωθεί η µεταφορά των δεδοµένων. Το µειονέκτηµα αυτής της µεθόδου είναι ότι απαιτείται η τροποποίηση του C κώδικα ενός project στο CCS που δεν υποστήριζε την µεταφορά

127 LabVIEW to CCS Link 123 δεδοµένων µε την RTDX τεχνολογία. Η µεταφορά δεδοµένων µε την RTDX τεχνολογία είναι πολύ χρήσιµη στις εφαρµογές πραγµατικού χρόνου Απευθείας προσπέλαση της µνήµης του DSP Η µεταφορά δεδοµένων µε απευθείας προσπέλαση της µνήµης του DSP δίνει την δυνατότητα στον χρήστη να µπορεί να διαβάσει και να γράψει δεδοµένα σε οποιαδήποτε θέση µνήµης του DSP. Αυτό είναι πολύ σηµαντικό για τον έλεγχο µιας υπάρχουσας εφαρµογής αφού δεν απαιτεί την τροποποίηση του κώδικα της εφαρµογής στο CCS, η µοναδική απαίτηση που υπάρχει είναι οι µεταβλητές του project που περιέχουν τα προς µεταφορά δεδοµένα να είναι γενικές (global). Ανάγνωση από την µνήµη του DSP Για να αναγνωστεί η τιµή µιας µεταβλητής τύπου double θα πρέπει να χρησιµοποιηθεί το MEM_Read.vi και να επιλεχτεί το MEM_Read_F8, στην είσοδο Page & Address θα πρέπει να δοθεί η σελ ίδα και η διεύθυνση στην µνήµη του DSP από όπου θα ξεκινήσει η ανάγνωση. Αν ο χρήστης δεν γνωρίζει την θέση µνήµης που είναι αποθηκευµένη η µ εταβλητή θα πρέπει να χρησιµοποιήσει το MEM_Get_Address.vi και να ορίσει στην είσοδο Symbol Name το όνοµα της µεταβλητής. Το MEM_Get_Address.vi θα επιστρέψει την σελίδα και την διεύθυνση στην µνήµη του DSP που είναι αποθηκευµένη η µεταβλητή. Η έξοδος Data του MEM_Read.vi θα περιέχει την τιµή της µεταβλητής που θα αναγνωστεί. Στο Σχήµα 109(a) παρουσιάζεται η δοµή While του Σχήµατος 106 όπως θα πρέπει να µ ετατραπεί ώστε να πραγµατοποιείτα ι η ανάγνωση της τιµής µιας µεταβλητής τύπου double (αριθµός κινητής υποδιαστολής διπλής ακρίβειας των 8 bytes) που βρίσκεται στην διεύθυνση 8000C1FD (hex) της σελίδας 0 της µνήµης του DSP (a) (b) Σχήµα 109. Ανάγνωση µιας µεταβλητής τύπου double µε απευθείας προσπέλαση της µνήµης του DSP (a) γνωρίζοντας την σελίδα και την διεύθυνση της, (b) γνωρίζοντας µόνο το όνοµα της Στο Σχήµα 109(b) παρουσιάζεται η δοµ ή While του Σχήµατος 106 όπως θα πρέπει να µετατραπεί ώστε να πραγµατοποιείται η ανάγνωση της τιµής µιας µεταβλητής τύπου double

128 Χρησιµοποιώντας του LabVIEW to CCS Link (αριθµός κινητής υποδιαστολής διπλής ακρίβειας των 8 bytes) συµφωνά µε την διεύθυνση και την σελίδα, της µνήµης του DSP που εντοπίζει το MEM_Get_Address.vi χρησιµοποιώντας το όνοµα της µεταβλητής. Με την διαδικασία που αναφέρθηκε παραπάνω µπορεί να πραγµατοποιηθεί η ανάγνωση των δεδοµένων µιας µεταβλητής οποιουδήποτε τύπου. Για να αναγνωστεί κάποιος πίνακας ή µια σειρά αλφαριθµητικών χαρακτήρων από την µνήµη του DSP ακολουθείται η διαδικασία που παρουσιάστηκε παραπάνω µε την διαφορά ότι στην είσοδο Size του MEM_Read.vi θα πρέπει να δοθεί το πλήθος των στοιχείων του πίνακα ή το πλήθος των αλφαριθµητικών χαρακτήρων της σειράς. Εγγραφή στην µνήµη του DSP Για να πραγµατοποιηθεί η εγγραφή δεδοµένων σε µια µεταβλητή τύπου integer (int) θα πρέπει να χρησιµοποιηθεί το MEM_Write.vi και να επιλεχτεί το MEM_Write_I4, στην είσοδο Page & Address θα πρέπει να δοθεί η σελίδα και η διεύθυνση στην µνήµη του DSP από όπου θα ξεκινήσει η εγγραφή. Αν ο χρήστης δεν γνωρίζει την θέση µνήµης που είναι αποθηκευµένη η µεταβλητή θα πρέπει να χρησιµοποιήσει το MEM_Get_ Address.vi και να ορίσει στην είσοδο Symbol Name το όνοµα της µεταβλητής. Το MEM_Get_Address.vi θα επιστρέψει την σελίδα και την διεύθυνση στην µνήµη του DSP που είναι αποθηκευµένη η µεταβλητή. Η είσοδος Data του MEM_Write.vi περιέχει τα δεδοµένα που θα εγγραφούν στην µεταβλητή. Στο Σχήµα 110(a) παρουσιάζεται η δοµή While του Σχήµατος 106 όπως θα πρέπει να µετατραπεί ώστε να πραγµατοποιείται η εγγραφή των δεδοµένων που περιέχει ο ελεγκτής Data σε µια µεταβλητή τύπου integer (ακέραιος αριθµός µε πρόσηµο των 4 bytes) που βρίσκεται στην διεύθυνση 8000FFE0 (hex) της σελίδας 0 της µνήµης του DSP. Στο Σχήµα 110(b) παρουσιάζεται η δοµή While του Σχήµατος 106 όπως θα πρέπει να µετατραπεί ώστε να πραγµατοποιείται η εγγραφή των δεδοµένων που περιέχει ο ελεγκτής Data σε µια µεταβλητής τύπου integer (ακέραιος αριθµός µε πρόσηµο των 4 bytes) συµφωνά µε την διεύθυνση και την σελίδα της µνήµης του DSP που εντοπίζει το MEM_Get_Address.vi χρησιµοποιώντας το όνοµα της µεταβλητής. (a) (b) Σχήµα 110. Εγγραφή µιας µεταβλητής τύπου integer µε απευθείας προσπέλαση της µνήµης του DSP (a) γνωρίζοντας την σελίδα και την διεύθυνση της, (b) γνωρίζοντας µόνο το όνοµα της

129 LabVIEW to CCS Link 125 Με την διαδικασία που αναφέρθηκε παραπάνω µπορεί να πραγµατοποιηθεί η εγγραφή δεδοµ ένων σε µια µεταβλητή οποιουδήποτε τύπου ή σε κάποιο πίνακα ή σε µια σειρά αλφαριθµητικών χαρακτήρων που είναι αποθηκευµένη στην µνήµη του DSP Χρήση της RTDX τεχνολογίας Η RTDX τεχνολογία που υποστηρίζουν οι DSPs της ΤΙ επιτυγχάνει την ταχύτερη µεταφορά των δεδοµένων σε σχέση µε την απευθείας προσπέλαση της µνήµης. Επίσης η RTDX τεχνολογία επιτρέπει την µεταφορά δεδοµένων από και προς των DSP χωρίς την διακοπή της εκτέλεσης του προγράµµατος του DSP για µεγάλα χρονικά διαστήµατα. Εποµένως στις εφαρµογές πραγµατικού χρόνου γίνεται απαραίτητη η χρήση της RTDX τεχνολογίας κυρίως για την µεταφορά δεοµένων µεγάλου όγκου. Με τα subvis που ανήκουν στην κατηγορία Επικοινωνία µε το CCS δίνεται η δυνατότητα στον χρήστη να µεταφέρει δεδοµένα από και προς τον DSP αξιοποιώντας την RTDX τεχνολογία καθώς και να ελέγξει προγραµµατιστικά τα RTDX κανάλια. Στην συνέχεια θα παρουσιαστεί ο τρόπος που µπορούν να παραληφθούν και να αποσταλούν δεδοµένα µέσω των RTDX καναλιών ανεξάρτητα µε την µέθοδο (Continuous ή Non Continuous) της RTDX τεχνολογίας που χρησιµοποιείται. Λήψη δεδοµένων µέσω ενός RTDX καναλιού. Τα RTDX κανάλια που δηλώνονται στο CCS ορίζονται ως κανάλια εισόδου και κανάλια εξόδου. Τα κανάλια εισόδου µεταφέρουν δεδοµένα στον DSP ενώ τα κανάλια εξόδου µεταφέρουν δεδοµένα από τον DSP. Τα δεδοµένα ενός RTDX καναλιού εξόδου θα αναγνωστούν από το LabVIEW µε την χρήση του RTDX_Read.vi. Το RTDX_Read.vi είναι ένα πολυµορφικό VI το οποίο έχει την δυνατότητα να διαβάσει αριθµούς και πίνακες όλων των τύπων από το κανάλι εξόδου που περιγράφει η είσοδος Channel. Επειδή τα RTDX κανάλια δεν είναι αµφίδροµα θα πρέπει το κανάλι που περιγράφει η είσοδος Channel να έχει οριστεί στο CCS ως κανάλι εξόδου διαφορετικά θα προκύψει κάποιο Σχήµα 111. Ανάγνωση δεδοµένων από ένα RTDX κανάλι

130 Χρησιµοποιώντας του LabVIEW to CCS Link Για να αναγνωστεί ένας πίνακας µε στοιχεία τύπου float (αριθµοί κινητής υποδιαστολής µονής ακρίβειας των 4 bytes) από ένα κανάλι εξόδου µε όνοµα Out_chan θα πρέπει να χρησιµοποιηθεί το RTDX_Read.vi και να επιλεχτεί RTDX_Read_SA_F4. Στην είσοδο Channel θα πρέπει να συνδεθεί µια σταθερά ή ένας ελεγκτής που θα περιέχει το όνοµα του καναλιού εξόδου (δηλαδή Out_chan) που µεταφέρει τον πίνακα. Στο Σχήµα 111 παρουσιάζεται η δοµή While του Σχήµατος 106 όπως θα πρέπει να µ ετατραπεί ώστε να πραγµατοποιείται η ανάγνωση των δεδοµένων που περιέχει το RTDX κανάλι Out_chan. Αποστολή δεδοµένων µέσω ενός RTDX καναλιού Τα RTDX κανάλια εισόδου µεταφέρουν δεδοµένα στον DSP. Με την χρήση του RTDX_Write.vi είναι εφικτή η εγγραφή δεδοµένων από το LabVIEW σε ένα RTDX κανάλι Το RTDX_Write.vi είναι ένα πολυµορφικό VI το οποίο έχει την δυνατότητα να γράψει αριθµούς και πίνακες όλων των τύπων στο κανάλι εξόδου που περιγράφει η είσοδος Channel. Επειδή τα RTDX κανάλια δεν είναι αµφίδροµα θα πρέπει το κανάλι που περιγράφει η είσοδος Channel να έχει οριστεί στο CCS ως κανάλι εξόδου διαφορετικά θα προκύψει κάποιο Για να εγγραφεί ένας πίνακας µε στοιχεία τύπου unsigned short (ακέραιοι αριθµοί χωρίς πρόσηµο των 2 bytes) σε ένα κανάλι εισόδου µε όνοµα In_chan θα πρέπει να χρησιµοποιηθεί το RTDX_Write.vi και να επιλεχτεί RTDX_Write_SA_UI2. Στην είσοδο Channel θα πρέπει να συνδεθεί µια σταθερά ή ένας ελεγκτής που θα περιέχει το όνοµα του καναλιού εισόδου (δηλαδή In_chan) που θα µεταφέρει τον πίνακα. Στο Σχήµα 112 παρουσιάζεται η δοµή While του Σχήµατος 106 όπως θα πρέπει να µετατραπεί ώστε να πραγµατοποιείται η εγγραφή των δεδοµένων που περιέχει ο ελεγκτής Data στο RTDX κανάλι In_chan. Σχήµα 112.Εγγραφή δεδοµένων σε ένα RTDX κανάλι

131 LabVIEW to CCS Link Εφαρµογές Για την καλύτερη κατανόηση των δυνατοτήτων του LabVIEW to CCS Link θα παρουσιαστεί η ανάπτυξη δύο ολοκληρωµένων εφαρµογών, ενός γραφικού ισοσταθµιστή τριών περιοχών και µιας εφαρµογής ψηφιακής επεξεργασίας εικόνας. Οι εφαρµογές έχουν υλοποιηθεί µε το CCS και το DSKC6713. Ο έλεγχος και η ανάδειξη των αποτελεσµάτων κάθε εφαρµογής πραγµατοποιείται από το αντίστοιχο VI, που έχει δηµιουργηθεί µε το LabVIEW αξιοποιώντας τις δυνατότητες που προσφέρει το LabVIEW to CCS Link. 4.1 Γραφικός ισοσταθµιστής τριών περιοχών Στις παραγράφους που ακολουθούν θα γίνει µια γενική αναφορά στους γραφικούς ισοσταθµιστές και θα παρουσιαστεί συνοπτικά ο σχεδιασµός και η υλοποίηση ενός γραφικού ισοσταθµιστή τριών περιοχών µε το MATLAB και το CCS. Έµφαση θα δοθεί στην δηµιουργία του VI που θα ελέγχει και θα αναδεικνύει τα αποτελέσµατα του γραφικού ισοσταθµιστή Γενικά για τους γραφικούς ισοσταθµ ιστές Η διαδικασία της ισοστάθµισης ενός σήµατος συνίσταται στην ενίσχυση και στην εξασθένιση ορισµένων περιοχών συχνοτήτων του σήµατος. Η διαδικασία της ισοστάθµισης είναι χρήσιµη στις περιπτώσεις που ορισµένες περιοχές συχνοτήτων που έχουν εξασθενίσει σε σχέση µε τις υπόλοιπες και πρέπει να ενισχυθούν (όπως συµβαίνει στην µετάδοση ενός ακουστικ ού σήµατος σε µεγάλες αποστάσεις µ έσω καλωδίου, όπου εξασθενούν οι υψηλές συχνότητες). Επίσης, ισοσταθµιστές χρησιµοποιούνται και για την αντίστροφη διαδικασία, δηλαδή την εξασθένιση ορισµένων περιοχών συχνοτήτων ώστε να αναδειχθούν οι υπόλοιπες περιοχές. Οι ισοσταθµιστές χρησιµοποιούνται σχεδόν σε όλα τα σύγχρονα συστήµατα αναπαραγωγής ήχου, ώστε ο ήχος να έχει την χροιά που επιθυµεί ο εκάστοτε χρήστης. Οι γραφικοί ισοσταθµ ιστές επιτυγχάνουν την διαίρεση του φάσµατος ε νός σήµατος σε διάφορες περιοχές συχνοτήτων χρησιµοπ οιώντας ένα σύνολο από ζωνοδιαβατά φίλτρα. Ένα ιδανικό ζωνοδιαβατό φίλτρο, επιτρέπει τη διέλευση των συχνοτήτων που βρίσκονται γύρω από µια κεντρική συχνότητα, ενώ αποκόπτει πλήρως τις υπόλοιπες συχνότητες. Στην πράξη, Σχήµα 113. Απόκριση συχνότητας ζωνοδιαβατού φίλτρου

132 Εφαρµογές δεν είναι δυνατόν να υλοποιηθεί ένα τέτοιο ιδανικό φίλτρο. Η απόκριση των φίλτρων που χρησιµοποιούνται σε ένα γραφικό ισοσταθµιστή παρουσιάζεται στο Σχήµα 113. Ο παράγοντας Q κάθε φίλτρου ορίζεται ως ο λόγος της κεντρικής του συχνότητας ω 0 προς το εύρος ζώνης του, ω=ω2-ω 1, και δίνεται από την σχέση: ω0 ω0 Q = = (1) ω ω2 ω1 Ο παράγοντας Q δείχνει πόσο απότοµη είναι η απόκριση του φίλτρου. Χρησιµοποιώντας Ν ζωνοδιαβατά φίλτρα, το φάσµα των συχνοτήτων του σήµατος χωρίζεται σε Ν περιοχές. Τα φίλτρα αυτά είναι συνδεδεµένα παράλληλα, όπως φαίνεται στο Σχήµα 114. Η έξοδος του ισοσταθµιστή είναι το άθροισµα των εξόδων των φίλτρων. Η ενίσχυση ή η εξασθένιση κάθε περιοχής συχνοτήτων επιτυγχάνεται πολλαπλασιάζοντας την έξοδο του αντίστοιχου φίλτρου µε έναν παράγοντα κέρδους G (Gain). Στην περίπτωση που ο παράγοντας αυτός είναι µεγαλύτερος από τη µονάδα, η συγκεκριµένη περιοχή συχνοτήτων ενισχύεται, διαφορετικά (G<1) εξασθενεί. Η κεντρική συχνότητα κάθε φίλτρου αλλά και το πλήθος των φίλτρων, εξαρτάται από την εφαρµογή του ισοσταθµιστή αλλά και από την συχνότητα δειγµατοληψίας του σήµατος (στην περίπτωση που αυτό είναι ψηφιακό). Gain 0 Filter 1 Gain 1 A/D Filter 2 Gain 2 D/A Filter 3 Gain 3 Filter N Gain N Σχήµα 114. Ψηφιακός ισοσταθµιστής Ν περιοχών Συνήθως οι κεντρικές συχνότητες δύο διαδοχικών φίλτρων διαφέρουν κατά µια οκτάβα (το ένα έχει διπλάσια κεντρική συχνότητα από το άλλο). Για τα ακουστικά σήµατα (όπου χρησιµοποιούνται κατά κόρον οι ισοσταθµιστές) χρησιµοποιούνται συνήθως δέκα φίλτρα (δέκα περιοχές συχνοτήτων) των οποίων οι κεντρικές συχνότητες ξεκινούν από τα 31 Hz και φτάνουν στα 16 khz. Στο Σχήµα 115 παρουσιάζονται οι αποκρίσεις των δέκα ζωνοδιαβατών φίλτρων ενός τέτοιου ισοσταθµ ιστή. Τα φίλτρα αυτά είναι IIR φίλτρα 2 ης τάξης. Όπως φαίνεται και από το Σχήµα 115, υπάρχει αλληλοεπικάλυψη στις αποκρίσεις των φίλτρων επειδή δεν είναι ιδανικά. Εποµένως, όταν η έξοδος ενός φίλτρου ενισχύεται, δεν ενισχύονται µ όνο οι συχνότητες που βρίσκονται γύρω από την κεντρική συχνότητα του φίλτρου, αλλά και όλες οι υπόλοιπες συχνότητες. Η διαφορά είναι ότι οι συχνότητες αυτές (εκτός της ζώνης δ ιάβασης) έχουν ήδη υποστεί µια υποβάθµιση από το φίλτρο και οπότε στο ακουστικό αποτέλεσµα φαίνεται να ενισχύονται µόνο οι συχνότητες της ζώνης διάβασης. Ακόµα, λόγω της µη ιδανικότητας των φίλτρων, όταν όλοι οι παράγοντες κέρδους είναι 1, η ολική α πόκριση συχνότητας του ισοσταθµιστή δεν είναι επίπεδη, όπως θα περίµενε κανείς.

133 LabVIEW to CCS Link 129 Σχήµα 115. Αποκρίσεις φίλτρων ισοσταθµιστή 10 περιοχών Τα ζωνοδιαβατά φίλτρα ενός ισοσταθµιστή συνήθως είναι IIR επειδή για την υλοποίησή τους απαιτούνται λιγότεροι συντελεστές σε σχέση µε τα αντίστοιχα FIR φίλτρα. Επιπλέον συνήθως είναι δεύτερης τάξης, δηλαδή αποτελούνται από µόνο ένα biquad (Σχήµα 116), µε αποτέλεσµα να απαιτούνται µόνο 5 πολλαπλασιασµοί και 2 αθροίσεις για κάθε φίλτρο. Η εξίσωση µεταφοράς ενός τέτοιου biquad είναι: 1 2 b0 + b1 z ( ) + b2 z H i z = a (2) 1z a2z Η χρησιµοποίηση των IIR φίλτρων 2 ης τάξης έχει ως αποτέλεσµα την µείωση του χρόνου που απαιτείται για την παραγωγή των δειγµάτων του σήµατος εξόδου από τον επεξεργαστή. x(n) b0 y(n) -1 z -a1 b1 z-1 -a2 b2 Σχήµα 116. Βαθµίδα 2 ης τάξης (biquad)

134 Εφαρµογές Προδιαγραφές Ο γραφικός ισοσταθµιστή των τριών περιοχών που θα υλοποιηθεί στην συνέχεια αποτελείται από τρία IIR φίλτρα 2 ης τάξης. Οι προδιαγραφές των τριών φίλτρων παρουσιάζονται στον Πίνακα 12. Είδος φίλτρου Βαθυπερατό (Low-Pass) Butterworth Υψηπερατό (High-Pass) Butterworth Ζωνοδιαβατό (Band-Pass) Butterworth Τάξη του φίλτρου Μέθοδος σχεδιασµού 2 ης ιγραµµικός µετασχηµατισµός 2 ης ιγρα µ µικός µετασχηµατισµός 2 ης ιγραµµικός µετασχηµ ατισµός Συχνότητα δειγµατοληψίας Fs = 48 khz Ζώνη διέλευσης < 5.5 khz Fs = 48 khz khz Fs = 48 khz > 11 khz Πίνακας 12. Οι προδιαγραφές του γραφικού ισοσταθµιστή των τριών περιοχών Ο γραφικός ισοσταθµιστής θα δέχεται ένα υποθετικό σήµα που θα δηµιουργηθεί µε το MATLAB από την σύνθεση τριών ηµιτόνων µε συχνότητες 200Hz, 7kHz και 14kHz αντίστοιχα. Το υποθετικό σήµα θα χρησιµοποιηθεί για τον έλεγχο του ισοσταθµιστή µε το MATLAB και την σύγκριση των αποτελεσµάτων µε αυτά που θα προκύψουν από την υλοποίηση του ισοσταθµιστή µε το CCS. Ο έλεγχος του ισοσταθµιστή που θα υλοποιηθεί µε το CCS για το DSKC6713, θα γίνεται µέσω ενός VI που θα δηµιουργηθεί µε το LabVIEW αξιοποιώντας τις δυνατότητες του LabVIEW to CCS Link. Η επικοινωνία του VI µε το CCS και το DSKC6713 θα πραγµατοποιηθεί κάνοντας χρήση της RTDX τεχνολογίας Σχεδίαση και έλεγχος του γραφικού ισοσταθµιστή µε το MATLAB Η σχεδίαση του ισοσταθµιστή µε το MATLAB περιλαµβάνει κυρίως τον υπολογισµό των συντελεστών των φίλτρων σύµφωνα µε τις προδιαγραφές που έχουν δοθεί. Ο έλεγχος του ισοσταθµιστή θα πραγµατοποιηθεί µε ένα υποθετικό σήµα που θα δηµιουργηθεί στο MATLAB. Υπολογισµός των συντελεστών των φίλτρων. Για τον υπολογισµό των συντελεστών των IIR φίλτρων που περιλαµβάνει ο ισ οσταθµιστής έχει δηµιουργηθεί το παρακάτω m-file. clear all; close all; n=1; fs = 48000; %Ο αριθµός των Biquads για κάθε ένα φίλτρο %Συχνότητα δειγµατοληψίας %Αρχικοποίηση του πίνακα των συντελεστών scoefs = zeros(3*n,6);

135 LabVIEW to CCS Link 131 %Όρια αξόνων nxmin = 10; nxmax = fs/2; nymin = -50; nymax = 10; %log scale %log scale %Υπολογισµός και αναπαράσταση του βαθυπερατού φίλτρου [b,a]=butter(2*n,2*5500/fs); scoefs(1:n,:)= tf2sos(b,a); [h,w]=freqz(b,a,fs/2,fs); figure semilogx(20*log10(abs(h))) axis([nxmin nxmax nymin nymax]) %Υπολογισµός και αναπαράσταση του ζωνοδιαβατού φίλτρου [b,a]=butter(n,[2*5500/fs 2*11000/fs]); scoefs((n+1):2*n,:) = tf2sos(b,a); [h,w]=freqz(b,a,fs/2,fs); hold on semilogx(20*log10(abs(h))) %Υπολογισµός και αναπαράσταση του υψηπερατού φίλτρου [b,a]=butter(2*n,2*11000/fs,'high'); scoefs((2*n+1):3*n,:) = tf2sos(b,a); [h,w]=freqz(b,a,fs/2,fs); hold on semilogx(20*log10(abs(h))); title('frequency response (db)') coefs(:,1) = -scoefs(:,5); % -a1 coefs(:,2) = -scoefs(:,6); % -a2 coefs(:,3) = scoefs(:,1); % b0 coefs(:,4) = scoefs(:,2); % b1 coefs(:,5) = scoefs(:,3); % b2 %Αποθήκευση των συντελεστών των φίλτρων σε ένα.cof αρχείο save_equ_coefs(coefs,n); Πρόγραµµα 1. To m-file που υπολογίζει τους συντελεστές των IIR φίλτρων του ισοσταθµιστή Στο παραπάνω m-file καλείται η συνάρτηση save_equ_coefs() η οποία αποθηκεύει τους συντελεστές των φίλτρων σε ένα.cof αρχείο µε όνοµα που επιθυµ εί ο χρήστης. Στην συνέχεια παρουσιάζεται η συνάρτηση save_equ_coefs(). function save_equ_coefs(coefs,sos); [filename,pathname,filterindex]=uiputfile('*.cof','save the equalizer cofficients'); if (filterindex ~= 0 ) fid=fopen([pathname,filename],'w'); fprintf(fid,'/* Equalizer coefficients in float format */\r\n'); fprintf(fid,'\r\n#define sections %d \r\n',sos);

136 Εφαρµογές for i=1:1:size(coefs,1)/sos fprintf(fid,'\r\nfloat coefs%d[%d] = \r\n',i-1,5*sos); fprintf(fid,'{\r\n'); for j=1:1:sos fprintf(fid,'\t%6d\t,\t%6d\t,\t%6d\t,\t%6d\t,\t%6d,\t\r\n',... coefs((i-1)*sos+j,1),coefs((i-1)*sos+j,2),coefs((i-1)*sos+j,3),... coefs((i-1)*sos+j,4),coefs((i-1)*sos+j,5)); end fprintf(fid,';\r\n'); end fclose(fid); end Πρόγραµµα 2. Η συνάρτηση save_equ_coefs() Όταν εκτελεστεί το παραπάνω m-file (Πρόγραµµα 1) θα εµφανιστεί ένα παράθυρο διαλόγου που θα ζητήσει το όνοµα του αρχείου που θα δηµιουργήσει και θα περιέχει τους συντελεστές των φίλτρων. Αν στο αρχείο των συντελεστών των φίλτρων του ισοσταθµιστή δοθεί το όνοµα equalizer.cof. θα πάρει την µορφή του Σχήµατος 117. Επίσης το m-file θα σχεδιάσει την απόκριση των φίλτρων του ισοσταθµιστή (Σχήµα 118). Σχήµα 117. Το αρχείο των συντελεστών των φίλτρων του ισοσταθµιστή µε όνοµα equalizer.cof Σχήµα 118. Η απόκριση των φίλτρων του ισοσταθµιστή

137 LabVIEW to CCS Link 133 Από το Σχήµα 118 συµπεραίνεται ότι τα φίλτρα του ισοσταθµιστή πληρούν τις προδιαγραφές. ηµιουργία του υποθετικού σήµατος Για τον έλεγχο της λειτουργίας του ισοσταθµιστή θα χρησιµοποιηθεί ένα υποθετικό σ ήµα που θα αποτελείται από τρία ηµίτονα µε συχνότητες 200Hz, 7kHz και 14kHz αντίστοιχα. Η συχνότητα δειγµατοληψίας του υποθετικού σήµατος θα είναι 48kHz. Το m-file που παρουσιάζεται στην συνέχεια δηµιουργεί το υποθετικό σήµα, αναπαριστά το σήµα, υπολογίζει και αναπαριστά τον FFT 512 σηµείων του σήµατος. Τέλος αποθηκεύει σε ένα αρχείο µε επέκταση.h, 512 σηµεία του σήµατος για να χρησιµοποιηθεί για τον έλεγχο του ισοσταθµιστή µε το CCS. close all; clear all; f1=200; f2=7000; f3=14000; %Οι συχνότητες των ηµιτόνων fs = 48000; %Συχνότητα δειγµατοληψίας % ηµιουργία του υποθετικού σήµατος t = 0:1/fs:1; x1 = sin(2*pi*t*f1); x2 = sin(2*pi*t*f2); x3 = sin(2*pi*t*f3); xtot = (x1 + x2 +x3)/3; xs = xtot(1:512); xq = round(xs*(2^15-1)); %Αναπαράσταση του σήµατος figure(1) plot(xq) axis([ inf inf]) %Υπολογισµός και αναπαράσταση του FFT y = abs(fft(xq)); figure(2) plot(y) axis([ inf inf]) %Αποθήκευση του σήµατος save_signal(xq) Πρόγραµµα 3. Το m-file που δηµιουργεί το υποθετικό σήµα Για την αποθήκευση των 512 σηµείων του υποθετικού σήµατος στο αρχείο.h µε όνοµα που επιλέγει ο χρήστης από το παράθυρο διαλόγου που θα εµφανιστεί χρησιµοποιείται η συνάρτηση save_signal(). Η συνάρτηση save_signal() παρουσιάζεται στην συνέχεια (Πρόγραµµα 4).

138 Εφαρµογές function save_signal(data); [filename,pathname,filterindex]=uiputfile('*.h','save the signal'); if (filterindex ~= 0 ) fid=fopen([pathname,filename],'w'); signal_size = length(data); fprintf(fid,'/* Signal data*/\r\n'); fprin tf(fid,'\r\nshort signal[%d] = \r\n',signal_size); fprintf(fid,'{\r\n'); for i=1:(signal_size) fprintf(fid,'\t%6d,\r\n', data(i)); end fprintf(fid,';\r\n'); fclose(fid); end Πρόγραµµα 4. Η συνάρτηση save_signal() Όταν εκτελεστεί το παραπάνω m-file (Πρόγραµµα 3) θα εµφανιστεί ένα παράθυρο διαλόγου που θα ζητήσει το όνοµα τ ου αρχείου που θα δηµιουργήσει και θα περιέχει τα 512 σηµεία του υποθετικού σήµατος. Αν σε αυτό το αρχείο δοθεί το όνοµα signal_200_7k_14k.h. θα πάρει την µορφή του Σχήµατος 119. Σχήµα 119. Το αρχείο signal_200_7k_14k.h που περιέχει τα 512 σηµεία του υποθετικού σήµατος Το υποθετικό σήµα που θα δηµιουργήσει το m-file παρουσιάζεται στο Σχήµα 120. Ο FFT 512 σ ηµείων του υποθετικού σήµατος παρουσιάζεται στο Σχήµα 121 από το οποίο διαπιστώνεται ό τι πρά γµατι το σήµα που δηµιουργήθηκε περιέχει τρεις συχνότητες (200Hz, 7kHz και 14kH z)

139 LabVIEW to CCS Link 135 Σχήµα 120. Το υποθετικό σήµα Σχήµα 121. Ο FFT 512 σηµείων του υποθετικού σήµατος Αποτελέσµατα του ισοσταθµιστή µε το MATLAB Το m-file που παρουσιάζεται παρακάτω υπολογίζει και αναπαριστά την έξοδο κάθε φίλτρο υ του ισοσταθµιστή όταν ως είσοδο δοθεί το σήµα του Σχήµατος 120. close all; clear all; f1=200; f2=7000; f3=14000; %Οι συχνότητες των ηµιτόνων fs= 48000; %Συχνότητα δειγµατοληψίας % ηµιουργία του υποθετικού σήµατος t = 0:1/fs:10; x1 = sin(2*pi*t*f1); x2 = s in(2*pi*t*f2); x3 = s in(2*pi*t*f3); xtot = round(((x1 + x2 +x3)/3)*(2^15-1)); xs = xtot(1:(10*fs)); xs1= xtot(1:512); %Φιλτράρισµα µε το βαθυπερατό φίλτρο [b,a]=butter(2,2*5500/fs); y1=filter(b,a,xs1); figure; plot(y1);

140 Εφαρµογές %Φιλτράρισµα µε το ζωνοδιαβατό φίλτρο [b,a]=butter(1,[2*5500/fs 2*11000/fs]); y2=filter(b,a,xs1); figure; plot(y2); %Φιλτράρισµα µε το υψηπερατό φίλτρο [b,a]=butter(2,2*11000/fs,'high'); y3=filter(b,a,xs1); figure; plot(y3); Πρόγραµµα 5. Το m-file που υπολογίζει την έξοδο των φίλτρων Οι έξοδοι των φίλτρων του ισοσταθµιστή παρουσιάζονται στα Σχήµατα 122, 123 και 124 αντιστοιχούν στην έξοδο του ισοσταθµιστή όταν η ενίσχυση της περιοχής συχνοτήτων του κάθε φίλτρου είναι 1 ενώ η ενίσχυση των υπόλοιπων περιοχών είναι 0 Σχήµα 122. Η έξοδος του βαθυπερατού φίλτρου Σχήµα 123. Η έξοδος του ζωνοδιαβατού φίλτρου Σχήµα 124. Η έξοδος του υψηπερατού φίλτρου

141 LabVIEW to CCS Link Υλοποίηση του γραφικού ισοσταθµιστή µε το CCS Ο γραφικός ισοσταθµιστής που θα υλοποιηθεί µε το CCS για το DSKC6713 θα δέχεται ως είσοδο το υποθετικό σήµα που δηµιουργήθηκε στην παράγραφο Το υποθετικό σήµα χρησιµοποιείται για να είναι εφικτή η σύγκριση των αποτελεσµάτων του ισοσταθµιστή µε αυτά που προέκυψαν από το MATLAB ώστε για να αποδειχτεί η ορθή λειτουργία του. Επίσης µε την χρήση του υποθετικού σήµατος γίνεται πιο κατανοητή η λειτουργία του ισοσταθµιστή στον χρήστη φοιτητή. Στην συνέχεια παρουσιάζεται ο C κώδικας του αρχείου sim_equ3_rtdx.c που υλοποιεί τον γραφικό ισοσταθµιστή των τριών περιοχών. // Includes #include <rtdx.h> #include "target.h" #include "equalizer.cof" #include "signal_200_7k_14k.h" // Defines RTDX target API calls // Defines TARGET_INITIALIZE() // Filters coefficients // Input signal // Defines #define sgain #define S 512 // Compensates for the out sample shifting // Length of input signal // Global variables float f0_dly[2*sections] = {0.0; float f1_dly[2*sections] = {0.0; float f2_dly[2*sections] = {0.0; // 1st filter delay line // 2nd filter delay line // 3rd filter delay line short gains[3] = {0, 0, 0; int fsignal[s]; // Functions float iir_cas5(float input, float *c, float *d, int n) { float k0; float temp; int i; temp = input; for (i=0; i<n; i++) { k0 = temp + c[5*i+1]*(d[2*i+1]) + c[5*i+0]*(d[2*i+0]); temp = c[5*i+4]*(d[2*i+1]) + c[5*i+3]*(d[2*i+0]) + (c[5*i+2]*k0); d[2*i+1] = d[2*i+0]; d[2*i+0] = k0; return temp*sgain;

142 Εφαρµογές //Defines RTDX channels RTDX_CreateOutputChannel( signal_chan ); RTDX_CreateOutputChannel( fsignal_chan ); RTDX_CreateInputChannel( gains_chan ); // Main void main() { float input_sample; int j; int data_out[3]; int data_sum; TARGET_INITIALIZE(); RTDX_enableInput(&gains_chan); RTDX_enableOutput(&fsignal_chan); RTDX_enableOutput(&signal_chan); fsignal[0]=0; while(1) { RTDX_read( &gains_chan, gains, sizeof(gains)); for (j=1; j<s; j++) { input_sample = (float)(signal[j]/10); data_out[0] = (int)(gains[0]*iir_cas5(input_sample, coefs0, f0_dly, sections)); data_out[1] = (int)(gains[1]*iir_cas5(input_sample, coefs1, f1_dly, sections)); data_out[2] = (int)(gains[2]*iir_cas5(input_sample, coefs2, f2_dly, sections)); data_sum = data_out[0] + data_out[1] + data_out[2]; fsignal[j] =(int)(((data_sum)>>15)); RTDX_write( &signal_chan, signal, sizeof(signal) ); RTDX_write( &fsignal_chan, fsignal, sizeof(fsignal) ); Πρόγραµµα 5. Ο C κώδικας του αρχείου sim_equ3_rtdx.c Στο πρόγραµµα 5 αρχικά συµπεριλαµβάνονται τα αρχεία rtdx.h, target.h, equalizer.cof και signal_200_7k_ 14k.h. Το αρχείο rtdx.h περιέχει τις δηλώσεις των συναρτήσεων που σχετίζονται µε την RTDX τεχνολογία. Το αρχείο target.h περιλαµβάνει την δήλωση της

143 LabVIEW to CCS Link 139 συνάρτησης TARGET_INITIALIZE() η οποία αρχικοποιεί τον DSP και ενεργοποιεί τις διακοπές ώστε να ενεργοποιηθεί η RTDX τεχνολογία. Το αρχείο equalizer.cof περιέχει τους συντελεστές των φίλτρων του ισοσταθµιστή όπως υπολογίστηκαν από το MATLAB. Το αρχείο signal_200_7k_14k.h δηµιουργήθηκε µε το MATLAB και περιέχει το σήµα των τριών συχνοτήτων που θα χρησιµοποιηθεί ως είσοδος του ισοσταθµιστή. Πριν από την δήλωση της συνάρτησης main() ορίζονται τα RTDX κανάλια που θα µεταφέρουν πληροφορία από και προς τον DSP. Το κανάλι gains_chan µεταφέρει στον DSP ένα πίνακα τριών αριθµών που εκφράζει την ενίσχυση κάθε περιοχής συχνοτήτων. Τα κανάλια fsignal_chan και signal_chan µεταφέρουν στο VI που θα ελέγχει τον DSP το σήµα εξόδου και το σήµα εισόδου του ισοσταθµιστή. Στην συνάρτηση main() αρχικά γίνεται η αρχικοποίηση του DSP, η ενεργοποίηση της RTDX τεχνολογίας και η ενεργοποίηση των RTDX καναλιών. Μέσα στην δοµή while αφού αναγνωστεί το περιεχόµενο του καναλιού gains_chan υπολογίζεται για κάθε δείγµα του σήµατος εισόδου η έξοδος των φίλτρων του ισοσταθµιστή µε την κλήση της συνάρτησης iir_cas5(). Οι έξοδοι των φίλτρων αφού ενισχυθούν κατάλληλα προστίθενται ώστε να υπολογιστεί το αντίστοιχο δείγµα του σήµατος εξόδου του ισοσταθµιστή. Εφόσον υπολογιστούν 512 δείγµατα του σήµατος εξόδου γίνεται η εγγραφή των 512 δειγµάτων του σήµατος εξόδου και εισόδου στα αντίστοιχα RTDX κανάλια. Το project που θα δηµιουργηθεί για την υλοποίηση του ισοσταθµιστή µε το CCS εκτός από το αρχείο sim_equ3_rtdx.c που παρουσιάστηκε παραπάνω πρέπει να περιέχει και τα αρχεία intvecs.asm, rtdx_buf.c και rtdx.cmd. Στο αρχείο rtdx_buf.c ορίζεται το µέγεθος του buffer που θα χρησιµοποιήσει ο DSP για την µεταφορά των δεδοµένων αξιοποιώντας την RTDX τεχνολογία. Στην συγκεκριµένη περίπτωση το µέγεθος αυτού του buffer θα πρέπει να είναι µεγαλύτερο από 512*4 + 8 =2056 bytes. Τα αρχεία intvecs.asm, rtdx_buf.c και rtdx.cmd έχουν δηµιουργηθεί από την TI και περιλαµβάνονται στο CCS. Επίσης στο project θα πρέπει να προστεθούν και οι βιβλιοθήκες rtdx.lib (ή rtdxsim.lib αν θα χρησιµοποιηθεί ο εξοµοιωτής) και rts6701.lib. Στο Σχήµα 125 παρουσιάζεται το View Window του project στο CCS. Σχήµα 125. Το View Window του CCS για το project του ισοσταθµιστή

144 Εφαρµογές Υλοποίηση ενός VI για τον έλεγχο του γραφικού ισοσταθµιστή Για τον έλεγχο του γραφικού ισοσταθµιστεί έχει υλοποιηθεί ένα VI µε όνοµα Equalizer.vi. Αυτό το VI αυτόµατα ρυθµίζει ελέγχει και επικοινωνεί µε το CCS µε αποτέλεσµα να παρέχει την δυνατότητα στον χρήστη να µεταβάλλει την ενίσχυση κάθε περιοχής συχνοτήτων χωρίς να διακόπτεται η λειτουργία του ισοσταθµιστή. Επίσης ο χρήστης µπορεί ανά πάσα στιγµή να παρατηρεί την είσοδο και την έξοδο του ισοσταθµιστή. Το front panel του Equalizer.vi Στο Σχήµα 126 παρουσιάζεται το front panel του Equalizer.vi που ελέγχει τον ισοσταθµιστή. Σχήµα 126. Το front panel του Equalizer.vi που ελέγχει τον γραφικό ισοσταθµιστή Στο front panel του Equalizer.vi υπάρχουν τρεις sliders µε ο νόµατα Low_pass, Band_pass και High_pass που καθορίζουν την ενίσχυση της αντίστοιχης περιοχής συχνοτήτων. Ακριβώς κάτω από τους sliders έχει τοποθετηθεί ένας πίνακας µε τρία στοιχεία που ονοµάζεται gains. Κάθε στοιχείο του πίνακα gains αντιστοιχεί στην τιµή ενός slider. Κάτω από κάθε slider έχει τοποθετηθεί ένα Radio Button που όταν επιλεχθεί θα µηδενίζει την τιµή του αντίστοιχου slider και θα τον απενεργοποιεί Τα ονόµατα των Radio Buttons είναι Low_pass_mute, Band_pass_mute και High_pass_mute. Το κουµπί Stop όταν πατηθεί τερµατίζει την λειτουργία του VI. Ο ενδείκτης (indicator) Build Result δείχνει το αποτέλεσµα του κτισίµατος του project στο CCS. Ο ενδείκτης Input_signal απεικονίζει το σ ήµα εισόδου του ισοσταθµιστή, ο ενδείκτης Output_signal απεικονίζει το σήµα εξόδου του ισοσταθµιστή. Ο ενδείκτης Output & Input signals απεικονίζει ταυτόχρονα το σήµα εισόδου (µε πράσινο χρώµα) και το σήµα εξόδου (µε κόκκινο χρώµα).

145 LabVIEW to CCS Link 141 Το block diagram του Equalizer.vi Tο block diagram του Equalizer.vi που παρουσιάζεται στο Σχήµα 127 έχει χωριστεί σε τέσσερις φάσεις ώστε να γίνει περισσότερο κατανοητή η λειτουργία του. Σχήµα 127. Το block diagram του Equalizer.vi Στην πρώτη φάση του block diagram του Equalizer.vi που παρουσιάζεται στο Σχήµα 128 γίνεται η ρύθµιση του CCS ώστε να χρησιµοποιηθεί το DSKC6713. Σχήµα 128. Η πρώτη φάση του block diagram του Equalizer.vi To subvi CCS_ Setup_Open.vi φορτώνει το CCStudio Setup χωρίς να γίνεται ορατό στον χρήστη επειδή στην είσοδο Visible του subvi έχει συνδεθεί µια Boolean σταθερά µε τιµή False. To CCS_Setup_ Clear.vi σβήνει τις προηγούµενες ρυθµίσεις του CCStudio Setup. Το CCS_Setup_Add_ Board.vi φορτώνει στο CCStudio Setup τους οδηγούς του DSKC6713 σύµφωνα µε την διαδροµή που δηλώνει η σταθερά Path αφού συνδέεται µε την είσοδο Driver Path του subvi. Το CCS_Setup_Save.vi αποθηκεύει τις ρυθµίσεις που επιλέχτηκαν και το CCS_ Setup_Close.vi κλείνει το CCStudio Setup.vi. Στο σηµείο αυτό έχει ολοκληρωθεί η πρώτη φάση του block diagram του Equalizer.vi. Εποµένως µε την ολοκλήρωση της πρώτης φάσης το CCS έχει ρυθµιστεί για την χρησιµοποίηση του DSKC6713. Στην δεύτερη φάση του block diagram του Equalizer.vi που παρουσιάζεται στο Σχήµα 129 αυτοµατοποιούνται οι ενέργειες που πρέπει να γίνουν ώστε το DSKC6713 να ξεκινήσει την εκτέλεση του προγράµµατος (δηλαδή του ισοσταθµιστή).

146 Εφαρµογές Σχήµα 129. Η δεύτερη φάση του block diagram του Equalizer.vi Το Equalizer.vi πρέπει να έχει αποθηκευτεί στο φάκελο που έχει αποθηκευτεί το project του CCS (αρχείο µε επέκταση.pjt) ώστε να υπολογιστεί σωστά η διαδροµή του project. Η διαδροµή του project υπολογίζεται σε σχέση µε την διαδροµή που έχει αποθηκευτεί το Equalizer.vi. Το Current VI s Path.vi εξάγει την διαδροµή του Equalizer.vi που δίνεται ως είσοδος στο Strip Path.vi. Η έξοδος stripped path του Strip Path.vi περιέχει την διαδροµή που δόθηκε ως είσοδος χωρίς το τελευταίο µέρος της. ηλαδή αν η διαδροµή του Equalizer.vi ήταν C:\dsp_applications\DSKC6713\ sim_equ3_rtdx\equalizer.vi τότε η έξοδος striped path του Strip Path.vi θα περιείχε την διαδροµή C:\dsp_applications\DSKC6713\ sim_equ3_rtdx. Η έξοδος striped path του Strip Path.vi συνδέεται µε την είσοδο Base Path του Build Path.vi. Στην είσοδο name or relative path του Build path.vi συνδέεται η string σταθερά project name που περιέχει το όνοµα του project στο CCS δηλαδή το sim_equ3_rtdx.pjt. Το Build Path.vi στην έξοδο appended path εξάγει µια νέα διαδροµή η οποία αποτελείται από το περιεχόµενο της εισόδου Base Path και το περιεχόµενο της εισόδου name or relative path. Αν το περιεχόµενο της εισόδου Base Path είναι C:\dsp_applications\DSKC6713\ sim_equ3_rtdx τότε το περιεχόµενο της εξόδου appended path θα είναι το C:\dsp_applications\DSKC6713\ sim_equ3_rtdx\ sim_equ3_rtdx.pjt. Η έξοδος appended path του Build Path.vi µετατρέπεται σε string χρησιµοποιώντας το Path to String.vi. Η έξοδος του Path to String.vi συνδέεται µε την είσοδο Project Path IN του CCS_Open_Project.vi. Με τον τρόπο αυτό το CCS_Open_Project.vi παίρνει την είσοδο του project του CCS εφόσον το Equalizer.vi έχει αποθηκευτεί στον ίδιο φάκελο µε το project του CCS. Αυτή η τακτική ακολουθείται σε VIs που χρησιµοποιούν διαδροµές αρχείων ώστε να µπορούν να µεταφέρονται σε διαφορετικούς υπολογιστές χωρίς τροποποιήσεις. Το CCS_Open.vi φορτώνει το CCS και το CCS_Open_Project.vi φορτώνει το project του CCS σύµφωνα µε την διαδροµή που περιέχει η είσοδός Project Path In. Το CCS_Connect.vi δίνει εντολή στο CCS να συνδεθεί µε την κάρτα δηλαδή µε το DSKC6713. Το CCS_DSP_Reset.vi δίνει εντολή να επανέλθει η κάρτα στις αρχικές τις ρυθµίσεις. Το CCS_Build.vi δίνει εντολή στο CCS να κτίσει το project που φορτώθηκε ώστε να δηµ ιουργήσει το εκτελέσιµο αρχείο (αρχείο µε επέκταση.out). Όταν ολοκληρωθεί το κτίσιµο του project το CCS_Build_Result.vi εξάγει το αποτέλεσµα του κτισίµατος στον ενδείκτη Build Resu lt. Εφόσον δεν έχουν προκύψει λάθη κατά το κτίσιµο το CCS_Download.vi δίνει εντολή στο CCS να φορτώσει τον εκτελέσιµ ο κώδικα στον DSP. Επειδή το project κάνει χρήση της RTDX τεχνολογίας χρησιµοποιείται το CCS_RTDX_Enable.vi που ρυθµίζει της π αραµέτρους της και την ενεργοποιεί. Η οµάδα σταθερών RTDX Settings που συνδέεται µε την αντίστοιχη είσοδο του CCS_RTDX_Enable.vi και περιέχει τις ρυθµίσεις που σχετίζονται µε την RTDX τεχνολογία. Η σταθερά Buffer Size καθορίζει το µέγεθος του host buffer που θα χρησιµοποιηθεί και θα είναι 2056 bytes, η σταθερά Num Of Buffers καθορίζει το πλήθος των host buffers που θα είναι 4 και η σταθερά Mode καθορίζει την RTDX µέθοδο

147 LabVIEW to CCS Link 143 που θα χρησιµοποιηθεί και θα είναι η Non Continuous. Τέλος η δεύτερη φάση του block diagram ολοκληρώνεται µε το CCS_Run.vi το οποίο µέσω του CCS, δίνει εντολή στον DSP να ξεκινήσει την εκτέλεση του προγράµµατος. Η τρίτη φάση του block diagram του Equalizer.vi που παρουσιάζεται στο Σχήµα 130 αποτελεί τον κυρίως κώδικα του VI. Η τρίτη φάση στην πραγµατικότητα είναι το περιεχόµενο της δοµής While που επιτρέπει την συνεχή επικοινωνία του VI µε τον DSP µέχρι να προκύψει κάποιο σφάλµα ή να πιέσει ο χρήστης το κουµ πί Stop. Σχήµα 130. Η τρίτη φάση του block diagram του Equalizer.vi Τα τερµατικά εικον ίδια (terminals) των sliders Low_pass, Band_pass και High_pass συνδέονται στο Build Array.vi που δηµιουργεί ένα πίνακα (πίνακας των sliders) µ ε τρία στοιχεία. Το πρώτο στοιχείο του πίνακα περιέχει την τιµή του slider Low_pass, το δεύτερο στοιχείο του πίνακα περιέχει την τιµή του slider Band_pass και το τρίτο στοιχείο του πίνακα περιέχει την τιµή του slider High_pass. Τα Radio Buttons Low_pass_mute, Band_pass_mute και High_pass_mute όταν έχουν τιµή True (δηλαδή έχουν επιλεχθεί στο front panel από τον χρήστη) θα πρέπει να προκαλούν τον µηδενισµό της τιµής του αντίστοιχου slider στον πίνακα των sliders και την απενεργοποίηση του αντίστοιχου slider. Όταν τα Radio Buttons έχουν τιµή False (δεν έχουν επιλεχθεί) δεν πρέπει να προκαλούν την αλλαγή της τιµής του αντίστοιχου slider στον πίνακα των sliders ενώ πρέπει να προκαλούν την ενεργοποίηση του αντίστοιχου slider αν είναι απενεργοποιηµένος. Επειδή η λειτουργία των Radio Buttons είναι ίδια θα αναλυθεί η λειτουργία του Radio Button Low_pass_mute.

148 Εφαρµογές Το Low_pass_mute συνδέεται µε την είσοδο ελέγχου της αντίστοιχης δοµής Case που παρουσιάζεται στο Σχήµα 131. Όταν η τιµή του Low_pass_mute είναι True (δηλαδή έχει επιλεχτεί από τον χρήστης στο front panel) θα εκτελεστεί η περίπτωση True της δοµής Case στην οποία το πρώτο στοιχείο του πίνακα των sliders που αντιστοιχεί στον slider Low_pass θα πάρει την τιµή 0 και η ιδιότητα Disabled του slider θα πάρει την τιµή 2. Η τιµή του στοιχείου του πίνακα των sliders αλλάζει µε την χρησιµοποίηση του Replace Array Subset.vi. Όταν η τιµή του Low_pass_mute είναι False (δηλαδή δεν έχει επιλεχτεί) θα εκτελεστεί η περίπτωση False της δοµής Case στην οποία o πίνακας των sliders δεν επηρεάζεται και η ιδιότητα Disabled του slider Low_pass θα πάρει την τιµή 0. Η ιδιότητα Disabled των sliders καθορίζει αν θα ενεργοποιηθεί ή αν θα απενεργοποιηθεί ο αντίστοιχος slider. Αν η ιδιότητα Disabled πάρει την τιµή 0 θα ενεργοποιηθεί ο αντίστοιχος slider ενώ αν πάρει την τιµή 2 θα απενεργοποιηθεί και θα γίνει γκρίζος. Με αυτόν τον τρόπο επιτυγχάνεται η λειτουργία του Radio Button Low_pass_mute µε τον ίδιο τρόπο επιτυγχάνεται και η λειτουργία των υπόλοιπων Radio Buttons. (a) (b) Σχήµα 131. οµή case που ελέγχεται από το Low_pass_mute (a) περίπτωση True (b) περίπτωση False Ο ενδείκτης gains αναπαριστά τον πίνακα των sliders έχοντας ληφθεί υπόψη οι τιµές των Radio Buttons. Ο πίνακας των sliders αφού πολλαπλασιαστεί µε την σταθερά δέκα χρησιµοποιώντας το Multiply.vi µετατρέπεται σε πίνακα µε στοιχεία που είναι ακέραιοι αριθµοί µε πρόσηµο των 2 bytes (16 bits) χρησιµοποιώντας το To Word Integer.vi. Η έξοδος του To Word Integer.vi πλέον περιέχει τα δεδοµένα που θα µεταφερθούν στον DSP και αναπαριστούν την ενίσχυση κάθε περιοχής συχνοτήτων του ισοσταθµιστή. Η µεταφορά των δεδοµένων από το VI στον DSP και αντίστροφα πραγµατοποιείται στην Flat Sequence δοµή. Στο πρώτο Frame της δοµής έχει τοποθετηθεί το RTDX_Write.vi στο οποίο έχει επιλεχτεί το RTDX_Write_SA_I2 που επιτρέπει την αποστολή πινάκων που αποτελούνται από ακέραιους αριθµούς µε πρόσηµο των 2bytes. Στην είσοδο Data του R TDX_Write.vi συνδέεται η έξοδος του To Word Integer.vi που περιέχει τα προς αποστολή δεδοµένα. Η string σταθερά Channel που συνδέεται στο RTDX_Write.vi δηλώνει ότι για την µεταφορά των δεδοµένων θα χρησιµοποιηθεί το RTDX κανάλι gains_chan. Στο δεύτερο Frame της Flat Sequence δοµής προκαλείται µια καθυστέρηση κατά την λειτουργία του Equalizer.vi της τάξης των 1500 msec. Σε αυτό το χρονικό διάστηµα ο DSP πρέπει να λάβει τα δεδοµένα, να τα επεξεργαστεί και να στείλει τα αποτελέσµατα της επεξεργασίας στο VI µέσω των αντίστοιχων RTDX καναλιών. Η ταχύτητα µεταφοράς των δεδοµένων από και προς τον DSP (που είναι και η πιο χρονοβόρα διαδικασία) εξαρτάται από τις δυνατότητες του υπολογιστή εποµένως το παραπάνω χρονικό διάστηµα θα µπορούσε να µ ειωθεί. Η καθυστέρηση της λειτουργίας του VI επιτυγχάνεται µε την χρήση του Wait(ms).vi. Η αριθµητική σταθερά που συνδέεται στην είσοδο milliseconds to wait καθορίζει το µέγεθος της καθυστέρησης του VI. Στo τρίτο Frame της δοµής Flat Sequence γίνεται η λήψη των δεδοµένων που στέλνει ο DSP και η αναπαράστασή τους. Το RTDX_Read.vi στο οποίο έχει επιλεχτεί το

149 LabVIEW to CCS Link 145 RTDX_Read_SA_I2 διαβάζει τα δεδοµένα που περιέχει το RTDX κανάλι που δείχνει η string σταθερά Channel δηλαδή τα δεδοµένα που περιέχει το RTDX κανάλι signal_chan. Το RTDX κανάλι signal_chan περιέχει ένα πίνακα µε 512 στοιχεία (ακέραιους αριθµούς µε πρόσηµο των 2 bytes) που αναπαριστά το σήµα εισόδου. Η έξοδος Data του RTDX_Read.vi συνδέεται στον ενδείκτη Input_signal που αναπαριστά το σήµα εισόδου. Επίσης η έξοδος Data συνδέεται στην είσοδο του To Long Integer ώστε τα στοιχεία του πίνακα να µετατραπούν σε ακέραιους αριθµούς µε πρόσηµο των 4 bytes. Το RTDX_Read.vi καλείται ξανά αλλά επιλέγεται το RTDX_Read_SA_I4 ώστε να διαβάσει τα δεδοµένα του RTDX καναλιού που δείχνει η string σταθερά Channel1 δηλαδή τα δεδοµένα που περιέχει το RTDX κανάλι fsignal. Το RTDX κανάλι fsignal µεταφέρει ένα πίνακα µε 512 στοιχεία (ακέραιους αριθµούς µε πρόσηµο των 4 bytes) που αναπαριστά το σήµα εξόδου του ισοσταθµιστή. Η έξοδος Data του RTDX_Read.vi συνδέεται µε τον ενδείκτη Output_signal ώστε να αναπαρασταθεί το σήµα εξόδου. Επίσης η έξοδος Data του RTDX_Read.vi και η έξοδος του To Long Integer.vi συνδέονται στις εισόδους του Build Array.vi. Το Build Array.vi σχηµατίζει ένα πίνακα δύο διαστάσεων και η έξοδος του συνδέεται µε τον ενδείκτη Output & Input signals ώστε να αναπαρασταθούν ταυτόχρονα τα σήµατα εισόδου και εξόδου του ισοσταθµιστή. Αφού ολοκληρωθεί και το τρίτο Frame της δοµής Flat Sequence γίνεται έλεγχος αν προέκυψε κάποιο σφάλµα ή αν πατήθηκε το κουµπί Stop ώστε να τερµατιστεί η λειτουργία της δοµής While δηλαδή της τρίτης φάσης του block diagram του Equalizer.vi. Για τον σκοπό αυτό η έξοδος Status της οµάδας εξόδων error out που επιστρέφεται από την δοµή Flat Sequence και το τερµατικό εικονίδιο του κουµπιού Stop συνδέονται στις εισόδους του Or.vi. Το Or.vi λειτουργεί ακριβώς όπως η πύλη OR στα ψηφιακά δηλαδή η έξοδός της είναι True αν τουλάχιστον µια από τις εισόδους της είναι True, εποµένως η έξοδος του Or.vi γίνεται True αν προκύψει κάποιο σφάλµα ή αν πιεστεί το κουµπί Stop. Η έξοδος του Or.vi συνδέεται µε την συνθήκη τερµατισµού της δοµής While, εποµένως αν η έξοδος του Or.vi γίνει True η δοµή While δεν θα εκτελεστεί ξανά διαφορετικά θα επαναληφθεί η διαδικασία που περιγράψαµε. Στο σηµείο αυτό ολοκληρώθηκε η τρίτη φάση του block diagram του Equalizer.vi αλλά και ο κυρίως κώδικας του VI. Στην τέταρτη φάση του block diagram του Equalizer.vi που παρουσιάζεται στο Σχήµα 132 γίνεται ο τερµατισµός της εφαρµογής του DSP και του CCS. Σχήµα 132. Η τέταρτη φάση του block diagram του Equalizer.vi Το CCS_DSP_Halt.vi δίνει εντολή στον DSP µέσω του CCS να σταµατήσει την εκτέλεση του προγράµµατος. Το CCS_RTDX_Disable.vi απενεργοποιεί την RTDX τεχνολογία. Το CCS_Close_Project.vi κλείνει το project που είχε ανοιχτεί στο CCS και το CCS_Close.vi κλείνει το CCS. Στο σηµείο αυτό ολοκληρώνεται η τέταρτη φάση του block diagram και η περιγραφή του Equalizer.vi.

150 Εφαρµογές Αποτελέσµατα Συµπεράσµατα Για τον έλεγχο της λειτουργίας του γραφικού ισοσταθµιστή θα γίνει σύγκριση του σ ήµατος εξόδου όπως αναπαρίσταται στο Equalizer.vi για διάφορες τιµές των sliders µε την έξ οδο των αντίστοιχων φίλτρων στο MATLAB. Στο Σχήµα 133 παρουσιάζεται το front panel του Equalizer.vi όταν λειτουργεί και έχει επιλεχτεί ότι η ενίσχυση των χαµηλών συχνοτήτων είναι 1 ενώ η ενίσχυση των µεσαίων και των υψηλών συχνοτήτων είναι 0. Σχήµα 133. Το front panel του Equalizer.vi Το Σχήµα 135 παρουσιάζει το σήµα εισόδου του ισοσταθµιστή όπως αναπαρίσταται µε στο Equalizer.vi και στο MATLAB. Από το Σχήµα 135 συµπεραίνεται ότι το σήµα εισόδου είνα ι ακριβώς το ίδιο και στις δύο περιπτώσεις. (a) (b) Σχήµα 134. Το σήµα εισόδου του ισοσταθµιστή (a) στο Equalizer.vi (b) στο MATLAB Όταν επιλεχτεί η ενίσχυση των χαµηλών συχνοτήτων να είναι 1 ενώ η ενίσχυση των υπόλοι πων περιοχών να είναι 0 η έξοδος του σήµατος του ισοσταθµιστή είναι η έξοδος του βαθυπερατού φίλτρου όπως φαίνεται και στο Σχήµα 135.

151 LabVIEW to CCS Link 147 (a) (b) Σχήµα 135. (a) Το σήµα εξόδου του ισοσταθµιστή στο Equalizer.vi (b) Η έξοδος του βαθυπερατού φίλτρου στο MATLAB Στο Σχήµα 136 παρουσιάζεται το front panel του Equalizer.vi όταν λειτουργεί και έχει επ ιλεχτεί ότι η ενίσχυση των µεσαίων συχνοτήτων είναι 1 ενώ η ενίσχυση των χαµηλών και των υψηλών συχνοτήτων είναι 0. Σχήµα 136. Το front panel του Equalizer.vi Όταν επιλεχτεί η ενίσχυση των µεσαίων συχνοτήτων να είναι 1 ενώ η ενίσχυση των υπόλοιπων περιοχών να είναι 0 η έξοδος του σήµατος του ισοσταθµιστή είναι η έξοδος του ζωνοδιαβατού φίλτρου όπως φαίνεται και στο Σχήµα 137. (a) (b) Σχήµα 137. (a) Το σήµα εξόδου του ισοσταθµιστή στο Equalizer.vi (b) Η έξοδος του ζωνοδιαβατού φίλτρου στο MATLAB

152 Εφαρµογές Στο Σχήµα 138 παρουσιάζεται το front panel του Equalizer.vi όταν λειτουργεί και έχει επιλεχτεί ότι η ενίσχυση των υψηλών συχνοτήτων είναι 1 ενώ η ενίσχυση των χαµηλών και των µεσαίων συχνοτήτων είναι 0. Σχήµα 138. Το front panel του Equalizer.vi Όταν επιλεχτεί η ενίσχυση των υψηλών συχνοτήτων να είναι 1 ενώ η ενίσχυση των υπόλοιπων περιοχών να είναι 0 η έξοδος του σήµατος του ισοσταθµιστή είναι η έξοδος του υψηπερατού φίλτρου όπως φαίνεται και στο Σχήµα 139. (a) (b) Σχήµα 139. (a) Το σήµα εξόδου του ισοσταθµιστή στο Equalizer.vi (b) Η έξοδος του υψηπερατού φίλτρου στο MATLAB Παρατηρώντας τα παραπάνω σχήµατα βγαίνει εύκολα το συµπέρασµα ότι ο γραφικός ισοσταθµιστή ς που παρουσιάστηκε και παραπάνω λειτουργεί σύµφωνα µε τις προδιαγραφές του αφού τα αποτελέσµατα του Equalizer.vi ταυτίζονται µε τα αποτελέσµατα του MATLAB. Για τον σχεδιασµό ενός γραφικού ισοσταθµιστή δέκα ή περισσότερων περιοχών µε το MATLAB, αρχικά θα πρέπεί να µετατραπεί το m-file που υπολογίζει τους συντελεστές των φίλτρων του ισ οσταθµιστή ώστε να υπολογίζει τους συντελεστές των φίλτρων που ορίζουν οι ν έες προδιαγραφές. Για την δηµιουργία του αρχείου που θα περιέχει τους συντελεστές των φίλτρων θα χρησιµοποιηθεί η συνάρτηση save_equ_coefs() χωρίς καµία µετατροπή. Για την υλοποίηση ενός γραφικού ισοσταθµιστή δέκα ή περισσότερων περιοχών µε το CCS θα πρέπει, στον C κώδικα του project (που παρουσιάστηκε στην παράγραφο 4.1.4) να οριστούν για κάθε φίλτρο οι αντίστοιχες καθυστερήσεις (f0_dly, f1_dly, f2_dly κλπ) επίσης οι πίνακες gains και data_out θα πρέπει να έχουν τόσο στοιχεία όσες και οι περιοχές του

153 LabVIEW to CCS Link 149 ισ οσταθµιστή (δηλαδή για έναν ισοσταθµιστή δέκα περιοχών θα πρέπει να έχουν δέκα στοιχεία). Η συνάρτηση που υλοποιεί τα IIR φίλτρα είναι η iir_cas5() και δεν χρειάζεται κ αµία µετατροπή, θα πρέπει όµως να καλείται στην main συνάρτηση τόσες φορές όσες και οι περιοχές του ισοσταθµιστή. Ο υπολογισµός κάθε δείγµατος εξόδου του ισοσταθµιστή είναι το άθροισµα των αποτελεσµάτων των φίλτρων (δηλαδή των αποτελεσµάτων της συνάρτησης iir_cas5()). Για τον έλεγχο ενός γραφικού ισοσταθµιστή δέκα ή περισσότερων περιοχών µε το LabVIEW θα πρέπει να τροποποιηθεί κατάλληλα του Equalizer.vi που παρουσιάστηκε στην παράγραφο Στο front panel του Equalizer.vi θα πρέπει ο αριθµός των sliders, των Radio Buttons και των στοιχείων του πίνακα gains να είναι ίσος µε τον αριθµό των περιοχών του ισοσταθµιστή. Στο block diagram θα πρέπει η λογική που παρουσιάστηκε για τον slider Low_pass και το Radio Button Low_pass_mute να επαναληφθεί για κάθε slider και Radio Button. Με τις αλλαγές που παρουσιάστηκαν πιο πάνω, ο γραφικός ισοσταθµιστής των τριών περιοχών µπορεί να µετατραπεί εύκολα σε ένα γραφικό ισοσταθµιστή δέκα ή περισσότερων περιοχών. 4.2 Εφαρµογή ψηφιακής επεξεργασίας εικόνας Η εφαρµογή στην ψηφιακή επεξεργασία εικόνας που θα αναλυθεί στην συνέχεια έχει ως σκοπό την παρουσίαση κάποιων απλών εφαρµογών ψηφιακής επεξεργασία µε το DSKC6713 που ελέγχονται από ένα GUI που έχει δηµιουργηθεί µε το LabVIEW. Στην συγκεκριµένη εφαρµογή σε µια έγχρωµη (color) εικόνα µπορεί να πραγµατοποιηθεί η ισοστάθµιση του ιστογράµµατος, ενώ σε µια εικόνα κλίµακας του γκρι (grayscale) είναι δυνατό να πραγµατοποιηθεί η ανίχνευση των ακµών της ή η εφαρµογή του ευθύ και του αντίστροφου διακριτού µετασχηµατισµού συνηµιτόνου (Discrete Cosine Transform DCT ) ή η κωδικοποίηση και η αποκωδικοποίηση της σύµφωνα µε το JPEG πρότυπο. Η εικόνα, το είδος της (έγχρωµη ή ασπρόµαυρη) και ο αλγόριθµος επεξεργασίας επιλέγεται από το GUI. Για κάθε αλγόριθµο επεξεργασίας έχει δηµιουργηθεί ένα project στο CCS εποµένως µέσα από το GUI επιλέγεται πιο project θα φορτωθεί στο CCS και ποιού project ο εκτελέσιµος κώδικας θα φορτωθεί και θα εκτελεστεί από τον DSP. Η εικόνα φορτώνεται στον DSP κατά το κτίσιµο µέσω ενός ή τριών αρχείων µε επέκτασ η.h ανάλογα µε το είδος της εικόνας, εποµένως το GUI θα πρέπει να δηµιουργήσει το αντίστοιχο αρχείο µε επέκταση.h που θα περιέχει την εικόνα σε κλίµακα του γκρι ή τρία αρχεία µε επέκταση.h που θα περιέχουν τις R,G και B συνιστώσες της έγχρωµης εικόνας. Το αποτέλεσµα της επεξεργασίας µ εταφέρεται στο GUI αξιοποιώντας την RTDX τεχνολογία. Στις παραγράφους που ακολουθούν αναλύεται η δηµιουργία του project στο CCS για κάθε αλγόριθµο επεξεργασίας. Επίσης στην συνέχεια θα αναλυθεί και η δηµιουργία του GUI µε το LabVIEW.

154 Εφαρµογές Ανίχνευση ακµών Μια από τις πιο απλές επεξεργασίες σε µία εικόνα είναι η λεγόµενη ανίχνευση των ακµών της (edge detection). Οι ακµές εντοπίζονται σε σηµεία στα οποία υπάρχει µεγάλη διαφορά φωτεινότητας µεταξύ γειτονικών εικονοστοιχείων (pixels) µιας εικόνας. Η ανίχνευση των ακµών, πραγµατοποιείται µε συνέλιξη της εικόνας µε κάποιο γραµµικό φίλτρο, το οποίο να αποτελεί προσέγγιση της 1 ης παραγώγου. Αφού αν κανείς υπολογίσει την 1 η παράγωγο κατά µήκος της εικόνας και εντοπίσει τα σηµεία στα οποία αυτή παρουσιάζει µέγιστο, τότε τα σηµεία αυτά θα αντιστοιχούν στις ακµές της Εποµένως η ανίχνευση των ακµών σε κάθε διεύθυνση, πραγµατοποιείται µε συνέλιξη της εικόνας µε κάποιο γραµµικό φίλτρο. Το φίλτρο αυτό δεν είναι τίποτα άλλο παρά ένα παράθυρο 3x3 (ή µάσκα) το οποίο σαρώνει διαδοχικά όλη την επιφάνεια της εικόνας. Με δεδοµένο ότι οι ακµές υπολογίζονται σε δύο διευθύνσεις (οριζόντια και κατακόρυφη) απαιτούνται δύο µάσκες 3x3, µία για κάθε διεύθυνση. Η πλέον γνωστή µέθοδος ανίχνευσης ακµών είναι µε χρήση των λεγόµενων τελεστών Sobel. Πρόκειται για δύο µάσκες διαστάσεων 3x3 (σχήµα 140) η συνέλιξη των οποίων µε την εικόνα θα δώσει τις υπάρχουσες σε αυτήν ακµές (a) (b) Σχήµα 140 Μάσκες Sobel για την ανίχνευση των ακµών µιας εικόνας: (a) κατά την κατακόρυφη διεύθυνση (Gy) και (b) κατά την οριζόντια διεύθυνση (Gx) Υλοποίηση της ανίχνευσης ακµών µε τους τελεστές Sobel Στην συνέχεια παρουσιάζεται ο C κώδικας του αρχείου DSP_Sobel_rtdx.c που υλοποιεί την ανίχνευση ακµών µε τους τελεστές Sobel σε µια εικόνα κλίµακας του γκρι. #include <stdlib.h> #include <string.h> #include <math.h> #include <rtdx.h> /* RTDX_Data_Read */ #include <stdio.h> /* printf */ #include "target.h" /* TARGET_INITIALIZE */ #define IMAGE_SIZE #define H 256 #define W 256 #define MAX_MESSAGES 256 #define MAX_ELEMENTS 256 #include "scenary.h" /* contains input image as a 1D array */ #pragma DATA_SECTION (image_in, "IM_in")

155 LabVIEW to CCS Link 151 #pragma DATA_SECTION (image_out,"im_out") #pragma DATA_SECTION (Gx, "Gx_var") #pragma DATA_SECTION (Gy, "Gy_var") #pragma DATA_SECTION (message, "msg_var") unsigned char image_in[image_size]; unsigned char image_out[image_size]; unsigned char Gx[IMAGE_SIZE]; unsigned char Gy[IMAGE_SIZE]; unsigned char message[max_elements]; RTDX_CreateOutputChannel(ochan); /* Channel to use to write data */ // Find Sobel edges void Sobel_edges() { int i; int w00, w01, w02; int w10, w12; int w20, w21, w22; int x_edge, y_edge; int f_edge ; for(i=0; i<image_size; i++) { Gx[i] = 0; Gy[i] = 0; image_out[i] = 0; // Clear arrays for (i=0; i<(w*(h-2)-2); i++) { w00 = image_in[i]; w01 = image_in[i+1]; w02 = image_in[i+2]; w10 = image_in[w+i]; w12 = image_in[w+i+2]; w20 = image_in[(2*w)+i]; w21 = image_in[(2*w)+i+1]; w22 = image_in[(2*w)+i+2]; x_edge = - w00-2*w10 - w20 + w02 + 2*w12 + w22 ; y_edge = - w00-2*w01 - w02 + w20 + 2*w21 + w22 ; f_edge = (abs(x_edge) + abs(y_edge))/2 ; if (f_edge>255) f_edge = 255; if (f_edge<0) f_edge = 0; image_out[i+1] = f_edge; if (x_edge>255) x_edge = 255; if (x_edge<0) x_edge = 0; if (y_edge>255) y_edge = 255; if (y_edge<0) y_edge = 0; // View Gx & Gy edges

156 Εφαρµογές Gx[i+1] = x_edge; Gy[ i+1] = y_edge; // end for loop // Main program void ma in () { int i, j; TARGET_INITIALIZE(); // Target initialization for RTDX Sobel_edges(); RTDX_enable Output(&ochan); // Enable the output channel, "ochan" for (i=0; i<image_size; i+=max_elements) { for (j=i; j<(i+max_elements); j++) { message[j-i] = (unsigned char) image_out[j]; //write one row (256 elements) if (!RTDX_write( &ochan, message, sizeof(message))) //Send the data to the host { fprintf(stderr, "\nerror: RTDX_write() failed!\n"); abort(); puts("\n Program Completed!"); // End main program Πρόγραµµα 6. Ο C κώδικας του αρχείου DSP_Sobel_rtdx.c Στο πρόγραµµα 6 αρχικά συµπεριλαµβάνονται τα αρχεία stdlib.h, string.h, math.h, rtdx.h, stdio.h, target.h, και scenary.h. Το αρχείο rtdx.h περιέχει τις δηλώσεις των συναρτήσεων που σχετίζονται µε την RTDX τεχνολογία. Το αρχείο target.h περιλαµβάνει την δήλω ση της συνάρτησης TARGET_INITIALIZE() η οποία αρχικοποιεί τον DSP και ενεργοποιεί τις διακοπές ώστε να ενεργοποιηθεί η RTDX τεχνολογία. Το αρχείο scenary.h περιέχει την προς επεξεργασία εικόνα µε διαστάσεις 256 x 256 εικονοστοιχεία. Με τις ν τιρεκτίβες #pragma καθορίζονται οι περιοχές της µνήµης στις οποίες θα αποθηκεύονται οι π ίνακες που σχετίζονται µε την εικόνα. Η κατανοµή της µνήµης του DSP σε περιοχές πραγµατοποιείται στο αρχείο rtdx_sobel.cmd (Πρόγραµµα 7) Πριν από την δήλωση της συνάρτησης main() ορίζεται το RTDX κανάλι ochan που θ α µεταφέρει το αποτέλεσµα της επεξεργασίας από τον DSP στο GUI. Το κανάλι ochan µ εταφέρει από τον DSP στο GUI ένα πίνακα 256 αριθµών που αναπαριστά µια γραµµή από την τελική εικόνα. Στην συνάρτηση main() αρχικά γίνεται η αρχικοποίηση του DSP και η ενεργοποίηση της RTDX τεχνολογίας. Έπειτα εντοπίζονται οι ακµές της εικόνας µε την χρησιµοποίηση της συνάρτησης Sobel_edges() που ορίζεται ακριβώς πριν την συνάρτηση main(). Στην συνέχεια

157 LabVIEW to CCS Link 153 ενεργοποιείται το RTDX κανάλι εξό δου ochan και γίνεται η µεταφορά της εικόνας από τον DSP στο GUI. Η µεταφορά της τελικής εικόνας πραγµατοποιείται σταδιακά δηλαδή κάθε φ ορά εγγράφεται στο RTDX κανάλι µόνο µια γραµ µή της εικόνας δηλαδή ένας πίνακας των 256 αριθµών. -c -heap 0x1000 -stack 0x1000 -u vectors -u _auto_init _HWI_Cache_Control = 0; _RTDX_interrupt_mask = ~0x ; MEMORY { VECS: o= h l= h /* interrupt vectors */ PMEM: o= h l=0000fe00h /* Internal RAM (L2) mem */ BMEM: o= h l= h /* CE0, SDRAM, 16 Mbytes */ SECTIONS {.intvecs > 0h.text > BMEM.rtdx_text > BMEM.far > BMEM.stack > BMEM.bss > BMEM.cinit > BMEM.pinit > PMEM.cio > BMEM.const > BMEM.data > BMEM.rtdx_data > BMEM.switch > BMEM.sysmem > BMEM IM_in > BMEM IM_out > BMEM Gx_var > BMEM Gy_var > BMEM msg_var > BMEM Πρόγραµµα 7. Το rtdx_sobel.cmd Το project που θα δηµιουργηθεί για την ανίχνευση των ακµών µιας εικόνας σε κλίµακα του γκρι µε όνοµα RTDX_Sobel_edges.pjt, εκτός από τα αρχεία DSP_Sobel_rtdx.c και rtdx_sobel.cmd που παρουσιάστηκαν παραπάνω πρέπει να περιέχει και το αρχείο intvecs.asm που έχει δηµιουργηθεί από την TI και περιλαµβάνεται στο CCS. Για το αρχείο

158 Εφαρµογές DSP_Sobel_rtdx.c επιλέγεται η τοπική βελτιστοποίηση File (-ο3). Επίσης στο project θα πρέπει να προστεθούν και οι βιβλιοθήκες rtdx.lib (ή rtdxsim.lib αν θα χρησιµοποιηθεί ο εξοµοιωτής) και rts6701.lib. Στο Σχήµα 141 παρουσιάζεται το View Window του project στο CCS. Σχήµα 141. Το View Window του CCS για το RTDX_Sobel_edges.pjt Ευθύς και αντίστροφος διακριτός µετασχηµατισµός συνηµιτόνου O διακριτός µετασχηµ ατισµός του συνηµιτόνου (Discrete Cosine Transform) ή DCT αποτελεί ίσως την πιο συχνή επιλογή µετασχηµατισµού µιας εικόνας από το πεδίο των pixels (spartia l domain) στο πεδίο των συχνοτήτων (frequency domain), εξαιτίας των ιδιοτήτων που π αρουσιάζει όπως η συµπύκνωση ενέργειας (energy compaction). Για αυτό το λόγο έχει υιοθετηθεί από τα περισσότερα πρότυπα κωδικοποίησης που αφορούν τόσο την ακίνητη ει κόνα, όπως το JPEG και το ΜPEG-7, όσο και την ακολουθία εικόνων (video) από τα πρότυπα MPEG-1, MPEG-2 και MPEG-4. Ένα από τα χαρακτηριστικά του DCT µετασχηµατισµού είναι η συµπύκνωση ενέργειας (energy compaction). Πρακτικά αυτό σηµαίνει ότι κατά την εφαρµογή του σε κάθε 8x8 µπλοκ της εικόνας, το µεγαλύτερο ποσοστό της ενέργειας συγκεντρώνεται στις χαµηλές συχνότητες (low frequencies) και ιδιαίτερα στον 1 ο συντελεστή κάθε µπλοκ που καλείται DC συντελεστής. Οι υπόλοιποι 63 συντελεστές καλούνται AC συντελεστές και περιέχουν πολύ µικρό ποσοστό ενέργειας σε σχέση µε τον DC συντελεστή. Η διάταξη των DCT συντελεστών ενός 8x8 µπλοκ φαίνεται στο σχήµα 142. Οι χαµηλές συχνότητες (low frequencies) εντοπίζονται σ την άνω αριστερή γωνία του 8x8 µπλοκ, ενώ οι υψηλές συχνότητες (high frequencies) στην κάτω δεξιά γωνία αντίστοιχα. Με δεδοµένο το γεγονός ότι η ενέργεια ενός DCT συντελεστή αντιστοιχεί ουσιαστικά στην πληροφορία που αυτός περικλείει, ο DC συντελεστής είναι αυτός που περιέχει το µεγαλύτερο ποσοστό πληροφορίας του εκάστοτε 8x8 µπλοκ, ενώ οι AC συντελεστές περιέχουν πολύ µικρό ποσοστό πληροφορίας που αντιστοιχεί στις λεπτοµέρειες του 8x8 µπλοκ της εικόνας. Εποµένως, εφαρµόζοντας τον DCT µετασχηµατισµό σε κάθε 8x8 µπλοκ µιας εικόνας, η

159 LabVIEW to CCS Link 155 ενέργεια (και κατά συνέπεια η πληροφορία) του εκάστοτε µπλοκ βρίσκεται συγκεντρωµένη πλέον στις χαµηλές συχνότητες, δηλαδή τον DC και µερικούς γύρο άπω αυτόν AC συντελεστές (AC 01, AC 10, AC 11, κτλ). Συνεπώς οι υπόλοιποι AC συντελεστές, κυρίως στις υψηλές συχνότητες, αποτελούν πλεονάζουσα πληροφορία και µπορούν να αποµακρυνθούν (δηλαδή να µηδενιστούν) κατά τη διαδικασία της κβάντισης. DC AC 01 AC 02 AC10 AC11 AC12 AC20 AC21 AC22 64 DCT coefficients Σχήµα 142 ιάταξη των DCT συντελεστών σε κάθε 8x8 µπλόκ Ο διδιάστατος µετασχηµατισµός DCT σε µια εικόνα είναι ένας αρκετά απαιτητικός αλγόρι θµος, αφού απαιτεί µεγάλο πλήθος υπολογισµών (πολλαπλασιασµών, προσθέσεων και αφαιρέσεων). Αντιλαµβάνεται κανείς ότι η υλοποίηση του 2D-DCT σε µια εικόνα µε βάση το ν ορισµό (σχέση 9.1) δεν έχει νόηµα, αφού δεν είναι δυνατό να εκτελεστεί σε πραγµατικό χρόνο. Για το λόγο αυτό επιλέχτηκε αρχικά η υλοποίηση του 2D-DCT µε εφαρµογή του µ ονοδιάστατου DCT (1D-DCT) πρώτα στις γραµµές και έπειτα στις στήλες κάθε 8x8 µπλοκ της εικόνας. Η υλοποίηση αυτή θεωρείται αργή γενικά (της τάξεως του sec), αλλά παρόλα αυτά ε ίναι αρκετά πιο γρήγορη από την απευθείας εφαρµογή του 2D-DCT βάσει του ορισµού. Στη συνέχεια, παρουσιάζεται µια βέλτιστη σε επίπεδο αλγορίθµου υλοποίηση του DCT, η οποία βασίζεται στον αλγόριθµο του McGovern. Για τον έλεγχο της σωστής λειτουργίας των αλγορίθµων, εκτός από τον ευθύ µ ετασχηµατισµό DCT, εφαρµόζεται και ο αντίστροφος (inverse) µετασχηµατισµός (IDCT). Ο DCT α νήκει στους ορθογώνιους (orthogonal) µετασχηµατισµούς, των οποίων µία από τις β ασικές ιδιότητες είναι η αντιστρεπτότητα. Αυτό σηµαίνει ότι εκφράζοντας τον µ ετασχηµατισµό DCT υπό µορφή γινοµένου πινάκων, δηλαδή D = W*D (όπου W ο πίνακας µ ετασχηµατισµού, D ο πίνακας µε τα δεδοµένα) και πολλαπλασιάζοντας έπειτα µε τον ανάστροφο πίνακα µετασχηµατισµού W T (αντίστροφος µετασχηµατισµός), λαµβάνεται ξανά ο αρχικός πίνακας D. Έτσι, εφαρµόζοντας πρώτα τον ευθύ µετασχηµατισµό DCT και έπειτα τον αντίστροφο µετασχηµ ατισµό στην εικόνα, το αποτέλεσµα θα είναι η ανακατασκευή της αρχικής εικόνας. Υλοποίηση του 2D-DCT µε χρήση του 1D-DCT Για την υλοποίηση του 2D-DCT µε χρήση του 1D-DCT έχουν δηµιουργηθεί τα αρχεία Dct_Main_rtdx. c, dct_main.h, Dct.c, Idct.c και rtdx_dctslow.cmd που παρουσιάζονται στην συνέχεια. Στο Πρόγραµµα 8 παρουσιάζεται ο C κώδικας του αρχείου Dct_Main_rtdx.c, στο οποίο αρχικά συµπεριλαµβάνονται τα αρχεία stdlib.h, time.h, rtdx.h, stdio.h, target.h, dct_main.h και scenary.h. Το αρχείο rtdx.h περιέχει τις δηλώσεις των συναρτήσεων που σχετίζονται µε την RTDX τεχνολογία. Το αρχείο target.h περιλαµβάνει την δήλωση της συνάρτησης

160 Εφαρµογές T ARGET_INITIALIZE() η οποία αρχικοποιεί τον DSP και ενεργοποιεί τις διακοπές ώστε να ενεργοποιηθεί η RTDX τεχνολογία. Το αρχείο dct_main.h περιέχει τις δηλώσεις ορισµένων σταθερών (constants), όπως είναι οι IMAGE_LEN και BLOCK_LEN και παρουσιάζεται στο Π ρόγραµµα 9 Το αρχείο scenary.h περιέχει την προς επεξεργασία εικόνα µε διαστάσεις 256 x 256 εικονοστοιχεία. Με τις ντιρεκτίβες #pragma καθορίζονται οι περιοχές της µνήµης στις οποίες θα αποθηκεύονται οι πίνακες που σχετίζονται µε την εικόνα. Η κατανοµή της µνήµης του DSP σε περιοχές πραγµατοποιείται στο αρχείο rtdx_dctslow.cmd (Πρόγραµµ α 13) Πριν α πό την δήλωση της συνάρτησης main( ) ορίζεται το RTDX κανάλι ochan που θα µ εταφέρει το αποτέλεσµα της επεξεργασίας από τον DSP στο GUI. Το κανάλι ochan µ εταφέρει από τον DSP στο GUI ένα πίνακα 256 αριθµών που αναπαριστά µια γραµµή από την τελική εικόνα. Στην συνάρτηση main() αρχικά γίνεται η αρχικοποίηση του DSP και η ενεργοποίηση της RTDX τεχ νολογίας. Σε κάθε µπλοκ 8x8 της εικόνας εφαρµόζεται ο ευθύς DCT µε την κ λήση της συν άρτησης dct() και ο αντίστροφος DCT µε την κλήση της συνάρτησης idct(). Οι σ υναρτήσεις dct() και idct() θα παρουσιαστούν στην συνέχεια. Έπειτα ενεργοποιείται το R TDX κανάλι εξόδου ochan και γίνεται η µεταφορά της εικόνας από τον DSP στο GUI. Η µ εταφορά της τελικής εικόνας πραγµατοποιείται σταδιακά δηλαδή κάθε φορά εγγράφεται στο RTDX κανάλι µόνο µια γραµµ ή της εικόνας δηλαδή ένας πίνακας των 256 αριθµών. #include <stdlib.h> #include < time.h> #include <rtdx.h> #include <stdio.h> #include "target.h" #define DSK6711_cps // RTDX_Data_Read // printf // TARGET_INITIALIZE //150 MHz C6711 CPU clock (cps -> Clocks Per Second) #include "dct_ main.h" //Includes and Constants used #pragma DATA_SECTION (image_in,"myvar0") #pragma DATA_SECTION (image_out,"myvar1") #include "scenary.h" //An h file containing input image as a 1D array unsigned char image_out[image_size]; short block[block_size]; clock_t start, stop; double duration; #pragma DATA_SECTION (message, "msg_var") RTDX_CreateOutputChannel(ochan); //Channel to use to write data #define MAX_MESSAGES 256 #define MAX_ELEMENTS 256 unsigned char message[max_elements]; //Q12 DCT coefficients (actual coefficient x 2^12 ) const short coe[8][8]= { 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096,

161 LabVIEW to CCS Link 157 ; 5681, 4816, 3218, 1130, , -3218, -4816, -5681, 5352, 2217, -2217, -5352, -5352, -2217, 2217, 5352, 4816, -1130, -5681, -3218, 3218, 5681, 1130, -4816, 4096, -4096, -4096, 4096, 4096, -4096, -4096, 4096, 3218, -5681, 1130, 4816, -4816, -1130, 5681, -3218, 2217, -5352, 5352, -2217, -2217, 5352, -5352, 2217, 1130, -3218, 4816, -5681, 5681, -4816, 3218, //FUNCTIONS USED void dct(void); void idct(void); // dct.c // idct.c //MAIN FUNCTION void main() { int row, col, x, y; int i,j; TARGET_INITIALIZE(); //Target initialization for RTDX start = clock(); //FORWARD DCT/ INVERSE DCT // block by block processing for (row=0; row<image_len; row+=block_len) { for (col=0; col<image_len; col+=block_len) { for (y=0, i=0; y<block_len; y++) // get the block from the input image { for (x=0; x<block_len; x++, i++) block[i] = (short) image_in[(col+x)+(row+y)*image_len]; dct(); //perform FDCT on this block idct(); //perform IDCT on this block for (y=0, i=0; y<block_len; y++) // store block to output image { for (x=0; x<block_len; x++, i++) { //Quick fix for errors occurring due to negative a values if(block[i]<0) //occurring after IDCT!*/ image_out[(col+x)+(row+y)*image_len]=(unsigned char) (-block[i]); else image_out[(col+x)+(row+y)*image_len]=(unsigned char) block[i]; stop = clock(); duration = (double) (stop - start) / DSK6711_cps; RTDX_enableOutput(&ochan); // Enable the output channel, "ochan"

162 Εφαρµογές for (i=0; i<image_size; i+=max_elements) { for (j=i; j<(i+max_elements); j++) { message[j-i] = (unsigned char) image_out[j]; //Write one row (256 elements) if (!RTDX_write( &ochan, message, sizeof(message) ) ) //Send the data to the host { fprintf(stderr, "\nerror: RTDX_write() failed!\n"); abort(); puts("\nprogram Completed!"); printf( "\n %s ", " The algorithm implementation completed in"); printf( "%5.5f %s \n\n", duration, "seconds" ); puts(" Completed Successfully!\n"); Πρόγραµµα 8. Ο C κώδικας του αρχείου dct_main_rtdx.c Στο πρόγραµµα 9 παρουσιάζεται το αρχείο dct_main.h, το οποίο περιέχει τις δηλώσεις ορισµ ένων σταθ ερών (constants), όπως είναι οι IMAGE_LEN και BLOCK_LEN, µε τιµές 256 και 8 αντίστοιχα. Επιπλέον δηλώνονται οι σταθερές IMAGE_SIZE και BLOCK_SIZE (µ ε τιµ ές και 64 αντίστοιχα) που αντιστοιχούν η µεν πρώτη στο µέγεθος της εικόνας κ αι η δεύτερη στο µέγεθος του µπλοκ που χρησιµοποιείται. #ifndef DCT_MAIN_H #define IMAGE_LEN 256 #define IMAGE_SIZE (IMAGE_LEN*IMAGE_LEN) #define BLOCK_LEN 8 #define BLOCK_SIZE (BLOCK_LEN*BLOCK_LEN) #endif Πρόγραµµα 9. To αρχείο dct_main.h Σ το πρόγραµµα 10 παρουσιάζεται το αρχείο Dct.c, το οποίο περιέχει την συνάρτηση dct() που υλοποιεί τον διδιάστατο DCT (2D-DCT) σε ένα 8x8 µπλοκ της εικόνας, µε χρήση του µ ονοδιάστατου DCT (1D-DCT). Στην αρχή δηλώνονται ως extern οι πίνακες image_in και image_out (που περιέχουν τα δεδοµένα της αρχικής και της ανακατασκευασµένης εικόνας αντίστοιχα), καθώς και οι πίνακες block και coe. Ο πίνακας block περιέχει 64 στοιχεία που αντιστοιχούν στους 64 DCT συντελεστές ενός 8x8 µπλοκ, ενώ ο πίνακας coe περιέχει τις 64 τι µές των όρων C '( k) cos[ ( 2i + 1) kπ 16], πολλαπλασιασµένες µε το 2 12 (Q-12 format). Γενικά µία µεταβλητή δηλώνεται µε την λέξη κλειδί extern, όταν αυτή πρέπει να είναι ορατή και από άλλα αρχεία κώδικα που συµπεριλαµβάνονται στο ίδιο project. Αυτό γίνεται στην περίπτωση που µία µεταβλητή καλείται σε περισσότερα του ενός αρχεία κώδικα C του

163 LabVIEW to CCS Link 159 ίδιου project. Στην προκειµένη περίπτωση οι τέσσερις πίνακες που έχουν δηλωθεί ως extern γίνονται ορατοί (και εποµένως µπορούν να χρησιµοποιηθούν) από τα αρχεία Dct.c, Ιdct.c και Dc t_main.c. #include "dct_main.h" extern unsigned char image_in[image_size]; extern unsigned char image_out[image_size]; extern short block[block_size]; extern const short coe[8][8]; void dct(void) { int i,j,x,y; int value[8]; for(j=0;j<8;j++) //perform 1D DCT on the columns { for(y=0;y<8;++y) { value[y]=0; for(x=0;x<8;++x) value[y] += (int)(coe[y][x]*block[j+(x*8)]); for(y=0;y<8;++y) block[j+(y*8)] = (short)(value[y]>>12); for(i=0;i<64;i+=8) { for( y=0;y <8;++y) { // perform 1D DCT on the resulting rows value[y] = 0; for(x=0;x<8;++x) value[y] += (int)(coe[y][x]*block[i+x]); for(y=0;y<8;++y) block[i+y] = (short)(value[y]>>15); Πρόγραµµ α 10. Ο C κώδικας του αρχείου Dct.c Στο πρόγραµµα 11 που ακολουθεί, παρουσιάζεται ο κώδικας υλοποίησης του αντίστροφου διδιάστατου µετασχηµατισµού DCT (2D-IDCT), χρησιµοποιώντας τον µ ονοδιάστατο αντίστροφο DCT (1D-IDCT). Όπως και στον ευθύ µετασχηµατισµό, έτσι και εδ ώ, οι πίνακες image_in, image_out, block και coe δηλώνονται ως extern. To αρχείο αυτό περιέχει την υλοποίηση της συνάρτησης idct(), η οποία πραγµατοποιεί τον 2D-IDCT µ ετασχηµατισµό σε ένα 8x8 µπλοκ και αντικαθιστά στον πίνακα block τις 64 τιµές των DCT συντελεστών µε τις 64 τιµές των ανακατασκευασµένων εικονοστοιχείων.

164 Εφαρµογές #include "dct_main.h" extern unsigned char image_in[image_size]; extern unsigned char image_out[image_size]; extern short block[block_size]; extern const short coe[8][8]; void idct(void) { int i,j,x,y; int value[8]; for(j=0;j<8;j++) // perform 1D IDCT on the columns { for(y=0;y<8;++y) { value[y] = 0; for(x=0;x<8;++x) value[y] += (int)(coe[x][y]*block[j +(x*8 )]); for(y=0;y<8;++y) block[j+(y*8)] = (short)(value[y]>>12); for(i=0;i<64;i+=8) // perform 1D IDCT on the resulting rows { for(y=0;y<8;++y) { value[y] = 0; for(x=0;x<8;++x) value[y] += (int)(coe[x][y]*block[i+x]); for(y=0;y<8;++y) block[i+y] = (short)(value[y]>>15); Πρόγραµµα 11. Ο C κώδικας του αρχείου Idct.c Η κατανοµή των περιοχών της µνήµης πραγµατοποιείται στο αρχείο rtdx_dctslow.cmd π ου παρουσιάζεται στο Πρόγραµµα 12. -c -heap 0x1000 -stack 0x1000 -u vectors -u _auto_init _HWI_Cache_Control = 0; _RTDX_interrupt_mask = ~0x ;

165 LabVIEW to CCS Link 161 MEMORY { VECS: o= h l= h /* interrupt vectors */ PMEM: o= h l=0000fe00h /* Internal RAM (L2) mem */ BMEM: o= h l= h /* CE0, SDRAM, 16 MBytes */ SECTIONS {.intvecs > 0h. text > BMEM.rtdx_text > BMEM.far > BMEM.stack > BMEM.bss > BMEM.cinit > BMEM.pinit > PMEM.cio > BMEM.const > BMEM.data > BMEM.rtdx_data > BMEM.switch > BMEM.sysmem > BMEM myvar0 > BMEM myvar1 > BMEM Πρόγραµµα 12. To αρχείο rtdx_dctslow.cmd Σχήµα 143. Το View Window του CCS για το RTDX_DCT_Slow.pjt

166 Εφαρµογές Στο Σχήµα 143 παρουσιάζεται το View Window του project στο CCS που δηµιουργείται για την εφαρµογή του ευθύ και του αντίστροφου DCT µε την χρήση του 1D- DCT σε µια εικόνα κλίµακας του γκρι µ ε όνοµ α RTDX_DCT_Slow.pjt. Το οποίο εκτός από τα αρχεία DCT_Main.c, Dct.c, Idct.c και rtdx_dctslow.cmd που παρουσιάστηκαν παραπάνω πρέπει να περιέχει και το αρχείο intvecs.asm που έχει δηµιουργηθεί από την TI και περιλαµβάνεται στο CCS. Για τα αρχεία D CT_Main.c, Dct.c και Idct. c επιλέγεται η τοπική β ελτιστοποίηση File (-ο3). Επίσης στο project θα πρέπει να προστεθούν και οι βιβλιοθήκες rt dx.lib (ή rtdxsim.lib αν θα χρησιµοποιηθεί ο εξοµοιωτής) και rts6701.lib. Υλοποίηση του 2D_DCT µε χρήση του αλγόριθµου McGovern Για την υλοποίηση του 2D-DCT µε χρήση του αλγόριθµου McGovern έχουν δηµιουργηθεί τα αρχεία Dct_Main_rtdx.c, dct_main.h, Dct.c, Idct.c και rtdx_dctfast.cmd που παρουσιάζονται στην συνέχεια. Στο Πρόγραµµα 13 παρουσιάζετ αι ο C κώδικας του αρχείου Dct_Main_rtdx.c, στο οποίο αρχικά συµπεριλαµβάνονται τα αρχεία stdlib.h, time.h, rtdx.h, stdio.h, target.h, dct_main.h και scenary.h. Το αρχείο rtdx.h περιέχει τις δηλώσεις των συναρτήσεων που σ χετίζονται µε την RTDX τεχνολογία. Το α ρχείο target.h περιλαµβάνει την δήλωση της σ υνάρτησης TARGET_INITIALIZE() η οποία αρχικοποιεί τον DSP και ενεργοποιεί τις διακοπές ώστε να ενεργοποιηθεί η RTDX τεχνολογία. Το αρχείο dct_main.h που π αρουσιάστηκε στο Πρόγραµµα 9 περιέχει τις δηλώσεις ορισµ ένων σταθερών. Το αρχείο scenary.h περιέχει την προς επεξεργασία εικόνα µε διαστάσεις 256 x 256 εικονοστοιχεία. Πριν από την δήλωση της συνάρτησης main() ορίζεται το RTDX κανάλι ochan που θ α µεταφέρει το αποτέλεσµα της επεξεργασίας από τον DSP στο GUI. Το κανάλι ochan µ εταφέρει από τον DSP στο GUI ένα πίνακα 256 αριθµών που αναπαριστά µια γραµµή από την τελική εικόνα. Στην συνάρτηση main() αρχικά γίνεται η αρχικοποίηση του DSP και η ενεργοποίηση της RTDX τεχνολογίας. Σε κάθε 8x8 µ πλοκ της εικόνας εφαρµόζεται ο ευθύς DCT µε την κ λήση της συνάρτησης dct() και ο αντίστροφος DCT µε την κλήση της συνάρτησης idct(). Οι συναρτήσεις dct() και idct() θα παρουσιαστούν στην συνέχεια. Έπειτα ενεργοποιείται το RTDX κανάλι εξόδου ochan και γίνεται η µεταφορά της εικόνας από τον DSP στο GUI. Η µ εταφορά της τελικής εικόνας πραγµατοποιείται σταδιακά δηλαδή κάθε φορά εγγράφεται στο R TDX κανάλι µόνο µια γραµµή της εικόνας δηλαδή ένας πίνακας των 256 αριθµών. #include <stdlib.h> #include <time.h> #include <rtdx.h> #include <stdio.h> #include "target.h" #define DSK6711_cps // RTDX_Data_Read // printf // TARGET_INITIALIZE // 150 MHz C6711 CPU clock (cps -> Clocks Per Second) #include "dct_main.h" // Includes and Constants used #pragma DATA_SECTION (image_in,"myvar0") #pragma DATA_SECTION (image_out,"myvar1") #include "scenary.h" // An h file containing input image as a 1D array unsigned char image_out[image_size]; short block[block_size];

167 LabVIEW to CCS Link 163 clock_t start, stop; double duration; #pragma DATA_SECTION (message, "msg_var") RTDX_CreateInputChannel(ichan); // Channel to receive data from RTDX_CreateOutputChannel(ochan); // Channel to use to write data #define MAX_MESSAGES 256 #define MAX_ELEMENTS 256 unsigned char message[max_elements]; // Q12 DCT coefficients (actual coefficient x 2 ^12 ) const short coe[12]={3135,2217,7568,8410,-1598,6149,-10498,4816,-3686,-12586,8035,-1223; // FUNCTIONS USED void dct(void); void idct(void); // dct.c // idct.c //MAIN FUNCTION void main() { int i,j,x; TARGET_INITIALIZE(); // Target initialization for RTDX start = clock(); //FORWARD DCT/ INVERSE DCT //block by block processing for(i=0;i<image_size;i+=block_size) { // get the block from the input image for(x=0;x<block_size;++x) block[x] = (short) image_in[i+x]; dct(); idct(); // perform FDCT on this block // perform IDCT on this block // store block to output image for(x=0;x<block_size;++x) { if(block[x]<0) image_out[i+x]=(unsigned char) (-block[x]); //Quick fix for errors occurring due tο else //negative a values occurring after IDCT! image_out[i+x]=(unsigned char) block[x]; stop = clock(); duration = (double) (stop - start) / DSK6711_cps;

168 Εφαρµογές RTDX_enableOutput(&ochan); //Enable the output channel, "ochan" for (i=0; i<image_size; i+=max_elements) { for (j=i; j<(i+max_elements); j++) { message[j-i] = (unsigned char) image_out[j]; //Write one row (256 elements) if (!RTDX_write( &ochan, message, sizeof(message) ) ) //Send the data to the host { fprintf(stderr, "\nerror: RTDX_write() failed!\n"); abort(); puts("\nprogram Completed!"); printf( "\n %s ", " The algorithm implementation completed in"); printf( "%5.5f %s \n\n", duration, "seconds" ); puts(" Completed Successfully!\n"); Πρόγραµµα 13. Ο C κώδικας του αρχείου DCT_Main_rtdx.c Στο Πρόγραµµα 14 παρουσιάζεται το αρχείο Dct.c, στο οποίο καθορίζεται η λειτουργία της συνάρτησης dct(), η οποία εφαρµόζει τον διδιάστατο DCT (2D-DCT) σε ένα 8x8 µπλοκ, µ ε χρήση του ταχύ µονοδιάστατου DCT (1D-DCT) σύµφωνα µε τον αλγόριθµο ΜcGovern. #include "dct_main.h" extern unsigned char image_in[image_size]; extern unsigned char image_out[image_size]; extern short block[block_size]; extern const short coe[12]; void dct(void) { short ADD[20]; /* Table of the addition coefficients */ int M [12]; /* Table of the results of the multiplication */ int postadd1,postadd2; int i,j; for(j=0;j<8;j++) { /* first set of additions */ ADD[0]= (block[j]+block[56+j]); /* x(0)+x(7) */ ADD[1]= (block[24+j]+block[32+j]); /* x(3)+x(4) */ ADD[2]= (block[8+j]+block[48+j]); /* x(1)+x(6) */ ADD[3]= (block[16+j]+block[40+j]); /* x(2)+x(5) */ ADD[4]= (block[j]-block[56+j]); /* x(0)+x(7) */ ADD[5]= (block[48+j]-block[8+j]); /* x(6)-x(1) */ ADD[6]= (block[24+j]-block[32+j]); /* x(3)-x(4) */

169 LabVIEW to CCS Link 165 ADD[7]= (block[16+j]-block[40+j]); /* x(2)-x(5) */ /* second set of additions, this is done so previous additions do not need to be repeated */ ADD[8]= (ADD[0]+ADD[1]); ADD[9]= (ADD[0]-ADD[1]); ADD[10]=(ADD[2]+ADD[3]); ADD[11]=(ADD[2]-ADD[3]); ADD[12]=(ADD[4]+ADD[6]); ADD[13]=(ADD[5]+ADD[7]); ADD[14]=(ADD[9]+ADD[11]); ADD[15]=(ADD[4]+ADD[5]); ADD[16]=(ADD[12]+ADD[13]); ADD[17]=(ADD[6]+ADD[7]); ADD[18]=(ADD[8]+ADD[10]); ADD[19]=(ADD[8]-ADD[10]); * Multiplications carried out, note: here 14. Includes one over root eight term */ M[0] = (int)(coe[0]*add[9]); M[1] = (int)(coe[1]*add[14]); M[2] = (int)(coe[2]*add[11]); M[3] = (int)(coe[3]*add[4]); M[4] = (int)(coe[4]*add[15]); M[5] = (int)(coe[5]*add[5]); M[6] = (int)(coe[6]*add[12]); M[7] = (int)(coe[7]*add[16]); M[8] =(int)(coe[8]*add[13]); M[9] =(int)(coe[9]*add[6]); M[10]=(int)(coe[10]*ADD[17]); M[11]=(int)(coe[11]*ADD[7]); /* post multiplication, additions + subtractions */ block[j]=add[18]; /* y(0) */ block[32+j]=add[19]; /* y(4) */ block[16+j]=(short)((m[0]+m[1])>>12); /* y(2) */ block[48+j]=(short)((m[1]-m[2])>>12); /* y(6) */ postadd1= M[6]+M[7]; postadd2= M[7]+M[8]; block[56+j]= (short)((m[3]+m[4]+postadd1)>>12); /* y(7) */ block[40+j]= (short)((m[4]+m[5]+postadd2)>>12); /* y(5) */ block[8+j]= (short)((m[9]+m[10]-postadd1)>>12); /* y(1) */ block[24+j]= (short)((postadd2-m[10]-m[11])>>12); /* y(3) */ for(i=0;i<64;i+=8) { /* first set of addtions */ ADD[0]=(block[i]+block[i+7]); /* x(0)+x(7) */ ADD[1]=(block[i+3]+block[i+4]); /* x(3)+x(4) */ ADD[2]=(block[i+1]+block[i+6]); /* x(1)+x(6) */ ADD[3]=(block[i+2]+block[i+5]); /* x(2)+x(5) */ ADD[4]=(block[i]-block[i+7]); /* x(0)-x(7) */ ADD[5]=(block[i+6]-block[i+1]); /* x(6)-x(1) */ ADD[6]=(block[i+3]-block[i+4]); /* x(3)-x(4) */ ADD[7]=(block[i+2]-block[i+5]); /* x(2)-x(5) */

170 Εφαρµογές /* second set of addtions, this is done so previous additions do not need to be repeated */ ADD[8]=(ADD[0]+ADD[1]); ADD[9]=(ADD[0]-ADD[1]); ADD[10]=(ADD[2]+ADD[3]); ADD[11]=(ADD[2]-ADD[3]); ADD[12]=(ADD[4]+ADD[6]); ADD[13]=(ADD[5]+ADD[7]); ADD[14]=(ADD[9]+ADD[11]); ADD[15]=(ADD[4]+ADD[5]); ADD[16]=(ADD[12]+ADD[13]); ADD[17]=(ADD[6]+ADD[7]); ADD[18]=(ADD[8]+ADD[10]); ADD[19]=(ADD[8]-ADD[10]); /* Multiplications carried out, note: here 14. Includes one over root eight term */ M[0]= (int)(coe[0]*add[9]); M[1]= (int)(coe[1]*add[14]); M[2]= (int)(coe[2]*add[11]); M[3]= (int)(coe[3]*add[4]); M[4]= (int)(coe[4]*add[15]); M[5]= (int)(coe[5]*add[5]); M[6]= (int)(coe[6]*add[12]); M[7]= (int)(coe[7]*add[16]); M[8]=(int)(coe[8]*ADD[13]); M[9]=(int)(coe[9]*ADD[6]); M[10]=(int)(coe[10]*ADD[17]); M[11]=(int)(coe[11]*ADD[7]); /* post multiplication, additions + subtractions */ block[i]=(short)(add[18]>>3); /* y(0) */ block[i+4]=(short)(add[19]>>3); /* y(4) */ block[i+2]=(short)((m[0]+m[1])>>15); /* y(2) */ block[i+6]=(short)((m[1]-m[2])>>15); /* y(6) */ postadd1= M[6]+M[7]; postadd2= M[7]+M[8]; block[i+7]= (short)((m[3]+m[4]+postadd1)>>15); /* y(7) */ block[i+5]= (short)((m[4]+m[5]+postadd2)>>15); /* y(5) */ block[i+1]= (short)((m[9]+m[10]-postadd1)>>15); /* y(1) */ block[i+3]= (short)((postadd2-m[10]-m[11])>>15); /* y(3) */ Πρόγραµµα 14. Ο C κώδικας του αρχείου Dct.c Στο πρόγραµµα 15 που ακολουθεί στη συνέχεια, παρουσιάζεται το αρχείο κώδικα Idct.c, στο οποίο καθορίζεται η λειτουργία της συνάρτησης idct(). Η συνάρτηση αυτή εφαρµόζει τον διδιάστατο αντίστροφο αυτή τη φορά DCT (2D-ΙDCT) µετασχηµατισµό σε ένα 8x8 µπλοκ, µε χρήση του ταχύ µονοδιάστατου αντίστροφου DCT (1D-ΙDCT) σύµφωνα µε τον αλγόριθµο ΜcGovern.

171 LabVIEW to CCS Link 167 #include "dct_main.h" extern unsigned char image_in[image_size]; extern unsigned char image_out[image_size]; extern short block[block_size]; extern const short coe[12]; void idct(void) { short z[8],add[7]; int PA[4]; int M[13]; int i,j; for(j=0;j<8;j++) { /* pre-additions */ ADD[0]=block[56+j]+block[40+j]; /* y(7)+y(5) */ ADD[1]=block[56+j]-block[8+j]; /* y(7)-y(1) */ ADD[2]=block[24+j]+block[40+j]; /* y(3)+y(5) */ ADD[3]=block[j]+block[32+j]; /* y(0)+y(4) */ ADD[4]=block[16+j]+block[48+j]; /* y(2)+y(6) */ ADD[5]=block[24+j]-block[8+j]; /* y(3)-y(1) */ ADD[6]=ADD[0]+ADD[5]; /* multiplications */ M[0]=(int)(coe[0] * block[16+j]); /* A*y(2) */ M[1]=(int)(coe[1] * ADD[4]); M[2]=(int)(coe[2]*block[48+j]); /* C*y(6) */ M[3]=(int)(coe[3]*block[56+j]); /* D*y(7) */ M[4]=(int)(coe[4]*ADD[0]); M[5]=(int)(coe[5]*block[40+j]); /* F*y(5) */ M[6]=(int)(coe[6]*ADD[1]); M[7]=(int)(coe[7]*ADD[6]); M[8]=(int)(coe[8]*ADD[2]); M[9]=(int)(coe[9]*block[8+j]); /* J*y(1) */ M[10]=(int)(coe[10]*ADD[5]); M[11]=(int)(coe[11]*block[24+j]); /* L*y(3) */ M[12]=(int)(block[32+j]<<1); /* 2*y(4) */ /* post additions */ PA[0]=((M[0]+ M [1]) >>12 ); PA[1]=(int)ADD[3]-M[12]; PA[2]=M[4]+M[7]; PA[3]=M[7]-M[10]; z[0]=add[3]+(short)pa[0]; z[1]=add[3]-(short)pa[0]; z[2]=(short)pa[1]+(short)((m[1]-m[2])>>12); z[3]=(short)pa[1]+ ( sh ort)((m[2]-m[1])>>12); z[4]=(short)((pa[2]+m[6]+m[3])>>12); z[5]=(short)((pa[2]+m[5]+m[8])>>12); z[6]=(short)((pa[3]+m[6]+m[9])>>12); z[7]=(short)((pa[3]+m[8]-m[11])>>12);

172 Εφαρµογές block[j]=z[0]+z[4]; /* x(0) */ block[8+j]=z[2]-z[5]; /* x(1) */ block[16+j]=z[3]+z[7]; /* x(2) */ block[24+j]=z[1]+z[6]; /* x(3) */ block[32+j]=z[1]-z[6]; /* x(4) */ block[40+j]=z[3]-z[7]; /* x(5) */ block[48+j]=z[2]+z[5]; /* x(6) */ block[56+j]=z[0]-z[4]; /* x(7) */ for(i=0;i<64;i+=8) { /* pre-additions */ ADD[0]=block[i+7]+block[i+5]; /* y(7)+y(5) */ ADD[1]=block[i+7]-block[i+1]; /* y(7)-y(1) */ ADD[2]=block[i+3]+block[i+5]; /* y(3)+y(5) */ ADD[3]=block[i]+block[i+4]; /* y(0)+y(4) */ ADD[4]=block[i+2]+block[i+6]; /* y(2)+y(6) */ ADD[5]=block[i+3]-block[i+1]; /* y(3)-y(1) */ ADD[6]=ADD[0]+ADD[5]; /* multiplications */ M[0]=(int)(coe[0]*block[i+2]); /* A*y(2) */ M[1]=(int)(coe[1]*ADD[4]); M[2]=(int)(coe[2]*block[i+6]); /* C*y(6) */ M[3]=(int)(coe[3]*block[i+7]); /* D*y(7) */ M[4]=(int)(coe[4]*ADD[0]); M[5]=(int)(coe[5]*block[i+5]); /* F*y(5) */ M[6]=(int)(coe[6]*ADD[1]); M[7]=(int)(coe[7]*ADD[6]); M[8]=(int)(coe[8]*ADD[2]); M[9]=(int)(coe[9]*block[i+1]); /* J*y(1) */ M[10]=(int)(coe[10]*ADD[5]); M[11]=(int)(coe[11]*block[i+3]); /* L*y(3) */ M[12]=(int)(block[i+4]<<1); /* 2*y(4) */ /* post additions */ PA[0]=(int)((M[0]+M[1])>>12); PA[1]=(int)((ADD[3]-M[12])>>3); PA[2]=M[4]+M[7]; PA[3]=M[7]-M[10]; z[0]=(add[3]+(short)pa[0])>>3; z[1]=(add[3]-(short)pa[0])>>3; z[2]=(short)pa[1]+(short)((m[1]-m[2])>>15); z[3]=(short)pa[1]+(short)((m[2]-m[1])>>15); z[4]=(short)((pa[2]+m[6]+m[3])>>15); z[5]=(short)((pa[2]+m[5]+m[8])>>15); z[6]=(short)((pa[3]+m[6]+m[9])>>15); z[ 7]=(short)((PA[3]+M[8] -M[11])>>15); block[i+0]=(z[0]+z[4]); /* x[0] */ block[i+1]=(z[2]-z[5]); /* x[1] */ blo ck[i+ 2 ]=(z[3]+z[7]); /* x[2] */ block[i+3]=(z[1]+z[6]); /* x[3] */ block[i+4]=(z[1]-z[6]); /* x[4] */ block[i+5]=(z[3]-z[7]); /* x[5] */

173 LabVIEW to CCS Link 169 blo ck[i+ 6 ]=(z[2]+z[5]); /* x[6] */ block[ i+ 7 ]=(z[0]-z[4]); /* x[7] */ Πρόγραµµα 15. Ο C κώδικας του αρχείου Idct.c Η κατανοµή των περιοχών της µνήµης πραγµατοποιείται στο αρχείο rtdx_dctfast.cmd που πα ρουσιάζεται στο Πρόγραµµα 16. -c -heap 0x1000 -stack 0x1000 -u vectors -u _auto_init _HWI_Cache_Control = 0; _RTDX_interrupt_mask = ~0x ; MEMORY { VECS: o= h l= h /* interrupt vectors */ PMEM: o= h l=0000fe00h /* Internal RAM (L2) mem */ BMEM: o= h l= h /* CE0, SDRAM, 16 MBytes */ SECTIONS {.intvecs > 0h.text > BMEM.rtdx_text > BMEM.far > BMEM.stack > BMEM.b ss > BMEM.cinit > BMEM.pinit > PMEM.cio > BMEM.const > BMEM.dat a > BMEM.rtdx_data > BMEM.switch > BMEM.sysmem > BMEM myvar0 > BMEM myvar1 > BMEM msg_var > BMEM Πρόγραµµα 16. To αρχείο rtdx_dctfast.cmd Στο Σχήµα 144 παρουσιάζεται το View Window του project στο CCS που δ ηµιουργείται για την εφαρµογή του ευθύ και του αντίστροφου DCT µε την χρήση του

174 Εφαρµογές αλγόριθµου McGovern σε µια εικόνα κλίµακας του γκρι µε όνοµα RTDX_DCT_Fast.pjt. Το οποίο εκτός από τα αρχεία DCT_Main.c, Dct.c, Idct.c και rtdx_dctfast.cmd που παρουσιάστηκαν παραπάνω πρέπει να περιέχει και το αρχείο intvecs.asm που έχει δηµιουργηθεί από την TI και περιλαµβάνεται στο CCS. Για τα αρχεία DCT_Main.c, Dct.c, και Idct.c επιλέγεται η τοπική βελτιστοποίηση File (-ο3). Επίσης στο project θα πρέπει να προστεθούν και οι βιβλιοθήκες rtdx.lib (ή rtdxsim.lib αν θα χρησιµοποιηθεί ο εξοµοιωτής) και rts6701.lib. Σχήµα 144. Το View Window του CCS για το RTDX_DCT_Fast.pjt Κωδικοποίηση και αποκωδικοποίηση σύµφωνα µε το πρότυπο JPEG Το JPEG αποτελεί ένα από τα πλέον διαδεδοµένα πρότυπα (standards) κωδικοποίησης εικόνας. H ονοµασία του προέρχεται από τα αρχικά του Joint Photographic Experts Group, δ ηλαδή της επιτροπής που το δηµιούργησε και το τυποποίησε, ενώ αποτελεί το πρώτο διεθνές πρότυπ ο συµ πίεση ς γι α συνεχούς τόνου ασπρόµαυρες αλλά και έγχρωµες εικόνες. Το πρότυπο JPEG καθορίζει τέσσερις τρόπους (modes) κωδικοποίησης, από τους ο ποίους ο ακολουθιακός (sequential), ο προοδευτικός (progressive) και ο ιεραρχικός (hierarchical) είναι µ έθοδοι κωδικοποίησης µε απώλειες (lossy), ενώ η προβλεπόµενη (predict ive) µέθοδος χωρίς απώλειες (lossless). Στην ενότητα αυτή περιγράφεται ένα µέρος της βασικής µεθόδου (baseline) κωδικοποίησης κατά JPEG, η οποία υιοθετεί τον ακολουθιακό τρόπο κωδικοποίησης (sequential codec), που είναι και αυτός που χρησιµοποιείται πιο συχνά. Στο σχήµα 145 παρουσιάζεται η δοµή ενός τέτοιου JPEG κωδικοποίητη (encoder).

175 LabVIEW to CCS Link 171 Σχήµα 145. Ο JPEG κωδικοποιητής (encoder) Όπως φαίνεται και στο σχήµα 145, η JPEG κωδικοποίηση περιλαµβάνει τρία (3) κύρια στάδια : (i) τον µετασχηµατισµό DCT, (ii) την κβάντιση (quantization) και (iii) την κωδ ικοποίηση εντροπίας (entropy encoding). Θεωρώντας µια αρχική εικόνα, θα πρέπει να προηγηθούν κάποιες διεργασίες σε αυτήν πριν εισέλθουν τα δεδοµένα της στον κωδικοποιητή. Σύµ φωνα πάντα µε το πρότυπο JPEG, αρχικά αφαιρείται ο παράγοντας 128 από κάθε τιµ ή εικονοστοιχείου της εικόνας, µετατοπίζοντας έτσι το πεδίο τιµών της φωτεινότητάς της απ ό [0 255] στο [ ], δηλαδή µε µέση τιµή µηδέν. Στη συνέχεια η ει κόνα υποδιαιρείται σε µπλοκ των 8x8, όπου εφαρµόζεται ακολούθως ο µετασχηµατισµός D CT σε καθένα από αυτά, παράγοντας αντίστοιχα 64 νέες τιµές, που καλούνται DCT συντελεστές. Μπορεί να χρησιµοποιηθεί οποιοσδήποτε αλγόριθµος για την υλοποίηση του DCT, αφού το πρότυπο δεν καθορίζει συγκ εκριµένο αλγόριθµο, δηλαδή δεν υποδεικνύει τον τρόπο εφαρµογής του DCT σε µια εικόνα. Εφαρµόζοντας εποµένως τον ευθύ DCT µετασχηµατισµό σε κ άθε 8x8 µπλοκ της εικόνας, θα προκύψουν αντίστοιχα 8x8 συντελεστές (ένας DC και 63 AC). Όπως είναι ήδη γνωστό, η πληροφορία κάθε 8x8 µπλοκ έχει περιοριστεί στις χαµηλές σ υχνότητες, δηλαδή στον DC συντελεστή και µερικούς γύρω από αυτόν AC συντελεστές. Εποµένως οι AC συντελεστές στις υψηλές κυρίως συχνότητες µπορούν να µηδενιστούν, επιτυγχάνοντας έτσι συµπίεση. Ο πιο απλός τρόπος να µηδενιστούν οι συντελεστές που δεν περιέχουν σηµαντική πληροφορία, είναι διαιρώντας τους µε κάποιες κατάλληλες τιµές. Η διαδικασία αυτή καλείται κβάντιση (quantization) των DCT συντελεστών. Οι τιµές µε τις οποίες θα διαιρεθούν οι DCT συντελεστές περιέχονται στον πίνακα κβάντισης που π ροτείνεται από το JPEG πρότυπο και παρουσιάζεται στο Σχήµα 146. Οι διαστάσεις του JPEG quantization table Luminance Σχήµα 146. Ο πίνακας κβάντισης που αντιστοιχεί στη συνιστώσα της φωτεινότητας

176 Εφαρµογές πίνακα κβάντισης είναι 8x8 επειδή οι διεργασίες εφαρµόζονται σε κάθε 8x8 µπλοκ της εικόνας. Η αντίστροφη διαδικασία της κβάντισης καλείται αποκβάντιση (Dequantization) και πραγµατοποιείται κατά την αποκωδικοποίηση (decoding) µιας εικόνας. Όπως εύκολα αντιλαµβάνεται κανείς, η διαδικασία της αποκβάντισης περιλαµβάνει τον πολλαπλασιασµό των ήδη κβαντισµένων συντελεστών κάθε 8x8 µπλοκ επί τις αντίστοιχες τιµές του πίνακα κβάντισης. Το τρίτο και τελευταίο στάδιο ενός JPEG κωδικοποιητή αντιστοιχεί, βάσει και του σχήµατος 145, στην κωδικοποίηση εντροπίας (entropy encoding). Μετά την διαδικασία της κβάντισης των DCT συντελεστών, πολλοί από αυτούς (ιδιαίτερα στις υψηλές συχνότητες) έχουν µηδενιστεί, όπως άλλωστε ήταν και το ζητούµενο. Εποµένως αφού έχει αποµακρυνθεί η πλεονάζουσα πληροφορία, µπορούν πλέον να κωδικοποιηθούν οι εναποµείναντες συντελεστές, χρησιµοποιώντας κωδικοποίηση Huffman ή Arithmetic. Εκείνο που θα πρέπει να αναφερθεί είναι ότι ο DC συντελεστής κάθε 8x8 µπλοκ κωδικοποιείται κατά διαφορετικό τρόπο (DPCM) από ότι οι AC συντελεστές (RLE). Το γεγονός αυτό οφείλεται στο ότι ο DC συντελεστής απαιτεί περισσότερα bits για την κωδικοποίησή του σε σχέση µε τους AC συντελεστές. Επειδή το τµήµα της κωδικοποίησης εντροπίας δεν συµπεριλαµβάνεται στην υλοποίηση µέρους του προτύπου JPEG που θα ακολουθήσει, κρίνεται σκόπιµο να µην αναφερθούν περισσότερα στοιχεία για αυτήν. Εκείνο που θα πρέπει να αναφερθεί είναι ότι µετά και το στάδιο της κωδικοποίησης εντροπίας θα προκύψει µία ακολουθία bits, η οποία αποτελεί την κωδικοπ οιηµένη κατά JPEG εικόνα (*.jpg file). Για να µπορέσει να δει κανείς µια τέτοια εικόνα, θα πρέπει να την αποκωδικοποιήσει, ακολουθώντας τα τρία βήµατα που εικονίζονται στο σχήµα 147. JPEG Decoder IDCT transform Dequantization Entropy Decoding JPEG File Reconstructed image Σχήµα 147. Ο JPEG αποκωδικοποιητής (decoder) Όπως φαίνεται και στο σχήµα 147, η διαδικασία της αποκωδικοποίησης περιλαµβάνει αρχικά την αποκωδικοποίηση εντροπίας (entropy decoding), στη συνέχεια την αποκβάντιση (d equantization) και τέλος τον αντίστροφο µετασχηµατισµό DCT (inverse DCT) για την ανακατασκε υή της εικόνας

177 LabVIEW to CCS Link 173 Υλοποίηση τµήµατος της κωδικοποίησης εικόνας σύµφωνα µε το JPEG πρότυπο Για την υλοποίηση τµήµατος του JPEG κωδικοποιητή και αποκωδικοποιητή έχουν δ ηµιουργηθεί τα αρχεία jpeg.c και jpeg_main.h που παρουσιάζονται στην συνέχεια. Στο Πρόγραµµα 17 παρουσιάζεται ο C κώδικας του αρχείου jpeg.c που υλοποιεί µ έρους του JPEG κωδικοποιητή και αποκωδικοποιητή για µια ασπρόµαυρη εικόνα διαστάσεων 256x256. Τα τµήµατα του κωδικοποιητή JPEG που υλοποιούνται είναι ο ευθύς µ ετασχηµατισµός DCT, καθώς και η διαδικασία της κβάντισης. Τα τµήµατα του αποκωδικοποιητή JPEG που υλοποιούνται είναι η αποκβάντιση και αντίστροφος µ ετασχηµατισµός DCT για την ανακατασκευή της αρχικής εικόνας. #include <stdio.h> #include <stdlib.h> #include <math.h> #include <rt dx.h> /* RTDX_Data_Read */ #include "target.h" /* TARGET_INITIALIZE */ #include "jpeg_main.h" /* Includes and Constants used */ #pragma DATA_SECTION (image_in,"myvar0") #pragma DATA_SECTION (image_out,"myvar1") #pragma DATA_SECTION (array,"myvar2") #pragma DATA_SECTION (array2,"myvar3") #include "scenary.h" /* An h file containing input image as a 1D array */ #pragma DATA_SECTION (message, "msg_var") RTDX_Create OutputChannel(ochan); /* Channel to use to write data */ #define MAX_MESSAGES 256 #define MAX_ELEMENTS 256 unsigned char message[max_elements]; unsigned cha r image_out[image_size]; float array[h][w]; float array2[h][w]; int q_table[8 ][8] ={ {16,11,10, 16,24,40,51,61, {12,12,14,19,26,58,60,55, {14,13,16,24,40,57,69,56, {14,17,22,29,51,87,80,62, {18,22,37,56,68,109,103,77, {24,35,55,64,81,104,113,92, {49,64,78,87,103,121,120,101, {72,92,95,98,112,100,103,99; float cosine[8][8]= { { , , , , , , , , { , , , , , , , , { , , , , , , , , { , , , , , , , , { , , , , , , , , { , , , , , , , , { , , , , , , , , { , , , , , , , ;

178 Εφαρµογές /* image_in 1d --> 2d array */ void read_image() { int i, j; for(i=0; i<h; i++) for(j=0; j<w; j++) { array[i][j]=image_in[w*i+j]; /* DCT 8x8 blocks by 1-dimensional way. First rows and then columns. */ void dct() { int x,y,i,m,n; float t_array[8]; float temp,c1; /*** 1D DCT on rows ***/ for(m=0; m<h; m+=8) { for(n=0; n<w; n+=8) { for(x=m; x<m+8; x++) { for(y=n; y<n+8; y++) { temp = 0.0; for(i=n; i<n+8; i++) { temp += array[x][i] * cosine[i-n][y-n]; if((y-n)==0) c1 = invsqrt2; if((y-n)>0) c1 = 1; array2[x][y] = (float)(temp * c1/2); /*** 1D DCT on cols ***/ for(n=0; n<w; n+=8) { for(m=0; m<h; m+=8) { for(y=n; y<n+8; y++) { for(x=m; x<m+8; x++){ temp = 0.0; for(i=m; i<m+8; i++){ temp += array2[i][y] * cosine[i-m][x-m]; if((x-m)==0) c1 = invsqrt2; if((x-m)>0) c1 = 1; t_array[x-m] = (float)(temp * c1/2); for(i=0; i<8; i++){ array2[m+i][y] = t_array[i];

179 LabVIEW to CCS Link 175 /* Quantization */ void quantization() { int i, j, m, n; for(m=0; m<h; m+=8) { for(n=0; n<w; n+=8) { for(i=m; i<m+8; i++) { for(j=n; j<n+8; j++) { array2[i][j] = ROUND((float)(array2[i][j]/q_table[i-m][j-n])); /* Dequantization */ void dequantization() { int i, j, m, n; for(m=0; m<h; m+=8) { for(n=0; n<w; n+=8) { for(i=m; i<m+8; i++) { for(j=n; j<n+8; j++) { array2[i][j]*=(q_table[i-m][j-n]); /* Inverse DCT 1-dimensional way (idct) */ void idct() { int x,y,i,m,n; float t_array[8]; float temp,c1; /* IDCT on Rows */ for(m=0; m<h; m+=8) { for(n=0; n<w; n+=8) { for(x=m; x<m+8; x++) { for(y=n; y<n+8; y++) { temp = 0.0; for(i=n; i<n+8; i++){ if((i-n)==0) c1 = invsqrt2; if((i-n)>0) c1 = 1; temp += (float) (array2[x][i] * cosine[y-n][i-n] * c1/2); t_array[y-n] = temp;

180 Εφαρµογές for(i=0; i<8; i++){ array2[x][n+i] = t_array[i]; /* IDCT on cols */ for(n=0; n<w; n+=8) { for(m=0; m<h; m+=8){ for(y=n; y<n+8; y++){ for(x=m; x<m+8; x++){ temp = 0.0; for(i=m; i<m+8; i++){ if((i-m)==0) c1 = invsqrt2; if((i-m)>0) c1 = 1; temp += (float)(array2[i][y] * cosine[x-m][i-m] * c1/2); array[x][y] = temp; /* Rounds output image pixel values */ void write_image_out() { int i,j; int temp; for(i=0;i<image_len;i++) for(j=0;j<image_len;j++) { temp =(int)(round(array[i][j])); if(temp<0) temp=0; if(temp>255) temp=255; image_out[image_len*i+j] = (unsigned char) temp; /* main */ void main() { int i,j; TARGET_INITIALIZE(); /* Target initialization for RTDX */ read_image(); dct() ; /* DCT (1-d way) */ quantization(); dequantization(); idct(); /* IDCT (1-d way) */ write_image_out(); RTDX_enableOutput(&ochan); /* Enable the output channel,"ochan" */

181 LabVIEW to CCS Link 177 for (i=0; i<image_size; i+=max_elements) { for (j=i; j<(i+max_elements); j++) { message[j-i] = (unsigned char) image_out[j]; /* write one row (256 elements) */ /* Send the data to the host */ if (!RTDX_write( &ochan, message, sizeof(message) ) ) { fprintf(stderr, "\nerror: RTDX_write() failed!\n"); abort(); /* write a string to stdout */ puts(" Completed Successfully!\n"); Πρόγραµµα 17. Ο C κώδικας του αρχείου jpeg.c Στο C κώδικα του αρχείου jpeg.c, αρχικά συµπεριλαµβάνονται τα αρχεία stdio.h, stdlib.h, math.h, rtdx.h, target.h, jpeg_main.h και scenary.h. Το αρχείο rtdx.h περιέχει τις δ ηλώσεις των συναρτήσεων που σχετίζονται µε την RTDX τεχνολογία. Το αρχείο target.h περιλαµβάνει την δήλωση της συνάρτησης TARGET_INITIALIZE() η οποία αρχικοποιεί τον DSP και ενεργοποιεί τις διακοπές ώστε να ενεργοποιηθεί η RTDX τεχνολογία. Το αρχείο jpeg_main.h παρουσιάζεται στο Πρόγραµµα 18 και περιέχει τις δηλώσεις ορισµένων σταθερών. Το αρχείο scenary.h περιέχει την προς επεξεργασία εικόνα µε διαστάσεις 256 x 256 εικονοστοιχεία. Πριν από την δήλωση της συνάρτησης main() ορίζεται το RTDX κανάλι ochan που θα µ εταφέρει το αποτέλεσµα της επεξεργασίας από τον DSP στο GUI. Το κανάλι ochan µ εταφέρει από τον DSP στο GUI ένα πίνακα 256 αριθµών που αναπαριστά µια γραµµή από την τελική εικόνα. Επίσης πριν την συνάρτηση main() περιγράφονται οι συναρτήσεις read_image(), dct(), quantization(), dequantization(), idct() και write_image_out(). Στην συνάρτηση main() αρχικά γίνεται η αρχικοποίηση του DSP και η ενεργοποίηση τη ς RTDX τεχνολογίας. Με την κλήση της συνάρτησης read_image() η εικόνα αντιγράφεται σε ένα διδιάστατο πίνακα. O ευθύς DCT εφαρµόζεται στην εικόνα µε την κλήση της σ υνάρτησης dct(). Το στάδιο της κβάντισης πραγµατοποιείται µε την κλήση της συνάρτησης quantization(). Στο σηµείο αυτό έχει ολοκληρωθεί το τµήµα του κωδικοποιητή σύµφωνα µε JPEG πρότυπο. Με την κλήση της συνάρτησης dequantization() πραγµατοποιείται το στάδιο της αποκβάντισης. Το τµήµα του αποκωδικοποιητή κατά το JPEG πρότυπο ολοκληρώνεται µ ε την κλήση της συνάρτησης idct() µε την οποία εφαρµόζεται στην εικόνα ο αντίστροφος DCT. Με την συνάρτηση write_image() τα δεδοµένα της ανακατασκευασµένης εικόνας µ ετατρέπονται σε ακέραιους (στο διάστηµα [0 255]) και τοποθετούνται στον µονοδιάστατο πίνακα image_out. Έπειτα ενεργοποιείται το RTDX κανάλι εξόδου ochan και γίνεται η µ εταφορά της εικόνας από τον DSP στο GUI. Η µεταφορά της τελικής εικόνας πραγµατοποιείται σταδιακά δηλαδή κάθε φορά εγγράφεται στο RTDX κανάλι µόνο µια γραµµή της εικόνας δηλαδή ένας πίνακας των 256 αριθµών. Το αρχείο jpeg_main.h που παρουσιάζεται στο Πρόγραµµα 18 περιλαµβάνει τις δηλ ώσεις ορισµένων χρήσιµων σταθερών όπως οι IMAGE_LEN και BLOCK_LEN, µε τιµές 256 και 8 αντίστοιχα. Επιπλέον δηλώνονται οι σταθερές W και H που αντιστοιχούν στις διαστάσεις της εικόνας, καθώς και η σταθερά invsqrt2 που ισοδυναµεί µε 1 2. Τέλος κ αθορίζεται η συνάρτηση ROUND(), η οποία αποτελεί τη συνάρτηση στρογγυλοποίησης ενός

182 Εφαρµογές αριθµού στον πλησιέστερο ακέραιο. Η συνάρτηση αυτή χρησιµοποιείται για την στρογγυλο ποίηση των τιµών που προκύπτουν κατά τη διαδικασία της κβάντισης. #ifndef JPEG_MAIN_H #define IMAGE_LEN 256 #define IMAGE_SIZE (IMAGE_LEN*IMAGE_LEN) #define W 256 #define H 256 #define BLOCK_LEN 8 #define BLOCK_SIZE (BLOCK_LEN*BLOCK_LEN) #define invsqrt #define ROUND( a ) ( ( (a) < 0 )? (int) ( (a) ) : \ (int) ( (a) ) ) #endif Πρόγραµµα 18. To αρχείο jpeg_main.h Η κατανοµή των περιοχών της µνήµης πραγµατοποιείται στο αρχείο rtdx_jpeg.cmd που παρουσιάζεται στο Πρόγραµµα 19. -c -heap 0x1000 -stack 0x1000 -u vectors -u _auto_init _HWI_Cache_Control = 0; _RTDX_interrupt_mask = ~0x ; MEMORY { VECS: org = 0h, len = 0x220 IRAM: org = 0x , len = 0x0000FE00 /*internal memory*/ SDRAM: org = 0x , len = 0x00fdffff /*external memory*/ SDRAM0: org = 0x , len = 0x SDRAM1: org = 0x , len = 0x FLASH: org = 0x , len = 0x *flash memory*/ SECTIONS {.intvecs > 0h.text > SDRAM.rtdx_text > SDRAM.far > SDRAM

183 LabVIEW to CCS Link 179.stack > SDRAM.bss > SDRAM.cinit > SDRAM.pinit > IRAM.cio > SDRAM.const > SDRAM.data > SDRAM.rtdx_data > SDRAM.switch > SDRAM.sysmem > SDRAM myvar0 > SDRAM0 myvar1 > SDRAM1 myvar2 > SDRAM myvar3 > SDRAM msg_var > SDRAM Πρόγραµµα 19. To αρχείο rtdx_jpeg.cmd Στο Σχήµα 144 παρουσιάζεται το View Window του project στο CCS που δ ηµιουργείται για την υλοποίηση του τµήµατος του κωδικοποιητή και του αποκωδικοποιητή σύµφωνα µε το JPEG πρότυπο µ ε όνοµα RTDX_JPEG.pjt. Το οποίο εκτός από τα αρχεία jpeg.c, και rtdx_jpeg.cmd που παρουσιάστηκαν παραπάνω πρέπει να περιέχει και το αρχείο intvecs.asm που έχει δηµιουργηθεί από την TI και περιλαµβάνεται στο CCS. Για τo αρχείο jpeg.c επιλέγεται η τοπική βελτιστοποίηση File (-ο3). Επίσης στο project θα πρέπει να προστεθούν και οι βιβλιοθήκες rtdx. lib (ή rtdxsim.lib αν θα χρησιµοποιηθεί ο εξοµοιωτής) και rts6701.lib. Σχήµα 148. Το View Window του CCS για το RTDX_JPEG.pjt

184 Εφαρµογές Ισοστάθµιση ιστογράµµατος Μία από τις πιο απλές και αποδοτικές τεχνικές βελτίωσης της ποιότητας µιας εικόνας είναι η ισοστάθµιση ιστογράµµατος (histogram equalization). Ο σκοπός αυτής της διαδικασίας είναι η παραγωγή µιας βελτιωµένης οπτικά εικόνας, της οποίας το ιστόγραµµα θα είναι πιο οµοιόµορφα κατανεµηµένο. Η ισοστάθµιση ιστογράµµατος παρουσιάζει πολύ καλά αποτελέσµατα σε εικόνες οι οποίες χαρακτηρίζονται από χαµηλή αντίθεση (low contrast), όπου δηλαδή οι περισσότερες τιµές τις φωτεινότητας περιορίζονται σε µια µικρή περιοχή του διαστήµατος [ 0 255]. Ισοστάθµιση ιστογράµµατος σε εικόνα της κλίµακας του γκρίζου Πιο αναλυτικά, το αποτέλεσµα της διαδικασίας της ισοστάθµισης ιστογράµµατος σε µια εικόνα είναι η διεύρυνση της κατανοµής της φωτεινότητάς της, ώστε αυτή να καταλαµβάνει όλο το εύρος [0 255] (εφόσον πρόκειται για ασπρόµαυρη εικόνα) και όχι µόνο µια µικρή περιοχή. Κατά αυτό τον τρόπο αυξάνεται η αντίθεση της εικόνας µε αποτέλεσµα την οπτική της βελτίωση, δηλαδή µια εικόνα πιο ευχάριστη στην ανθρώπινη όραση. Κατά συνέπεια, η ισοστάθµιση ιστογράµµ ατος παρουσιάζει πολύ καλά αποτελέσµατα σε εικόνες οι οποίες χαρακτηρίζο νται από χαµηλή αντίθεση, δηλαδή όπου οι περισσότερες τιµές τις φωτεινότητας περιορίζονται σε µια µ ικρή µόνο περιοχή του διαστήµατος [ 0 255]. Η διαδικασία ισοστάθµισης ιστογράµµατος µπορεί να πραγµατοποιηθεί µέσω των ακόλουθων τεσσάρων βηµάτων : (1) Υπολογισµός του ιστογράµµατος της αρχικής εικόνας (2) Υπολογισµός του αθροιστικού (ή συσωρευτικού) ιστογράµµατος (3) Υπολογισµός των νέων κανονικοποιηµένων τιµών της φωτεινότητας (4) Μετασχηµατισµός της αρχικής εικόνας στην τελική Ισοστάθµιση ιστογράµµατος σε έγχρωµη εικόνα Ο πιο απλός τρόπος ισοστάθµισης ιστογράµµατος µιας έγχρωµης εικόνας που θα µπορούσε κανείς να σκεφτεί, είναι η εφαρµογή του αλγόριθµου της ισοστάθµισης του ιστογράµµ ατος σε καθένα από τα τρία κανάλια R G και B χωριστά. Είναι φανερό όµως ότι η εικόνα που προκύπτει έπειτα από την ισοστάθµιση ιστογράµµατος σε καθεµιά από τις τρεις συνιστώσες της, έχει πιο έντονα χρώµατα σε σχέση µε την αρχική εικόνα, και κατά συνέπεια να είναι πιο ευχάριστη στην όραση. Παρόλα αυτά, η µέθοδος αυτή δεν θεωρείται αποτελεσµατική αφενός λόγο της υπολογιστικής πολυπλοκότητας, η οποία αυξάνεται α νάλογα µε το µέγεθος της εικόνας, και αφετέρου λόγο της σηµαντικής αύξησης της αντίθεσης που έχει ως αποτέλεσµα την εµφάνιση χρωµατικής αντίθεσης ακόµη και σε π εριοχές που χαρακτηρίζονται από χρωµατική οµοιογένεια. Πολλές φορές, µια έγχρωµη εικόνα προτού υποστεί κάποιου είδους επεξεργασία µ ετασχηµατίζεται από τον χρωµατικό χώρο RGB σε έναν άλλο χώρο όπως ο HSI, ο YC b C r, ο LAB κτλ. Oι χρωµ ατικοί αυ τοί χώροι παρουσιάζουν ορισµένα πλεονεκτήµατα έναντι του χώρου RGB, και για αυτό το λόγο πολλοί αλγόριθµοι που αφορούν έγχρωµες εικόνες προϋποθέτουν για την εφαρµ ογή τους τον µετασχηµατισµό της εικόνας σε έναν άλλο χώρο. Ένας από τους χρω µατικούς χώρους που χρησιµοποιείται συχνά (κυρίως στην κωδικοποίηση ει κόνας, όπως είναι η JPEG κωδικοποίηση) είναι ο χώρος YC b C r. Το πλεονέκτηµα που παρουσιάζει η αναπαράσταση των χρωµάτων µιας εικόνας στον χρωµατικό χώρο YC b C r, είναι ότι το µεγαλύτερο ποσοστό της πληροφορίας εµπεριέχεται στην Y συνιστώσα, που

185 LabVIEW to CCS Link 181 κ αλείται φωτεινότητα (luminance). Από την άλλη µεριά, οι συνιστώσες Cb και Cr, που καλούνται συνιστώσες χρωµατικότητας (chrominance), περιλαµβάνουν συγκριτικά µε την Y συνιστώσα πολύ µικρότερο ποσοστό πληροφορίας µιας εικόνας. Κάτι τέτοιο δεν συµβαίνει µε το ν χώρο RGB όπου κάθε κανάλι περιλαµβάνει εξίσου το ίδιο ποσοστό πληροφορίας. Εκµεταλλευόµενος λοιπόν κανείς το πλεονέκτηµα που εµφανίζει ο χώρος YC b C r, όπου το µεγαλύτερο ποσοστό πληροφορίας συγκεντρώνεται στην Υ συνιστώσα, µπορεί να εφ αρµόσει τον αλγόριθµο της ισοστάθµισης ιστογράµµατος µόνο σε αυτήν τη συνιστώσα και να έχει εξίσου, ή ακόµη και καλύτερα αποτελέσµατα σε σχέση µε την εφαρµογή της στον χώ ρο RGB. O µετασχηµατισµός από τον χρωµατικό χώρο RGB στον YC b C r, δίνεται από την σχέση 3. Y Cb Cr = = = 0.299R 0.169R 0.500R G 0.331G 0.419G B 0.500B 0.081B (3) Αντίστοιχα, ο αντίστροφος µετασχηµατισµός ( YC b C r RGB ) δίνεται από την σχέση 4: R = 1.000Y G = 1.000Y 0.344Cb B = 1.000Y Cb Cr 0.714Cr (4) Υ λοποίηση της ισοστάθµισης του ιστογράµµατος έγχρωµης εικόνας στον RGB χώρο Στην συνέχεια παρουσιάζεται ο C κώδικας του αρχείου histeq_rgb_rtdx.c που υλοποιεί την ισοστάθµιση του ιστογράµµατος µιας έγχρωµης εικόνας στον RGB χώρο. #include <stdlib.h> #include <string.h> #include <math.h> #include <rtdx.h> /* RTDX_Data_Read */ #include <stdio.h> /* printf */ #include "target.h" /* TARGET_INITIALIZE */ #define IMAGE_SIZE #define H 256 #define W 256 #include "red.h" /* R_1d[IMAGE_SIZE] data */ #include "green.h" /* G_1d[IMAGE_SIZE] data */ #include "blue.h" /* B_1d[IMAGE_SIZE] data */ #pragma DATA_SECTION (R_1d,"R1_var") #pragma DATA_SECTION (G_1d,"G1_var") #pragma DATA_SECTION (B_1d,"B1_var") #pragma DATA_SECTION (R,"R_var") int R[IMAGE_SIZE];

186 Εφαρµογές #pragma DATA_SECTION (RGB_out,"RGB_out_var") unsigned char RGB_out[3*IMAGE_SIZE]; #pragma DATA_SECTION (im_1d,"im_var") unsigned char im_1d[image_size]; #pragma DATA_SECTION (message, "msg_var") RTDX_CreateOutputChannel(ochan); /* Channel to use to write data */ #define MAX_MESSAGES 758 #define MAX_ELEMENTS 256 unsigned char message[max_elements]; /* 256 pixels each message */ int ch_count; /* Histogram Equalization. */ void hist_equalization() { int i; int hist[256]; int sum_hist[256]; int sum; /* Clear hist[256] & sum_hist[256] */ for (i=0; i<256; i++) { hist[i] = 0; sum_hist[i] = 0; /* Calculate image histogram */ for(i=0; i<image_size; i++) { hist[(int) im_1d[i]]++; /* Calculate normalized sum of hist */ sum = 0; for(i=0; i<256; i++) { sum = sum + hist[i]; sum_hist[i] = sum * 255 ; for( i=0; i<256; i++) { sum_hist[i] = sum_hist[i] >> 16; /* Transform Image using sum_hist as a LUT */ for(i=0; i<image_size; i++) { R[i]= sum_hist[(unsigned char)im_1d[i]];

187 LabVIEW to CCS Link 183 /* Writes output image */ void write_image() { int i; fo r (i=0; i<image_size; i+ +) { if (R[i]<0) R[i]=0; if (R[i]>255) R[i]=255; RGB_out[i + ch_count*image_size] = (unsigned char) R[i]; /* main program */ void main () { int i, j; ch_count=0; /* Equalize RED channel */ for (i=0; i<image_size; i++) { im_1d[i] = R_1d[i]; hist_equalization(); ch_count=0; puts("\n histeq RED ok!"); write_image(); /* Equalize GREEN channel */ for (i=0; i<image_size; i++) { im_1d[i] = G_1d[i]; hist_equalization(); ch_count=1; puts("\n histeq GREEN ok!"); write_image(); /* Equalize BLUE channel */ for (i=0; i<image_size; i++) { im_1d[i] = B_1d[i]; hist_equalization(); ch_count=2; puts("\n histeq BLUE ok!"); write_image(); /* Send RED GREEN BLUE data */ TARGET_INITIALIZE(); /* Target initialization for RTDX */ RTDX_enableOutput(&ochan);

188 Εφαρµογές for (i=0; i<(3*image_size); i+=max_elements) { for (j=i; j<(i+max_elements); j++) { message[j-i] = (unsigned char) RGB_out[j]; /* Send the data to the host */ if (!RTDX_write( &ochan, message, sizeof(message) ) ) { fprintf(stderr, "\nerror: RTDX_write() failed!\n"); abort(); puts("\nprogram Completed!"); Πρόγραµµα 20. Ο C κώδικας του αρχείου histeq_rgb_rtdx.c Στο C κώδικα του αρχείου histeq_rgb_rtdx.c που παρουσιάζεται στο Πρόγραµµα 20, αρχικά συµπεριλαµβάνονται τα αρχεία stdlib.h, string.h, math.h, rtdx.h, stdio.h, target.h, red.h, green.h και blue.h. Το αρχείο rtdx.h περιέχει τις δηλώσεις των συναρτήσεων που σχετίζονται µε την RTDX τεχνολογία. Το αρχείο target.h περιλαµβάνει την δήλωση της συνάρτησης TARGET_INITIALIZE() η οποία αρχικοποιεί τον DSP και ενεργοποιεί τις διακοπές ώστε να ενεργοποιηθεί η RTDX τεχνολογία. Τα αρχεία red.h green.h και blue.h περιέχουν αντίστοιχα την R, G και B συνιστώσα της έγχρωµης εικόνας στην οποία θα πραγµατοποιηθεί η ισοστάθµιση του ιστογράµµατος της. Η προς επεξεργασία εικόνα έχει διαστάσεις 256 x 256 εικονοστοιχεία. Πριν από την δήλωση της συνάρτησης main() ορίζεται το RTDX κανάλι ochan που θα µεταφέρει το αποτέλεσµα της επεξεργασίας από τον DSP στο GUI. Το κανάλι ochan µεταφέρει από τον DSP στο GUI ένα πίνακα 256 αριθµών που αναπαριστά µια γραµµή από την τελική εικόνα. Επίσης πριν την συνάρτηση main() περιγράφονται οι συναρτήσεις hist_equalization() και write_image(). Στην συνάρτηση main() αρχικά γίνεται η αρχικοποίηση του DSP και η ενεργοποίηση της RTDX τεχνολογίας. Για κάθε συνιστώσα καλούνται οι συναρτήσεις hist_equalization() και write_image(). Με την κλήση της συνάρτησης hist_equalization() γίνεται η ισοστάθµιση το υ ιστογράµ µατος της αντίστοιχης συνιστώσας. Με την συνάρτηση write_image() το περιεχόµενο της ισοσταθµισµένης συνιστώσας µετατρέπεται σε ακέραιους (στο διάστηµα [0 255]) και τοποθετούνται στον µονοδιάστατο πίνακα RGBout. Όταν ολοκληρωθεί η ισοστάθµιση και των τριών συνιστωσών ο µονοδιάστατος πίνακας RGBout µε 256x256x3 = στοιχεία περιέχει και τις τρεις συνιστώσες της ισοσταθµισµένης εικόνας. Τα πρώτα στοιχεία του αντιστοιχούν στην R συνιστώσα, τα επόµενα στην G συνιστώσα και τα τελευταία στοιχεία αντιστοιχούν στην B συνιστώσα. Έπειτα ενεργοποιείται το RTDX κανάλι εξόδου ochan και γίνεται η µεταφορά της εικόνας από τον DSP στο GUI. Η µ εταφορά της τελικής εικόνας πραγµατοποιείται σταδιακά δηλαδή κάθε φορά εγγράφεται στο R TDX κανάλι µόνο µια γραµµή της κάθε συνιστώσας της εικόνας δηλαδή ένας πίνακας των 256 αριθµών. Το επόµενο αρχείο που είναι απαραίτητο για το project και παρουσιάζεται στο Πρόγραµµα 21, είναι το rtdx_histeqrgb.cmd. Στο αρχείο αυτό δηλώνονται τρείς περιοχές της µ νήµης της πλατφόρµας DSK, στις οποίες αποδίδεται κάποιο όνοµα (π.χ. BMEM), ενώ στο

189 LabVIEW to CCS Link 185 πεδίο SECTIONS αντιστοιχίζεται κάθε µεταβλητή που έχει δηλωθεί στον κώδικα C µε την ν τιρεκτίβα #pragma σε µία από αυτές τις περιοχές. -c -heap 0x1000 -stack 0x1000 -u vectors -u _auto_init _HWI_Cache_Control = 0; _RTDX_interrupt_mask = ~0x ; MEMORY { VECS: o= h l= h /* interrupt vectors */ PMEM: o= h l=0000fe00h /* Internal RAM (L2) mem */ BMEM: o= h l= h /* CE0, SDRAM, 16 MBytes */ SECTIONS {.intvecs > 0h.text > BMEM.rtdx_text > BMEM.far > BMEM.stack > BMEM.bss > BMEM.cinit > BMEM.pinit > PMEM.cio > BMEM.const > BMEM.data > BMEM.rtdx_data > BMEM.switch > BMEM.sysmem > BMEM msg_var > BMEM im_var > BMEM R1_var > BMEM G1_var > BMEM B1_var > BMEM R_var > BMEM RGB_out_var > BMEM Πρόγραµµα 21. To αρχείο rtdx_histeqrgb.cmd Στο Σχήµα 149 παρουσιάζεται το View Window του project στο CCS που δηµιουργείται για την υλοποίηση της ισοστάθµισης του ιστογράµµατος στον χώρο RGB µε όνοµα RTDX_histeqRGB.pjt. Το οποίο εκτός από τα αρχεία histeq_rgb_rtdx.c, και

190 Εφαρµογές rtdx_histeqrgb.cmd που παρουσιάστηκαν παραπάνω πρέπει να περιέχει και το αρχείο intvecs.asm που έχει δηµιουργηθεί από την TI και περιλαµβάνεται στο CCS. Για τo αρχείο histeq_rgb_rtdx.c επιλέγεται η τοπική βελτιστοποίηση File (-ο3). Επίσης στο project θα πρέπει να προστεθούν και οι βιβλιοθήκες rtdx.lib (ή rtdxsim.lib αν θα χρησιµοποιηθεί ο εξοµοιωτής) και rts6701.lib. Σχήµα 149. Το View Window του CCS για το RTDX_histeqRGB.pjt Υλοποίηση της ισοστάθµισης του ιστογράµµατος έγχρωµης εικόνας στον YCbCr χώρο Στην συνέχεια παρουσιάζεται ο C κώδικας του αρχείου histeq_ Y_rtdx.c που υλοποιεί την ισοστάθµιση του ιστογράµµατος µιας έγχρωµης εικόνας στον YCbCr χώρο. #include <stdlib.h> #include <string.h> #include <math.h> #include <rtdx.h> /* RTDX_Data_Read */ #include <stdio.h> /* printf */ #include "target.h" /* TARGET_INITIALIZE.*/ #define IMAGE_SIZE #define H 256 #define W 256 #include "red.h" /* R_1d[IMAGE_SIZE] data */ #include "green.h" /* G_1d[IMAGE_SIZE] data */ #include "blue.h" /* B_1d[IMAGE_SIZE] data */

191 LabVIEW to CCS Link 187 #pragma DATA_SECTION (R_1d,"R1_var") #pragma DATA_SECTION (G_1d,"G1_var") #pragma DATA_SECTION (B_1d,"B1_var") #pragma DATA_SECTION (Y, "Y_var") #pragma DATA_SECTION (Cb,"Cb_var") #pragma DATA_SECTION (Cr,"Cr_var") #pragma DATA_SECTION (R, "R_var") #pragma DATA_SECTION (G, "G_var") #pragma DATA_SECTION (B, "B_var") #pragma DATA_SECTION (RGB_out,"RGB_var") unsigned char RGB_out[3*IMAGE_SIZE]; int Y[IMAGE_SIZE]; int Cb[IMAGE_SIZE]; int Cr[IMAGE_SIZE]; int R[IMAGE_SIZE]; int G[IMAGE_SIZE]; int B[IMAGE_SIZE]; #pragma DATA_SECTION (message, "msg_var") RTDX_CreateOutputChannel(ochan); /* Channel to use to write data */ #define MAX_MESSAGES 256 #define MAX_ELEMENTS 256 unsigned char message[max_elements]; /* 256 pixels each message */ /* RGB to YCbCr color conversion */ void RGB_to_YCbCr() { int i; for(i=0; i<image_size; i++) { /* weights ->(weights *1000) */ Y[i] = 299*R_1d[i] + 587*G_1d[i] + 114*B_1d[i]; Cb[i] = -169*R_1d[i] - 331*G_1d[i] + 500*B_1d[i]; Cr[i] = 500*R_1d[i] - 419*G_1d[i] - 81*B_1d[i]; /* devide with 1024=2^10 */ for(i=0; i<image_size; i++) { Y[i] = (int) (Y[i]/1000); Cb[i] = (int) (Cb[i]/1000); Cr[i] = (int) (Cr[i]/1000); /* Histogram Equalization. */ void hist_equalization() { int i; int hist[256]; int sum_hist[256];

192 Εφαρµογές int sum; /* Clear hist[256] & sum_hist[256] */ for (i=0; i<256; i++) { hist[i] = 0; sum_hist[i] = 0; /* Calculate image histogram */ for(i=0; i<image_size; i++) { hist[(int) Y[i]]++; /* Calculate normalized sum of hist */ sum = 0; for(i=0; i<256; i++) { sum = sum + hist[i]; sum_hist[i] = sum * 255 ; for(i=0; i<256; i++) { sum_hist[i] = sum_hist[i] >> 16; /* Transform Image using sum_hist as a LUT */ for(i=0; i<image_size; i++) { Y[i]= sum_hist[(unsigned char)y[i]]; /* YCbCr to RGB color conversion */ void YCbCr_to_RGB() { int i; for(i=0; i<image_size; i++) { R[i] = 10000*Y[i] - 9*Cb[i] *Cr[i]; G[i] = 10000*Y[i] *Cb[i] *Cr[i]; B[i] = 10000*Y[i] *Cb[i] + 10*Cr[i]; for(i=0; i<image_size; i++) { R[i] = (int) (R[i]/10000); G[i] = (int) (G[i]/10000); B[i] = (int) (B[i]/10000);

193 LabVIEW to CCS Link 189 /* Writes output image */ void write_image() { int i; for (i=0; i<image_size; i++) { if (R[i]<0) R[i]=0; if (G[i]<0) G[i]=0; if (B[i]<0) B[i]=0; if (R[i]>255) R[i]=255; if (G[i]>255) G[i]=255; if (B[i]>255) B[i]=255; RGB_out[i] = (unsigned char) R[i]; RGB_out[i+IMAGE_SIZE] = (unsigned char) G[i]; RGB_out[i+2*IMAGE_SIZE] = (unsigned char) B[i]; /* main program */ void main () { int i, j; RGB_to_YCbCr(); hist_equalization(); puts("\n Equalization ok!"); YCbCr_to_RGB(); write_image(); /* Send RED GREEN BLUE data */ TARGET_INITIALIZE(); /* Target initialization for RTDX */ RTDX_enableOutput(&ochan); for (i=0; i<(3*image_size); i+=max_elements) { for (j=i; j<(i+max_elements); j++) { message[j-i] = (unsigned char) RGB_out[j]; /* Send the data to the host */ if (!RTDX_write( &ochan, message, sizeof(message) ) ) { fprintf(stderr, "\nerror: RTDX_write() failed!\n"); abort(); puts("\nprogram Completed!"); Πρόγραµµα 22. Ο C κώδικας του αρχείου histeq_y_rtdx.c

194 Εφαρµογές Στο C κώδικα του αρχείου histeq_υ_rtdx.c που παρουσιάζεται στο Πρόγραµµα 22, αρχικά συµπεριλαµβάνονται τα αρχεία stdlib.h, string.h, math.h, rtdx.h, stdio.h, target.h, red.h, green.h και blue.h. Το αρχείο rtdx.h περιέχει τις δηλώσεις των συναρτήσεων που σχετίζονται µε την RTDX τεχνολογία. Το αρχείο target.h περιλαµβάνει την δήλωση της συνάρτησης TARGET_INITIALIZE() η οποία αρχικοποιεί τον DSP και ενεργοποιεί τις διακοπές ώστε να ενεργοποιηθεί η RTDX τεχνολογία. Τα αρχεία red.h green.h και blue.h περιέχουν αντίστοιχα την R, G και B συνιστώσα της έγχρωµης εικόνας στην οποία θα πραγµατοποιηθεί η ισοστάθµιση του ιστογράµµατος της. Η προς επεξεργασία εικόνα έχει διαστάσεις 256 x 256 εικονοστοιχεία. Πριν από την δήλωση της συνάρτησης main() ορίζεται το RTDX κανάλι ochan που θα µεταφέρει το αποτέλεσµα της επεξεργασίας από τον DSP στο GUI. Το κανάλι ochan µεταφέρει από τον DSP στο GUI ένα πίνακα 256 αριθµών που αναπαριστά µια γραµµή από την τελική εικόνα. Επίσης πριν την συνάρτηση main() περιγράφονται οι συναρτήσεις RGB_to_YCbCR(), hist_equalization(), YCbCr_to_RGB() και write_image(). Στην συνάρτηση main() αρχικά η εικόνα µετατρέπεται από τον RGB χώρο στον YCbCR χρησιµοποιώντας την συνάρτηση RGB_to_YCbCR(). Με την συνάρτηση hist_equalization() πραγµατοποιείται η ισοστάθµιση της Y συνιστώσας (δηλαδή της φωτεινότητας). Έπειτα χρησιµοποιώντας την συνάρτηση YCbCr_to_RGB() η ισοσταθµισµένη εικόνα µετατρέπεται στον RGB χώρο. Με την συνάρτηση write_image() το περιεχόµενο της ισοσταθµισµένης συνιστώσας µετατρέπεται σε ακέραιους (στο διάστηµα [0 255]) και τοποθετούνται στον µονοδιάστατο πίνακα RGBout. Ο µονοδιάστατος πίνακας RGBout µε 256x256x3 = στοιχεία περιέχει και τις τρεις συνιστώσες της ισοσταθµισµένης εικόνας. Τα πρώτα στοιχεία του αντιστοιχούν στην R συνιστώσα, τα επόµενα στην G συνιστώσα και τα τελευταία στοιχεία αντιστοιχούν στην B συνιστώσα. Έπειτα αφού πραγµατοποιηθεί η ενεργοποίηση της RTDX τεχνολογίας, ενεργοποιείται το RTDX κανάλι εξόδου ochan και γίνεται η µεταφορά της εικόνας από τον DSP στο GUI. Η µεταφορά της τελικής εικόνας πραγµατοποιείται σταδιακά δηλαδή κάθε φορά εγγράφεται στο RTDX κανάλι µόνο µια γραµµή της κάθε συνιστώσας της εικόνας δηλαδή ένας πίνακας των 256 αριθµών. Το επόµενο αρχείο που είναι απαραίτητο για το project και παρουσιάζεται στο Πρόγραµµα 21, είναι το rtdx_histeqυ.cmd. Στο αρχείο αυτό δηλώνονται τρεις περιοχές της µ νήµης της πλατφόρµας DSK, στις οποίες αποδίδεται κάποιο όνοµα (π.χ. ΒMΕΜ), ενώ στο πεδίο SECTIONS αντιστοιχίζεται κάθε µεταβλητή που έχει δηλωθεί στον κώδικα C µε την ντιρεκτίβα #pragma σε µία από αυτές τις περιοχές. -c -heap 0x1000 -stack 0x1000 -u vectors -u _auto_init _HWI_Cache_Control = 0; _RTDX_interrupt_mask = ~0x ; MEMORY { VECS: o= h l= h /* interrupt vectors */ PMEM: o= h l=0000fe00h /* Internal RAM (L2) mem */ BMEM: o= h l= h /* CE0, SDRAM, 16 MBytes */

195 LabVIEW to CCS Link 191 SECTIONS {.intvecs > 0h.text > BMEM.rtdx_text > BMEM.far > BMEM.stack > BMEM.bss > BMEM.cinit > BMEM.pinit > PMEM.cio > BMEM.const > BMEM.data > BMEM.rtdx_data > BMEM.switch > BMEM.sysmem > BMEM msg_var > BMEM im_var > BMEM R1_var > BMEM G1_var > BMEM B1_var > BMEM Y_var > BMEM Cb_var > BMEM Cr_var > BMEM R_var > BMEM G_var > BMEM B_var > BMEM RGB_var > BMEM Πρόγραµµα 22. To αρχείο rtdx_histeqy.cmd Στο Σχήµα 150 παρουσιάζεται το View Window του project στο CCS που δηµιουργείται για την υλοποίηση της ισοστάθµισης του ιστογράµµατος στον χώρο YCbCr µε όνοµα RTDX_histeqY.pjt. Το οποίο εκτός από τα αρχεία histeq_y_rtdx.c, και rtdx_histeqy.cmd που παρουσιάστηκαν παραπάνω πρέπει να περιέχει και το αρχείο intvecs.asm που έχει δηµιουργηθεί από την TI και περιλαµβάνεται στο CCS. Για τo αρχείο histeq_y_rtdx.c επιλέγεται η τοπική βελτιστοποίηση File (-ο3). Επίσης στο project θα πρέπει να προστεθούν και οι βιβλιοθήκες rtdx.lib (ή rtdxsim.lib αν θα χρησιµοποιηθεί ο εξοµοιωτής) και rts6701.lib.

196 Εφαρµογές Σχήµα 150. Το View Window του CCS για το RTDX_histeqY.pjt Υλοποίηση ενός VI για τον έλεγχο της εφαρµογής Το VI που θα παρουσιαστεί στην συνέχεια ονοµάζεται ImageGUI.vi και ελέγχει και επικοινωνεί µε το CCS κ αι κατά επέκταση µε τον DSP του DSKC6713. Με το ImageGUI.vi ο χρήστης επιλέγει την εικόνα που θα φορτωθεί στον DSP και την επεξεργασία που θα υποστεί η συγκεκριµένη εικόνα. Επίσης το VI παρουσιάζει την εικόνα πριν και µετά την επεξεργασία. Το front panel του ImageGUI.vi Το front panel του ImageGui.vi που παρουσιάζεται στο Σχήµα 151 διαθέτει δύο ενδείκτες µε ονόµατα Image_in και Image_Out που αναπαριστούν αντίστοιχα την προς επεξεργασία εικόνα που θα φορτωθεί στον DSP και την εικόνα που είναι αποτέλεσµα της επεξεργασίας του DSP. Ο ελεγκτής Image Type περιέχει δύο Radio Buttons το Grayscale και το Color (RGB) µε τα οποία ο χρήστης καθορίζει το είδος της εικόνα που θα φορτωθεί στον DSP. Με τον ελεγκτή Algorithm Selection που έχει τις καταστάσεις που δείχνει ο πίνακας 13 ο χρήστης µπορεί να επιλέξει την επεξεργασία που θα υποστεί η εικόνα. Όπως φαίνεται και στον πίνακα 13 ορισµένες καταστάσεις του ελεγκτή Algorithm Selection αντιστοιχούν σε έγχρωµη εικόνα και ορισµένες σε εικόνα κλίµακας του γκρίζου. Εποµένως οι καταστάσεις του εκλεκτή Algorithm Selection που δεν αντιστοιχούν στην τιµή του ελεγκτή Image Type απενεργοποιούνται και αναπαριστάνονται µε γκρίζο χρώµα αυτόµατα µε σκοπό την διευκόλυνση του χρήστη. Στο front panel του σχήµατος 151 εµφανίζονται οι ενεργές καταστάσεις του ελεγκτή Algorithm Selection όταν έχει επιλεγεί από τον ελεγκτή Image Type ότι η εικόνα που θα χρησιµοποιηθεί θα είναι σε κλίµακα του γκρίζου.

197 LabVIEW to CCS Link 193 Τιµή Κατάσταση Περιγραφή 0 Algorithm Selection εν γίνεται καµία ενέργεια 1 Sobel Edge Detection (Gray) Πραγµατοποιείται ανίχνευση των ακµών µιας εικόνας κλίµακας του γκρίζου 2 Histogram Equalization RGB (Color) Πραγµατοποιείται η ισοστάθµιση του ιστογράµµατος µιας έγχρωµης εικόνας στον RGB χώρο 3 Histogram Equalization Y (Color) Πραγµατοποιείται η ισοστάθµιση του ιστογράµµατος µιας έγχρωµης εικόνας στον YCbCr χώρο 4 DCT/IDCT slow (Gray) Εφαρµόζεται ο ευθύς και ο αντίστροφος DCT σε µια εικόνα κλίµακας του γκρίζου µε χρήση του 1D-DCT 5 DCT/IDCT fast (Gray) Εφαρµόζεται ο ευθύς και ο αντίστροφος DCT σε µια εικόνα κλίµακας του γκρίζου µε χρήση του αλγόριθµου McGovern 6 JPEG encoder/decoder (Gray) Πραγµατοποιείται τµήµα της κωδικοποίησης και της αποκωδικοποίησης µιας εικόνας σε κλίµακα του γκρίζου σύµφωνα µε το JPEG πρότυπο Πίνακας 13. Οι καταστάσεις του ελεγκτή εισόδου Algorithm Selection Σχήµα 151. Το front panel του ImageCUI.vi Όταν η κατάσταση του ελεγκτή Algorithm Selection είναι Algorithm Selection τότε το VI βρίσκεται σε κατάσταση αναµονής. Αν εκείνη την στιγµή ο χρήστης θελήσει να τερµατίσει την λειτουργία του αρκεί να πατήσει το κουµπί Stop. Αν επιλεχτεί κάποια κατάσταση του ελεγκτή Algorithm Selection εκτός από την Algorithm Selection τότε το VI θα βγει από την κατάσταση αναµονής και αυτόµατα θα εµφανιστεί ένα παράθυρο διαλόγου, που δεν είναι τίποτε άλλο από τον explorer των Windows, που θα του ζητήσει να επιλέξει την εικόνα που θα φορτωθεί. Αµέσως µετά θα εµφανιστεί η εικόνα στον ενδείκτη Image in.όταν ο DSP ολοκληρώσει την επεξεργασία που καθορίστηκε από τον ελεγκτή Algorithm Selection θα εµφανιστεί στον ενδείκτη Image Out η εικόνα που θα είναι το αποτέλεσµα της επεξεργασίας.

198 Εφαρµογές Το block diagram panel του ImageGUI.vi Στο Σχήµα 152 παρουσιάζεται το block diagram του ImageGUI.vi το οποίο αποτελείται από έξι φάσεις που θα αναλυθούν στην συνέχεια ώστε να γίνει κατανοητή η λειτουργία του συγκεκριµένου VI. Σχήµα 152. Το block diagram του ImageGUI.vi Η πρώτη φάση του block diagram που παρουσιάζεται στο σχήµα 153 υλοποιεί την κατάσταση αναµονής του VI αφού εκτελείται συνεχώς µέχρι να πατηθεί το κουµπί Stop ή να αλλάξει η κατάσταση του ελεγκτή Algorithm Selection κατάσταση. Εποµένως αρχικά ελέγχεται µε το Not Equal To 0?.vi αν η τιµή του ελεγκτή Algorithm Selection είναι διαφορετική από το 0 (δηλαδή δεν έχει επιλεχτεί η κατάσταση Algorithm Selection). Αν η έξοδος του Not Equal To 0?.vi είναι False ότι η τιµή του ελεγκτή Algorithm Selection είναι 0. Στις εισόδους του Compound Arithmetic.vi (που έχει οριστεί να εκτελεί την πράξη OR) συνδέονται το κουµπί Stop και η έξοδος του Not Equal To 0?.vi. Εποµένως η έξοδος του Compound Arithmetic.vi που συνδέεται µε την είσοδο ελέγχου της δοµής While τερµατίζει την εκτέλεση της πρώτης φάσης του block diagram όταν πατηθεί το κουµπί Stop ή αλλάξει η τιµή (γίνει διαφορετική από 0) του ελεγκτή Algorithm Selection κατάσταση. (a) (b) Σχήµα 153. Η πρώτη φάση του block diagram του ImageGUI.vi (a) για έγχρωµη εικόνα (b) για εικόνα κλίµακας του γκρίζου Στην πρώτη φάση του block diagram πραγµατοποιείται η απενεργοποίηση των καταστάσεων του ελεγκτή Algorithm Selection που δεν αντιστοιχούν µε την τιµή του

199 LabVIEW to CCS Link 195 ελεγκτή Image Type. Η απενεργοποίηση των καταστάσεων του ελεγκτή Algorithm Selection επιτυγχάνεται µε την ιδιότητα DisabledItems[]. Η ιδιότητα DisabledItems[] δέχεται ως είσοδο ένα πίνακα που δείχνει τις τιµές των καταστάσεων που θα απενεργοποιηθούν. Μέσω της δοµής Case µεταβάλλεται η είσοδος της ιδιότητας DisabledItems[] ανάλογα µε την τιµή του ελεγκτή Image Type που συνδέεται µε την είσοδο ελέγχου της δοµής Case. Εποµένως όταν επιλεχτεί από τον ελεγκτή Image Type η χρήση µιας έγχρωµης εικόνας θα απενεργοποιούνται οι καταστάσεις του ελεγκτή Algorithm Selection µε τιµές 1, 4, 5 και 6. Όµοια όταν επιλεχτεί χρήση µιας εικόνας σε κλίµακα του γκρίζου θα απενεργοποιούνται οι καταστάσεις του ελεγκτή Algorithm Selection µε τιµές 2 και 3. Οι φάσεις 2, 3, 4, 5, και 6 αποτελούν την περίπτωση False µιας δοµής Case που ελέγχεται από το κουµπί Stop. H περίπτωση True αυτής της δοµής είναι κενή αφού όταν πατηθεί το κουµπί Stop παρακάµπτονται οι παραπάνω φάσεις και τερµατίζεται η λειτουργία του VI. Στο σχήµα 154 παρουσιάζεται η δεύτερη φάση του block diagram του ImageGUI.vi στην οποία καθορίζεται η διαδροµή του project του CCS που θα φορτωθεί στην συνέχεια. Σε αυτή την φάση πραγµατοποιείται η ανάγνωση, η συλλογή των δεδοµένων και η αναπαράσταση της εικόνας που επιλέχτηκε από τον χρήστη µέσω του αντίστοιχου παράθυρου διαλόγου. Σχήµα 154. Η δεύτερη φάση του block diagram του ImageGUI.vi Το ImageGUI.vi θα πρέπει να είναι αποθηκευµένο στον φάκελο που περιέχει τους φακέλους µε τα αρχεία των projects στο CCS που εκτελούν την εκάστοτε επεξεργασία στην εικόνα. Η έξοδος του Current VI s Path που δείχνει την διαδροµή που είναι αποθηκευµένο το VI στον σκληρό δίσκο συνδέεται µε την είσοδο του Strip Path.vi που αποκόπτει το τελευταίο µέρος της διαδροµής. Αν η διαδροµή που έχει αποθηκευτεί το VI είναι C:\dsp_projects\ image_projects\imagegui.vi τότε η έξοδος του Strip Path.vi θα είναι C:\dsp_projects\ image_projects. Η έξοδος του Strip Path.vi συνδέεται µε την είσοδο base path του Build Path.vi. ενώ στην είσοδο name or relative path συνδέεται η έξοδος της δοµής Case. Η δοµή Case µεταβάλλει την είσοδο name or relative path του Build Path.vi ανάλογα µε το project του CCS που πρέπει να φορτωθεί σύµφωνα µε την κατάσταση του ελεγκτή Algorithm Selection. Οι περιπτώσεις της δοµής Case παρουσιάζονται στο σχήµα 155. Εποµένως αν η

200 Εφαρµογές κατάσταση του ελεγκτή Algorithm Selection είναι η Sobel Edge Detection (Gray) τότε στην είσοδο name or relative path του Build Path.vi θα δοθεί το RTDX_Sobel_edges\ RTDX_Sobel_edges.pjt ώστε η έξοδος του Build Path να είναι η διαδροµή του project του CCS που πραγµατοποιεί την ανίχνευση των ακµών. Με αυτόν τον τρόπο δηµιουργείται η διαδροµή του project στο CCS που θα υλοποιήσει την επεξεργασία που υποδεικνύει ο ελεγκτής Algorithm Selection Σχήµα 155. Οι περιπτώσεις της δοµής Case της δεύτερης φάσης του block diagram του ImageGUI.vi Στην δεύτερη φάση του block diagram του ImageGUI.vi εκτελείται το Read BMP and get data.vi διαβάζει µια BMP εικόνα, την αναπαριστά και συλλέγει τα δεδοµένα της δηµιουργώντας τρεις µονοδιάστατους πίνακες που αντιπροσωπεύουν τις τρεις συνιστώσες µιας έγχρωµης εικόνας. Στην περίπτωση όµως που θα αναγνωστεί µια εικόνα σε κλίµακα του γκρίζου τότε και οι τρεις πίνακες που δηµιουργεί το Read BMP and get data.vi περιέχουν τις τιµές της φωτεινότητας της συγκεκριµένης εικόνας. Στην περίπτωση της δεύτερης φάσης του block diagram του ImageGUI.vi στην είσοδο Original Image του Read BMP and get data.vi συνδέεται µια αναφορά στον ελεγκτή Image in ενώ στην είσοδο Image Type συνδέεται ο ελεγκτής Image Type. Στις εξόδους Image Data 1, Image Data 2 και Image Data 3 περιέχονται τα δεδοµένα της εικόνας που αναγνώστηκε. Στην έξοδο Original Image 2 συνδέεται ο ενδείκτης Image in ώστε να αναπαρασταθεί η εικόνα που αναγνώστηκε. Η έξοδος cancelled δηλώνει αν πατήθηκε το κουµπί Άκυρο ( Cancel ) στο παράθυρο διαλόγου που εµφανίζεται για την επιλογή της εικόνας. Στο σχήµα 156 παρουσιάζεται το block diagram του Read BMP and get data.vi όπου αρχικά ελέγχεται αν η είσοδος Path είναι κενή ή δεν περιέχει κάποια διαδροµή. Αν είναι κενή όπως στην περίπτωση της κλήση του Read BMP and get data.vi από το ImageGUI.vi θα εκτελεστεί η περίπτωση True της δοµής Case Structure 1. Σε αυτή την περίπτωση εκτελείται το File Dialog.vi που θα εµφανίσει το παράθυρο διαλόγου για την επιλογή της εικόνας. Η έξοδος path του File Dialog.vi θα περιέχει την διαδροµή της εικόνας που επιλέχτηκε. Η έξοδος cancelled του File Dialog.vi δείχνει αν πατήθηκε το κουµπί Άκυρο ( Cancel ) στο παράθυρο διαλόγου που εµφανίζεται για την επιλογή της εικόνας και συνδέεται µε την έξοδο cancelled του Read BMP and get data.vi και µε την συνθήκη ελέγχου της δοµής Case Structure 2. Αν στο παράθυρο διαλόγου πατηθεί από τον χρήστη το κουµπί Άκυρο ( Cancel ) τότε θα εκτελεστεί η περίπτωση True της δοµής Case Structure 2 που είναι κενή και θα τερµατιστεί η λειτουργία του Read BMP and get data.vi. Στην περίπτωση False της δοµής Case Structure 2 Η έξοδος path του File Dialog.vi θα συνδεθεί µε την είσοδο Path to BMP File του Read BMP File.vi που θα διαβάσει την BMP

201 LabVIEW to CCS Link 197 εικόνα. Η οµάδα εξόδων Image data του Read BMP File.vi συνδέεται µε την αντίστοιχη είσοδο του Draw Flattened Pixmap.vi. Το Draw Flattened Pixmap.vi θα αναπαραστήσει την εικόνα µέσω του ενδείκτη Original Image 2. Στην συνθήκη ελέγχου της δοµής Case Structure 3 συνδέεται η είσοδος Image Type. Εποµένως η περίπτωση Color(RGB) της δοµής Case Structure 3 εκτελείται όταν χρησιµοποιείται έγχρωµη εικόνα. Σε αυτή την περίπτωση η έξοδος image της οµάδας εξόδων Image data του Read BMP File.vi είναι ένας πίνακας µε στοιχεία (256x256x3 = για µια εικόνα διατάσεων 256x256) και περιέχει τις τιµές των R, G και B συνιστωσών της εικόνας. Σε αυτόν τον πίνακα τα τρία πρώτα στοιχεία του αντιστοιχούν στις τιµές των R, G και B συνιστωσών του πρώτου εικονοστοιχείου, τα επόµενα τρία αντιστοιχούν στις τιµές των συνιστωσών για το δεύτερο εικονοστοιχείο κλπ. Εποµένως στην περίπτωση Color(RGB) της δοµής Case Structure 3 θα πρέπει να γίνει ο διαχωρισµός των τριών συνιστωσών της εικόνας. Για τον λόγο αυτό χρησιµοποιείται ένας βρόγχος For που επαναλαµβάνεται φορές (για µια εικόνα διαστάσεων 256x256) και έχει ως είσοδο την έξοδο image της οµάδας εξόδων Image data του Read BMP File.vi. Με την βοήθεια των Index.vi και της λογικής που παρουσιάζεται στο block diagram του Read BMP and get data.vi επιτυγχάνεται ο διαχωρισµός των συνιστωσών της εικόνας. Οι συνιστώσες R, G και B που µ ετά τον διαχωρισµό τους είναι τρεις µονοδιάστατοι πίνακες των στοιχείων (για µια εικόνα διαστάσεων 256x256) περιέχονται στις εξόδους Image Data 1, Image Data 2 και Image Data 3. Σχήµα 156. Το block diagram του Read BMP and get data.vi Στην περίπτωση που χρησιµοποιείται µια εικόνα κλίµακας του γκρίζου εκτελείται η περίπτωση Grayscale της δοµής Case Structure 3 στην οποία η έξοδος image της οµάδας εξόδων Image data του Read BMP File.vi που είναι ένας πίνακας µε στοιχεία (256x256 = για µια εικόνα διατάσεων 256x256) και περιέχει την τιµή της φωτεινότητας κάθε εικονοστοιχείου της εικόνας, συνδέεται µε τις εξόδους Image Data 1, Image Data 2 και Image Data 3 του Read BMP and get data.vi. Η είσοδος Original Image του Read BMP and get data.vi που περιέχει µια αναφορά στον ενδείκτη Image in καθορίζει το στοιχείο το οποίο αφορά η ιδιότητα DrawAreaSize. Η ιδιότητα DrawAreaSize αφορά µόνο ελεγκτές και ενδείκτες εικόνας (pictures controls and indicators) και διαφοροποιεί το µέγεθός τους σύµφωνα µε την τιµή που έχει η οµάδα που

202 Εφαρµογές συνδέεται µε αυτή την ιδιότητα. Στην συγκεκριµένη περίπτωση οι έξοδοι Rectangle.right και Rectangle.left οµαδοποιούνται (µε την βοήθεια του Bundle.vi) και συνδέονται µε την ιδιότητα DrawAreaSize. Με τον τρόπο αυτό εξασφαλίζεται ότι ο ενδείκτης εικόνας (στην συγκεκριµένη περίπτωση ο ελεγκτής Image in ) θα έχει τις διαστάσεις τις εικόνας που θα αναπαραστήσει. Η δεύτερη φάση του block diagram του ImageGUI.vi ολοκληρώνεται µε τον καθαρισµό του ενδείκτη Image Out. Ο καθαρισµός του ενδείκτη Image Out επιτυγχάνεται µε την σύνδεση της σταθερά Empty Picture στην τοπική µεταβλητή (Local Variable) του ενδείκτη Image Out Οι φάσεις 3, 4, 5, και 6 αποτελούν την περίπτωση False µιας δοµής Case που ελέγχεται από την έξοδο cancelled του Read BMP and get data.vi. Στην περίπτωση True αυτής της δοµής που εκτελείται µόνο όταν πατηθεί το κουµπί Άκυρο ( Cancel ) στο παράθυρο διαλόγου που εµφανίζεται για την επιλογή της εικόνας, γίνεται η επαναφορά του ελεγκτή Algorithm Selection στην κατάσταση Algorithm Selection. Η επαναφορά του ελεγκτή Algorithm Selection επιτυγχάνεται µε την σύνδεση της σταθεράς Algorithm Selection στην τοπική µεταβλητή (Local Variable) του συγκεκριµένου ελεγκτή. Εφόσον δεν πατηθεί το κουµπί Άκυρο ( Cancel ) στο παράθυρο διαλόγου που εµφανίζεται για την επιλογή της εικόνας και ολοκληρωθεί η δεύτερη φάση του block diagram του ImageGUI.vi θα εκτελεστεί η περίπτωση False της παραπάνω δοµής που περιέχει τις φάσεις 3, 4, 5 και 6. Στην τρίτη φάση του block diagram του ImageGUI.vi που παρουσιάζεται στο σχήµα 157 γίνεται η επαναφορά του ελεγκτή Algorithm Selection στην κατάσταση Algorithm Selection και η δηµιουργία τριών αρχείων (Red.h, Green.h και Blue.h) µε επέκταση.h που περιέχουν τις τρεις συνιστώσες µιας έγχρωµης εικόνας ή η δηµιουργία ενός αρχείου µε επέκταση.h (scenary.h) που περιέχει τις τιµές της φωτεινότητας µια εικόνας κλίµακας του γ κρίζου ανάλογα µε την τιµή του ελεγκτή Image Type. (a) (b) Σχήµα 157. Η τρίτη φάση του block diagram του ImageGUI.vi (a) για έγχρωµη εικόνα (b) για εικόνα κλίµακας του γκρίζου Η επαναφορά του ελεγκτή Algorithm Selection επιτυγχάνεται µε την σύνδεση της σταθεράς Algorithm Selection στην τοπική µεταβλητή (Local Variable) του συγκεκριµένου ελεγκτή.

203 LabVIEW to CCS Link 199 Όταν έχει επιλεχτεί η χρησιµοποίηση µιας έγχρωµης εικόνας τότε εκτελείται η περίπτωση Color(RGB) της δοµής Case της τρίτης φάσης του block diagram. Σε αυτή την περίπτωση πρέπει να δηµιουργηθούν τα αρχεία Red.h, Green.h και Blue.h στα οποία θα υπάρχουν οι πίνακες R_1d, G_1d και B_1d αντίστοιχα. Οι πίνακες αυτοί είναι τύπου unsigned short και περιέχουν τις συνιστώσες R, G και B της εικόνας. Τα αρχεία αυτά πρέπει να δηµιουργηθούν ώστε να φορτωθεί η προς επεξεργασία εικόνα στον DSP κατά το κτίσιµο του αντίστοιχού project του CCS. Tα αρχεία Red.h, Green.h και Blue.h θα πρέπει να αποθηκευτούν στον φάκελο που είναι αποθηκευµένο το αντίστοιχο project. Η διαδροµή που θα αποθηκευτούν τα αρχεία Red.h, Green.h και Blue.h υπολογίζεται από την διαδροµή του proje ct στο CCS που είχε υπολογιστεί στην πρώτη φάση. Η διαδροµή του project στο CCS µπαίνει ως είσοδο στο Strip Path.vi και αποκόπτεται το τελευταίο τµήµα της δηλαδή το όνοµα του project. H έξοδος του Strip Path.vi συνδέεται στην είσοδο base path του Build Path.vi ενώ στην είσοδο name or relative path συνδέεται µια string σταθερά που περιέχει το όνοµα του αρχείου που θα δηµιουργηθεί. Με τον τρόπο αυτό υπολογίζεται η διαδροµή που θα αποθηκευτούν τα αρχεία Red.h, Green.h και Blue.h. Την δηµιουργία και την αποθήκευση αυτών των αρχείων αναλαµβάνει το Write data to file.vi το οποίο δέχεται ως είσοδο την διαδροµή που θα αποθηκευτεί το αντίστοιχο αρχείο, το όνοµα του πίνακα που θα περιέχει το αντίστοιχο αρχείο και τα δεδοµένα του πίνακα. Για την δηµιουργία του Red.h αρχείου στην είσοδο File Path του Write to data file.vi συνδέεται η έξοδος του Build Path.vi που δηµιουργεί την διαδροµή αυτού του αρχείου. Στην είσοδο Array Name του Write to data file.vi συνδέεται η string σταθερά που περιέχει το όνοµα του πίνακα δηλαδή το R_1d ενώ στην είσοδο Data συνδέεται η έξοδος Image Data 1 του Read BMP and get data.vi που παρουσιάστηκε στην δεύτερη φάση και περιέχει την R συνιστώσα της εικόνας. Η ίδια διαδικασία ακολουθείται για την δηµιουργία των αρχείων Green.h και Blue.h. Όταν επιλεχτεί η χρησιµοποίηση µια εικόνας σε κλίµακα του γκρίζου εκτελείται η περίπτωση Grayscale της δοµής Case. Σε αυτή την περίπτωση, ακολουθώντας την διαδικασία που δηµιουργείται το αρχείο Red.h, δηµιουργείται το αρχείο scenary.h στo οποίo υπάρχει ο πίνακας image_in. Ο πίνακας αυτός είναι τύπου unsigned short και περιέχει την τιµή της φωτεινότητας κάθε εικονοστοιχείου της εικόνας. Αυτό το αρχείο πρέπει να δηµιουργηθεί ώστε να φορτωθεί η προς επεξεργασία εικόνα στον DSP κατά το κτίσιµο του αντίστοιχού project του CCS. Το αρχείο scenary.h αποθηκεύεται στον φάκελο που είναι αποθηκευµένο το αντίστοιχο project. Σχήµα 158. Το block diagram του Write data to file.vi Για την δηµιουργία των αρχείων Red.h, Green.h, Blue.h και scenary.h χρησιµοποιείται το Write data to file.vi, του οποίου το block diagram παρουσιάζεται στο σχήµα 158. Η είσοδος File Path περιέχει την διαδροµή και το όνοµα του αρχείου που θα δηµιουργηθεί. Στον φάκελο που είναι αποθηκευµένο το project µπορεί να υπάρχει ήδη κάποιο αρχείο µε το όνοµα που περιέχει η είσοδος File Path. Για τον λόγο αυτό η είσοδος File Path συνδέεται µε το Delete.vi ώστε να διαγραφεί το αρχείο αυτό. Η έξοδος dup path του Delete.vi περιέχει

204 Εφαρµογές ακριβώς την ίδια διαδροµ ή και το όνοµα του αρχείου που περιγράφει η είσοδος File Path και συνδέεται µε την είσοδο file path του Write Characters to File.vi ώστε να δηµιουργηθεί ένα νέο αρχείο στην ίδια διαδροµή µε το ίδιο όνοµα. Η είσοδος Data περιέχει τα δεδοµένα της εικόνας που θα αποθηκευτούν στο νέο αρχείο. Η είσοδος Data συνδέεται µε την είσοδο array του Array To Spreadsheet String.vi ώστε ο πίνακας να µετατραπεί σε µια σειρά αλφαριθµητικών χαρακτήρων (string) που το ένα στοιχείο θα χωρίζεται µε το επόµενο µε τον χαρακτήρα,. H είσοδος Array Name περιέχει το όνοµα του πίνακα που θα δηλωθεί στο αρχείο που θα δηµιουργήσει το Write data to file.vi. Το περιεχόµενο του αρχείου που θα δηµιουργήσει το Write data to file.vi είναι µια σειρά αλφαριθµητικών χαρακτήρων που δηµιουργείται από το Concatenate Strings.vi που δέχεται ως εισόδους τρεις string σταθερές, την ε ίσοδο Array Name και την έξοδο του Array To Spreadsheet String.vi. Αν η είσοδος Array Name περιέχει το όνοµα R_1d και η είσοδος Data περιέχει τα στοιχεία 1, 2, 3, και 4 τότε η έξοδος του Concatenate Strings.vi θα είναι: unsigned char R_1d[IMAGE_SIZE] = { 1, 2, 3, 4 ; Η έξοδος του Concatenate Strings.vi συνδέεται µε την είσοδο character string του Write Characters to File.vi ώστε να γίνει η εγγραφή των δεδοµένων στο νέο αρχείο που περιγράφει η είσοδος File Path του Write data to file.vi. Με την παρουσίαση και ανάλυση του Write data to file.vi ολοκληρώνεται η τρίτη φάση του block diagram του ImageGUI.vi Στην τέταρτη φάση του block diagram του ImageGUI.vi που παρουσιάζεται στο σχήµα 159 γίνεται η ρύθµιση του CCS ώστε να χρησιµοποιηθεί το DSKC6713 και ο έλεγχος του CCS ώστε να ξεκινήσει η επεξεργασία της εικόνας. Η φάση αυτή ολοκληρώνεται όταν τελειώσει ο DSP του DSKC6713 την επεξεργασία της εικόνας. Σχήµα 159. Η τέταρτη φάση του block diagram του ImageGUI.vi To CCS_ Setup_Open.vi φορτώνει το CCStudio Setup. To CCS_Setup_ Clear.vi σβήνει τις προηγούµενες ρυθµίσεις του CCStudio Setup. Το CCS_Setup_Add_ Board.vi φορτώνει στο CCStudio Setup τους οδηγούς του DSKC6713 σύµφωνα µε την διαδροµή που δηλώνει η σταθερά Path αφού συνδέεται µε την είσοδο Driver Path του subvi. Το CCS_Setup_Save.vi αποθηκεύει τις ρυθµίσεις που επιλέχτηκαν και το CCS_ Setup_Close.vi κλείνει το CCStudio Setup.vi. Στο σηµείο αυτό έχει ολοκληρωθεί η ρύθµιση του CCS για την χρησιµοποίηση του DSKC6713. Το CCS_Open.vi φορτώνει το CCS και το CCS_Open_Project.vi φορτώνει το project του CCS σύµφωνα µε την διαδροµή που περιέχει η είσοδός Project Path In. Η διαδροµή που περιέχει η είσοδος Project Path In του CCS_Open_Project.vi υπολογίστηκε στην δεύτερη φάση του block diagram του ImageGUI.vi και µετατράπηκε σε µια σειρά αλφαριθµητικών χαρακτήρων µε την χρησιµοποίηση του Path To String.vi. Το CCS_Build.vi

205 LabVIEW to CCS Link 201 δίνει εντολή στο CCS να κτίσει το project που φορτώθηκε ώστε να δηµιουργήσει το εκτελέσιµο αρχείο (αρχείο µε επέκταση.out). Όταν ολοκληρωθεί το κτίσιµο του project το CCS_Build_Result.vi εξάγει το αποτέλεσµα του κτισίµατος στον ενδείκτη Build Result Το CCS_Connect.vi δίνει εντολή στο CCS να συνδεθεί µε την κάρτα δηλαδή µε το DSKC6713. Το CCS_DSP_Reset.vi δίνει εντολή να επανέλθει η κάρτα στις αρχικές τις ρυθµίσεις. Εφόσον δεν έχουν προκύψει λάθη κατά το κτίσιµο το CCS_Download.vi δίνει εντολή στο CCS να φορτώσει τον εκτελέσιµο κώδικα στον DSP που περιέχει και την προς επεξεργασία εικόνα. Επειδή το project κάνει χρήση της RTDX τεχνολογίας χρησιµοποιείται το CCS_RTDX_Enable.vi που ρυθµίζει της παραµέτρους της και την ενεργοποιεί. Στην συγκεκριµένη περίπτωση χρησιµοποιούνται οι προκαθορισµένες ρυθµίσεις της RTDX τεχνολογίας. Το CCS_Run.vi µέσω του CCS, δίνει εντολή στον DSP να ξεκινήσει την εκτέλεση του προγράµµατος. Στην δοµή While έχει τοποθετηθεί το Is_DSP_Running.vi που ελέγχει αν η DSP εκτελεί το πρόγραµµα. Η έξοδος Running του Is_DSP_Running.vi παίρνει την τιµή False όταν ο DSP σταµατήσει την εκτέλεση του προγράµµατος που συνεπάγεται την ολοκλήρωση της επεξεργασίας. Με την χρησιµοποίηση του Wait.vi που έχει συνδεθεί µε µια αριθµητική σταθερά που έχει τιµή 200 επιτυγχάνεται η εκτέλεση της δοµής While κάθε 200 msec. Η δοµή While σταµατά να εκτελείται όταν η έξοδος Running του Is_DSP_Running.vi πάρει την τιµή False οπότε και ολοκληρώνεται η τέταρτη δάση του block diagram του ImageGUI.vi. Στην πέµπτη φάση του block diagram του ImageGUI.vi γίνεται η ανάγνωση της εικόνας που είναι το αποτέλεσµα της επεξεργασίας του DSP µέσω του RTDX καναλιού ochan. Ουσιαστικά η πέµπτη φάση αποτελείται από µια δοµή Case που ελέγχεται από τον ελεγκτή Image Type. Όταν έχει επιλεχτεί η χρησιµοποίηση έγχρωµης εικόνας εκτελείται η περίπτωση Color(RGB) της δοµής Case που παρουσιάζεται στο σχήµα 160. Σχήµα 160. Η πέµπτη φάση του block diagram του ImageGUI.vi για έγχρωµη εικόνα Η µεταφορά µιας έγχρωµης εικόνας πραγµατοποιείται µε σταδιακή εγγραφή των δεδοµένων της στο αντίστοιχο RTDX κανάλι. Στην πραγµατικότητα κάθε φορά εγγράφεται στο RTDX κανάλι ένας πίνακας µε 256 στοιχεία, εποµένως για να ολοκληρωθεί η µεταφορά µιας έγχρωµης εικόνας έχουν γίνει από τον DSP 256 x 3 = 768 εγγραφές. ηλαδή το RTDX κανάλι όταν ολοκληρώνεται η επεξεργασία µιας έγχρωµης εικόνας περιέχει 768 µηνύµατα (messages). Για να γίνει η ανάκτηση της έγχρωµης εικόνας θα πρέπει να πραγµατοποιηθούν 768 αναγνώσεις του RTDX καναλιού ochan. Αυτό επιτυγχάνεται µε τον βρόγχο For που

206 Εφαρµογές περιέχει το RTDX_Read.vi στο οποίο έχει επιλεχτεί το RTDX_Read_SA_UI1 επειδή το περιεχόµενο του RTDX καναλιού είναι πίνακες µε ακέραιους αριθµούς χωρίς πρόσηµο του ενός byte. Στην είσοδο Channel του RTDX_Read.vi συνδέεται µια string σταθερά που περιέχει το όνοµα του RTDX καναλιού από το οποίο θα γίνει η ανάγνωση της εικόνας. Η έξοδος του βρόγχου For είναι ένας πίνακα µε διατάσεις 768x256 που µε την βοήθεια του Reshape Array.vi µετατρέπεται σε ένα µονοδιάστατο πίνακα µε 768x256= στοιχεία. Τα πρώτα στοιχεία του πίνακα αποτελούν την R συνιστώσα της εικόνας τα επόµενα στοιχεία αποτελούν την G συνιστώσα και τα τελευταία στοιχεία αποτελούν την B συνιστώσα. Ο διαχωρισµός των συνιστωσών της εικόνας επιτυγχάνεται µε την χρήση των Array Subset.vi και µε την λογική που παρουσιάζεται στο σχήµα 160. Οι έξοδοι των Array Subset.vi είναι έξοδοι και της δοµής Case και περιέχουν τις συνιστώσες της εικόνας που ανακτήθηκε. Όταν έχει επιλεχτεί η χρησιµοποίηση µιας εικόνας κλίµακας του γκρίζου εκτελείται η περίπτωση Grayscale της δοµής Case που παρουσιάζεται στο σχήµα 161. Σχήµα 161. Η πέµπτη φάση του block diagram του ImageGUI.vi για εικόνα κλίµακας του γκρίζου Η µεταφορά µιας εικόνας σε κλίµακα του γκρίζου πραγµατοποιείται µε σταδιακή εγγραφή των δεδοµένων της στο αντίστοιχο RTDX κανάλι. Στην πραγµατικότητα κάθε φορά εγγράφεται στο RTDX κανάλι ένας πίνακας µε 256 στοιχεία, εποµένως για να ολοκληρωθεί η µεταφορά µιας εικόνας σε κλίµακα του γκρίζου έχουν γίνει από τον DSP 256 εγγραφές. ηλαδή το RTDX κανάλι όταν ολοκληρώνεται η επεξεργασία µιας εικόνας σε κλίµακα του γκρίζου περιέχει 256 µηνύµατα (messages). Για να γίνει η ανάκτηση της έγχρωµης εικόνας θα πρέπει να πραγµατοποιηθούν 256 αναγνώσεις του RTDX καναλιού ochan. Αυτό επιτυγχάνεται µε τον βρόγχο For που περιέχει το RTDX_Read.vi στο οποίο έχει επιλεχτεί το RTDX_Read_SA_UI1 επειδή το περιεχόµενο του RTDX καναλιού είναι πίνακες µε ακέραιους αριθµούς χωρίς πρόσηµο του ενός byte. Στην είσοδο Channel του RTDX_Read.vi συνδέεται µια string σταθερά που περιέχει το όνοµα του RTDX καναλιού από το οποίο θα γίνει η ανάγνωση της εικόνας. Η έξοδος του βρόγχου For είναι ένας πίνακα µε διατάσεις 256x256 που µε την βοήθεια του Reshape Array.vi µετατρέπεται σε ένα µονοδιάστατο πίνακα µε 256x256=65536 στοιχεία που περιέχει την τιµή της φωτεινότητας κάθε εικονοστοιχείου της εικόνας που ανακτήθηκε. Η έξοδος του Reshape Array.vi συνδέεται µε τις τρεις εξόδους δεδοµένων της δοµής Case. Στο σηµείο αυτό ολοκληρώνεται η πέµπτη φάση του block diagram του ImageGUI.vi.

207 LabVIEW to CCS Link 203 Στην έκτη φάση του block diagram του ImageGUI.vi που παρουσιάζεται στο σχήµα 162 πραγµατοποιείται ο τερµατισµός του CCS και η αναπαράσταση της εικόνας που ανακτήθηκε. Σχήµα 162. Η έκτη φάση του block diagram του ImageGUI.vi Το CCS_DSP_Halt.vi δίνει εντολή στον DSP µέσω του CCS να σταµατήσει την εκτέλεση του προγράµµατος. Η χρησιµοποίηση του CCS_DSP_Halt.vi στην συγκεκριµένη περίπτωση είναι προαιρετική αφού αν δεν έχει προκύψει κάποιο σφάλµα ή αν δεν έχει δοθεί σχετική εντολή από τον χρήστη µέσω του CCS χειροκίνητα, ο DSP θα έχει ήδη σταµατήσει την εκτέλεση του προγράµµατος. Το CCS_RTDX_Disable.vi απενεργοποιεί την RTDX τεχνολογία. Το CCS_Close_Project.vi κλείνει το project που είχε ανοιχτεί στο CCS και το CCS_Close.vi κλείνει το CCS Με το RGB2picture.vi γίνεται η αναπαράσταση της εικόνας που ανακτήθηκε από τον DSP στον ελεγκτή Image Out. Στις εισόδους Red Channel, Green Channel και Blue Channel του RGB2picture.vi συνδέονται οι αντίστοιχοι έξοδοι δεδοµένων της δοµής Case της πέµπτης φάσης του block diagram. Στην είσοδο reference συνδέεται µια αναφορά στον ενδείκτη Image Out ενώ στην οµάδα εισόδων Draw Area Size συνδέεται µια οµάδα σταθερών που καθορίζει τις διαστάσεις της εικόνας που στην συγκεκριµένη περίπτωση είναι 256x256. Στην έξοδο Image Out του RGB2picture.vi συνδέεται ο ενδείκτης Image Out που αναπαριστά την εικόνα που ανακτήθηκε. Σχήµα 163. Το block diagram του RGB2picture.vi

208 Εφαρµογές Στο σχήµα 163 παρουσιάζεται το block diagram του RGB2picture.vi στο οποίο οι είσοδοι Red Channel, Green Channel και Blue Channel περιέχουν τις συνιστώσες R, G και B µιας έγχρωµης εικόνας ως µονοδιάστατους πίνακες µε ακέραιους χωρίς πρόσηµο του 1 byte. Με την χρήση των Join Numbers.vi οι πίνακες που περιέχουν οι είσοδοι Red Channel, Green Channel και Blue Channel µετατρέπονται σε ένα µονοδιάστατο πίνακα που έχει τον ίδιο αριθµό στοιχείων µε τους πίνακες που περιέχουν οι είσοδοι. Ο νέος πίνακας συνδέεται στην έξοδο Flatten RGB data και τα στοιχεία του είναι ακέραιοι αριθµοί των τεσσάρων bytes. Το πρώτο (πιο σηµαντικό) byte κάθε στοιχείου αυτού του πίνακα έχει την τιµή 0, το δεύτερο byte κάθε στοιχείου έχει την τιµή του αντίστοιχου στοιχείου της R συνιστώσας, το τρίτο byte κάθε στοιχείου έχει την τιµή του αντίστοιχου στοιχείου της G συνιστώσας και το τέταρτο byte κάθε στοιχείου έχει την τιµή του αντίστοιχου στοιχείου της Β συνιστώσας. Με το Reshape Array.vi ο παραπάνω πίνακας µετατρέπεται σε ένα πίνακα µε διαστάσεις που καθορίζει η είσοδος Draw Area Size δηλαδή µε τις διαστάσεις της εικόνας που στην συγκεκριµένη περίπτωση είναι 256x256. Η έξοδος του Reshape Array συνδέεται µε την έξοδο Unflatten RGB data και µε την είσοδο Data (RGB format) του Draw Unflattened Pixmap.vi. To Draw Unflattened Pixmap.vi είναι ένα πολυµορφικό VI στο οποίο επιλέγεται το Draw True-Color Pixmap και στην έξοδο new picture αναπαριστά την εικόνα της οποία τα δεδοµένα περιέχονται στην είσοδο Data (RGB format). Η έξοδος new picture του Draw Unflattened Pixmap.vi συνδέεται µε την έξοδο Image Out του RGB2picture.vi Η είσοδος reference του RGB2picture.vi που περιέχει µια αναφορά στον ενδείκτη Image Out καθορίζει το στοιχείο το οποίο αφορά η ιδιότητα DrawAreaSize. Η ιδιότητα DrawAreaSize αφορά µόνο ελεγκτές και ενδείκτες εικόνας (pictures controls and indicators) και διαφοροποιεί το µέγεθός τους σύµφωνα µε την τιµή που έχει η οµάδα που συνδέεται µε αυτή την ιδιότητα. Στην συγκεκριµένη περίπτωση η οµάδα εισόδων Draw Area Size που περιέχει τις διατάσεις της εικόνας συνδέεται µε την ιδιότητα DrawAreaSize. Με τον τρόπο αυτό εξασφαλίζεται ότι ο ενδείκτης εικόνας (στην συγκεκριµένη περίπτωση ο ελεγκτής Image Out ) θα έχει τις διαστάσεις τις εικόνας που θα αναπαραστήσει. Το RGB2picture.vi µπορεί εκτός από έγχρωµες εικόνες να αναπαραστήσει και εικόνες κλίµακας του γκρίζου αρκεί ο µονοδιάστατος πίνακας µε την πληροφορία της εικόνας να συνδεθεί ταυτόχρονα στις εισόδους Red Channel, Green Channel και Blue Channel. Στο σηµείο αυτό ολοκληρώθηκε η περιγραφή της έκτης φάσης και του block diagram του Image GUI.vi.

209 LabVIEW to CCS Link Αποτελέσµατα - Συµπεράσµατα Στο σχήµα 164 παρουσιάζεται το front panel του ImageGUI.vi όταν ολοκληρωθεί η ανίχνευση των ακµών της εικόνα cameraman.bmp που αναπαρίσταται στον ενδείκτη Image in. Το αποτέλεσµα της επεξεργασίας παρουσιάζεται στην εικόνα που αναπαριστά ο ενδείκτης Image Out Σχήµα 164. To front panel του ImageGUI.vi Στο σχήµα 165 παρουσιάζεται το front panel του ImageGUI.vi όταν ολοκληρωθεί η εφαρµογή του ευθύ και του αντίστροφου DCT µε χρήση του 1D-DCT στην εικόνα peppers.bmp που αναπαρίσταται στον ενδείκτη Image in. Το αποτέλεσµα της επεξεργασίας παρουσιάζεται στην εικόνα που αναπαριστά ο ενδείκτης Image Out Σχήµα 165. To front panel του ImageGUI.vi

210 Εφαρµογές Στο σχήµα 166 παρουσιάζεται το front panel του ImageGUI.vi όταν ολοκληρωθεί η εφαρµογή του ευθύ και του αντίστροφου DCT µε του αλγόριθµου McGovern στην εικόνα peppers.bmp που αναπαρίσταται στον ενδείκτη Image in. Το αποτέλεσµα της επεξεργασίας παρουσιάζεται στην εικόνα που αναπαριστά ο ενδείκτης Image Out Σχήµα 166. To front panel του ImageGUI.vi Στο σχήµα 167 παρουσιάζεται το front panel του ImageGUI.vi όταν ολοκληρωθεί τµήµα της κωδικοποίησης και της αποκωδικοποίησης σύµφωνα µε το πρότυπο JPEG στην εικόνα boat.bmp που αναπαρίσταται στον ενδείκτη Image in. Το αποτέλεσµα της επεξεργασίας παρουσιάζεται στην εικόνα που αναπαριστά ο ενδείκτης Image Out Σχήµα 167. To front panel του ImageGUI.vi

211 LabVIEW to CCS Link 207 Στο σχήµα 168 παρουσιάζεται το front panel του ImageGUI.vi όταν ολοκληρωθεί η ισοστάθµιση του ιστογράµµατος της εικόνας house_256rgb.bmp στον RGB χώρο. Η αρχική εικόνα αναπαρίσταται στον ενδείκτη Image in ενώ το αποτέλεσµα της επεξεργασίας παρουσιάζεται στην εικόνα που αναπαριστά ο ενδείκτης Image Out Σχήµα 168. To front panel του ImageGUI.vi Στο σχήµα 169παρουσιάζεται το front panel του ImageGUI.vi όταν ολοκληρωθεί η ισοστάθµιση του ιστογράµµατος της εικόνας house_256rgb.bmp στον YCbCr χώρο. Η αρχική εικόνα αναπαρίσταται στον ενδείκτη Image in ενώ το αποτέλεσµα της επεξεργασίας παρουσιάζεται στην εικόνα που αναπαριστά ο ενδείκτης Image Out Σχήµα 169. To front panel του ImageGUI.vi

Καλαντζόπουλος Αθανάσιος

Καλαντζόπουλος Αθανάσιος Σχεδίαση και Υλοποίηση Ολοκληρωµένου Συστήµατος µε DSPs για Λήψη, Επεξεργασία και ιαχείριση Εικόνας Ειδική Επιστηµονική Εργασία Καλαντζόπουλος Αθανάσιος Αντικείµενο µελέτης Οσχεδιασµός και η υλοποίηση

Διαβάστε περισσότερα

ΥΠΗΡΕΣΙΑ ΕΙΚΟΝΙΚΟΥ ΕΡΓΑΣΤΗΡΙΟΥ ΣΧΕ ΙΑΣΜΟΥ

ΥΠΗΡΕΣΙΑ ΕΙΚΟΝΙΚΟΥ ΕΡΓΑΣΤΗΡΙΟΥ ΣΧΕ ΙΑΣΜΟΥ ΠΑΡΑ ΟΤΕΟ (ΠE.3.4.1.3) ΓΙΑ ΤΟ ΥΠΟΕΡΓΟ 2 «ΑΝΑΠΤΥΞΗ ΥΠΗΡΕΣΙΩΝ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΕΙΚΟΝΙΚΩΝ ΕΡΓΑΣΤΗΡΙΩΝ» ΤΟΥ ΕΡΓΟΥ «ΥΠΗΡΕΣΙΕΣ ΕΙΚΟΝΙΚΩΝ ΕΡΓΑΣΤΗΡΙΩΝ ΤΟΥ ΤΕΙ ΑΘΗΝΑΣ» (MIS 304191) ΥΠΗΡΕΣΙΑ ΕΙΚΟΝΙΚΟΥ ΕΡΓΑΣΤΗΡΙΟΥ

Διαβάστε περισσότερα

Ειδική Επιστημονική Εργασία. Σχεδίαση και υλοποίηση Θέσεως Εργασίας ενός Εργαστηρίου DSPs από Απόσταση για Λήψη και Επεξεργασία Εικόνας

Ειδική Επιστημονική Εργασία. Σχεδίαση και υλοποίηση Θέσεως Εργασίας ενός Εργαστηρίου DSPs από Απόσταση για Λήψη και Επεξεργασία Εικόνας 1 Ειδική Επιστημονική Εργασία Σχεδίαση και υλοποίηση Θέσεως Εργασίας ενός Εργαστηρίου DSPs από Απόσταση για Λήψη και Επεξεργασία Εικόνας Μαρκόνης Δημήτριος Α.Μ. 72 Επιβλέπων: Ε. Ζυγούρης Αναπληρωτής Καθηγητής

Διαβάστε περισσότερα

Χρήση του Simulation Interface Toolkit για την Εξομοίωση και Πειραματισμό Συστημάτων Αυτομάτου Ελέγχου

Χρήση του Simulation Interface Toolkit για την Εξομοίωση και Πειραματισμό Συστημάτων Αυτομάτου Ελέγχου Χρήση του Simulation Interface Toolkit για την Εξομοίωση και Πειραματισμό Συστημάτων Αυτομάτου Ελέγχου Γ. Νικολακόπουλος, Μ. Κουνδουράκης, Α. Τζες και Γ. Γεωργούλας Πανεπιστήμιο Πατρών Τμήμα Ηλεκτρολόγων

Διαβάστε περισσότερα

Ψηφιακή Επεξεργασία Σήματος

Ψηφιακή Επεξεργασία Σήματος ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Ψηφιακή Επεξεργασία Σήματος Ενότητα Α: Περιγραφή και Τεχνικά Χαρακτηριστικά της κάρτας TMS320C5505 ezdsp Όνομα Καθηγητή: Ραγκούση

Διαβάστε περισσότερα

Σχήµα 4.1: Εισαγωγή βρόγχου while-loop.

Σχήµα 4.1: Εισαγωγή βρόγχου while-loop. Ο βρόγχος While-loop 1. Ο βρόγχος while-loop εκτελείται έως ότου ικανοποιηθεί µία προκαθορισµένη συνθήκη. 2. Ο αριθµός των επαναλήψεων ενός βρόγχου while-loop δεν είναι εκ των προτέρων προκαθορισµένος,

Διαβάστε περισσότερα

Εισαγωγή στο περιβάλλον Code::Blocks

Εισαγωγή στο περιβάλλον Code::Blocks Εισαγωγή στο περιβάλλον Code::Blocks Στο παρόν εγχειρίδιο παρουσιάζεται η διαδικασία ανάπτυξης, μεταγλώττισης και εκτέλεσης ενός προγράμματος C στο περιβάλλον του Code::Blocks. Η διαδικασία αυτή παρουσιάζεται

Διαβάστε περισσότερα

ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων. Βιβλιογραφία Ενότητας

ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων. Βιβλιογραφία Ενότητας ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων Βελτιστοποίηση κώδικα σε επεξεργαστές ΨΕΣ Τµήµα Επιστήµη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήµιο Πελοποννήσου Βιβλιογραφία Ενότητας Kehtarnavaz [2005]: Chapter

Διαβάστε περισσότερα

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ) ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ) Συσκευές αποθήκευσης Ένας υπολογιστής προκειµένου να αποθηκεύσει δεδοµένα χρησιµοποιεί δύο τρόπους αποθήκευσης: Την Κύρια Μνήµη Τις συσκευές µόνιµης αποθήκευσης (δευτερεύουσα

Διαβάστε περισσότερα

Σχήµα 6.1: Εισαγωγή της εντολής Read From Spreadsheet File στο Block Diagram.

Σχήµα 6.1: Εισαγωγή της εντολής Read From Spreadsheet File στο Block Diagram. Εισαγωγή αρχείων δεδοµένων 1. Η εισαγωγή αρχείων δεδοµένων στο LaVIEW γίνεται στο Block Diagram µε την εντολή Read From Spreadsheet File. 2. Εισάγουµε την εντολή Read From Spreadsheet File στο Block Diagram

Διαβάστε περισσότερα

Πως θα κατασκευάσω το πρώτο πρόγραμμα;

Πως θα κατασκευάσω το πρώτο πρόγραμμα; Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να γίνει εξοικείωση το μαθητών με τον ΗΥ και το λειτουργικό σύστημα. - Επίδειξη του My Computer

Διαβάστε περισσότερα

Εγκατάσταση του Arduino IDE

Εγκατάσταση του Arduino IDE ΑΣΠΑΙΤΕ Συλλογή και Επεξεργασία Δεδομένων Εργαστήριο ΠΕΡΙΕΧΟΜΕΝΑ: Πώς να κατεβάσετε και να εγκαταστήσετε το Ολοκληρωμένο Περιβάλλον Ανάπτυξης (IDE), για το προγραμματισμό του Arduino. Χρησιμοποιώντας το

Διαβάστε περισσότερα

ΣΤΟΧΟΙ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΠΕΡΙΕΧΟΜΕΝΟ

ΣΤΟΧΟΙ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΠΕΡΙΕΧΟΜΕΝΟ Σχεδίαση Συστηµάτων µε DSPs, Συστήµατα Επεξεργασίας Σηµάτων µε DSPs*. Μεταπτυχιακά Τµήµατα, Ηλεκτρονικής και Υπολογιστών & Ηλεκτρονικής και Επεξεργασίας της Πληροφορίας * 2006-2007 24 Οκτωβρίου 2006 ΣΤΟΧΟΙ

Διαβάστε περισσότερα

Μέρος 2. Εισαγωγή στο Lab VIEW και τα Εικονικά Όργανα

Μέρος 2. Εισαγωγή στο Lab VIEW και τα Εικονικά Όργανα Μέρος 2 Εισαγωγή στο Lab VIEW και τα Εικονικά Όργανα Πρόλογος Η «Εισαγωγή στο LabVIEW και τα Εικονικά Όργανα» βασίζεται στο βιβλίο του Dan Nesculescu, Mechatronics, Prentice Hall Μετάφραση στα ελληνικά

Διαβάστε περισσότερα

ΣΥΣΤΗΜΑΤΑ SCADA. Μέρος 5. Δικτύωση για Απομακρυσμένο Έλεγχο και Μεταφορά Δεδομένων

ΣΥΣΤΗΜΑΤΑ SCADA. Μέρος 5. Δικτύωση για Απομακρυσμένο Έλεγχο και Μεταφορά Δεδομένων ΣΥΣΤΗΜΑΤΑ SCADA Μέρος 5 Δικτύωση για Απομακρυσμένο Έλεγχο και Μεταφορά Δεδομένων 1 Αναφορές 1. Taking Your Measurements to the Web with Lab VIEW : Ενδιαφέρον και περιεκτικό άρθρο από την ιστοσελίδα της

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 121 ΕΡΓΑΣΤΗΡΙΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΝΗΜΗ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΖΟΜΕΝΗ ΛΟΓΙΚΗ ΥΠΕΥΘΥΝΟΣ ΕΡΓΑΣΤΗΡΙΩΝ: ΧΡΥΣΟΣΤΟΜΟΣ ΧΡΥΣΟΣΤΟΜΟΥ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2001 ΕΠΛ 121 ΕΡΓΑΣΤΗΡΙΑ ΨΗΦΙΑΚΩΝ

Διαβάστε περισσότερα

ΑΣΚΗΣΗ 5 η Η σειριακή επικοινωνία ΙΙ 1.1 ΣΚΟΠΟΣ Σκοπός της άσκησης αυτής είναι η κατανόηση σε βάθος των λειτουργιών που παρέχονται από το περιβάλλον LabView για τον χειρισµό της σειριακής επικοινωνίας

Διαβάστε περισσότερα

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού Μάθημα 2ο Aντώνης Σπυρόπουλος v2_061015 Οροι που

Διαβάστε περισσότερα

Συστήματα Μικροεπεξεργαστών

Συστήματα Μικροεπεξεργαστών Εργαστήριο 1 ο Εισαγωγή στον AVR Περίγραμμα Εργαστηριακής Άσκησης Εισαγωγή... 2 Κατηγορίες μικροελεγκτών AVR... 2 Εξοικείωση με το περιβάλλον AVR Studio 4... 3 Βήμα 1ο: Δημιουργία νέου έργου (project)...

Διαβάστε περισσότερα

Αρχιτεκτονική Μνήµης

Αρχιτεκτονική Μνήµης ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων Αρχιτεκτονική Μνήµης Τµήµα Επιστήµη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήµιο Πελοποννήσου Βιβλιογραφία Ενότητας Kuo [2005]: Chapters 3 & 4 Lapsley [2002]: Chapter

Διαβάστε περισσότερα

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

Διαβάστε περισσότερα

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική Εισαγωγή στην Πληροφορική Χειµερινό Εξάµηνο 2006-07 ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Εισαγωγή στην Πληροφορική 1 Γενικές πληροφορίες Εισαγωγή στην Πληροφορική ιδασκαλία: Παναγιώτης Χατζηδούκας Email:

Διαβάστε περισσότερα

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος Κεφάλαιο 3.1: Λειτουργικά Συστήματα 1 3.1.1 Λογισμικό και Υπολογιστικό Σύστημα Ένα σύγχρονο υπολογιστικό σύστημα αποτελείται από: το υλικό: τα ηλεκτρονικά μέρη του υπολογιστή και το λογισμικό: το σύνολο

Διαβάστε περισσότερα

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Μονάδες Μνήμης και Διατάξεις Προγραμματιζόμενης Λογικής

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Μονάδες Μνήμης και Διατάξεις Προγραμματιζόμενης Λογικής Πανεπιστήμιο Πατρών Τμήμα Φυσικής Ψηφιακά Ηλεκτρονικά Μονάδες Μνήμης και Επιμέλεια Διαφανειών: Δ. Μπακάλης Πάτρα, Φεβρουάριος 2009 Μονάδες Μνήμης - Προγραμματιζόμενη Λογική Μια μονάδα μνήμης είναι ένα

Διαβάστε περισσότερα

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες!

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες! Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κεντρική Επεξεργασίας (Σχεδιασμός και λειτουργία μιας απλής ΚΜΕ) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Η υπολογιστική

Διαβάστε περισσότερα

Εκπαιδευτικό Εργαλείο Κανονικοποίησης

Εκπαιδευτικό Εργαλείο Κανονικοποίησης Εκπαιδευτικό Εργαλείο Κανονικοποίησης Σύντομες οδηγίες χρήσης Εισαγωγή Το πρόγραμμα Εκπαιδευτικό Εργαλείο Κανονικοποίησης αυτοματοποιεί τη διαδικασία της κανονικοποίησης πινάκων σε BCNF μορφή. Ο χρήστης

Διαβάστε περισσότερα

Παραλληλισµός Εντολών (Pipelining)

Παραλληλισµός Εντολών (Pipelining) ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων Παραλληλισµός Εντολών (Pipelining) Τµήµα Επιστήµη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήµιο Πελοποννήσου Βιβλιογραφία Ενότητας Kuo [2005]: Chapter 3: Section 3.4,

Διαβάστε περισσότερα

Κεντρική Μονάδα Επεξεργασίας

Κεντρική Μονάδα Επεξεργασίας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κεντρική Μονάδα Επεξεργασίας (Σχεδιασμός και λειτουργία μιας απλής ΚΜΕ) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα της γλώσσας C, το Dev-C++, το οποίο είναι εφαρμογή που τρέχει

Διαβάστε περισσότερα

BHMATA ΓΙΑ ΑΝΑΒΑΘΜΙΣΗ ΣΤΟ 3S/I.T.P.

BHMATA ΓΙΑ ΑΝΑΒΑΘΜΙΣΗ ΣΤΟ 3S/I.T.P. BHMATA ΓΙΑ ΑΝΑΒΑΘΜΙΣΗ ΣΤΟ 3S/I.T.P. Πριν την έναρξη της διαδικασίας θα θέλαμε να σας ενημερώσουμε ότι η αναβάθμιση διαφέρει σε κάποιες λεπτομέρειες, ανάλογα με το τύπο της βάσης δεδομένων της κάθε χρήσης.

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 4 ο ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ ΠΕΡΙΦΕΡΕΙΑΚΗ ΜΝΗΜΗ

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 4 ο ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ ΠΕΡΙΦΕΡΕΙΑΚΗ ΜΝΗΜΗ ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ ΜΑΘΗΜΑ 4 ο ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ ΠΕΡΙΦΕΡΕΙΑΚΗ ΜΝΗΜΗ ΧΕΙΜΩΝΑΣ 2009 ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ 1 Γενική οργάνωση του υπολογιστή Ο καταχωρητής δεδομένων της μνήμης (memory data register

Διαβάστε περισσότερα

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

Διαβάστε περισσότερα

ΣΥΣΤΗΜΑΤΑ SCADA. Μέρος 5. Δικτύωση για Απομακρυσμένο Έλεγχο και Μεταφορά Δεδομένων

ΣΥΣΤΗΜΑΤΑ SCADA. Μέρος 5. Δικτύωση για Απομακρυσμένο Έλεγχο και Μεταφορά Δεδομένων ΣΥΣΤΗΜΑΤΑ SCADA Μέρος 5 Δικτύωση για Απομακρυσμένο Έλεγχο και Μεταφορά Δεδομένων 1 Αναφορές 1. Taking Your Measurements to the Web with Lab VIEW : Ενδιαφέρον και περιεκτικό άρθρο από την ιστοσελίδα της

Διαβάστε περισσότερα

Ενσωματωμένα Συστήματα

Ενσωματωμένα Συστήματα Ενσωματωμένα Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ Νο 3 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Διαβάστε περισσότερα

Εισαγωγή στη Χρήση της Εφαρµογής Compaq Visual Fortran & του Microsoft Developer Studio

Εισαγωγή στη Χρήση της Εφαρµογής Compaq Visual Fortran & του Microsoft Developer Studio Εισαγωγή στη Χρήση της Εφαρµογής Compaq Visual Fortran & του Microsoft Developer Studio Το κείµενο που ακολουθεί είναι ένας σύντοµος οδηγός στο περιβάλλον προγραµµατισµού της γλώσσας Fortran, για τις ανάγκες

Διαβάστε περισσότερα

Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας

Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας Το επίπεδο προτεραιότητας µιας διεργασίας µπορεί να αλλάξει µε χρήση της συνάρτησης nice. Κάθε διεργασία διαθέτει µια τιµή που καλείται

Διαβάστε περισσότερα

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Κώδικας μηχανής (E) Ο επεξεργαστής μπορεί να εκτελέσει το αρχιτεκτονικό σύνολο εντολών (instruction set architecture) Οι

Διαβάστε περισσότερα

Τυπικές χρήσεις της Matlab

Τυπικές χρήσεις της Matlab Matlab Μάθημα 1 Τι είναι η Matlab Ολοκληρωμένο Περιβάλλον Περιβάλλον ανάπτυξης Διερμηνευμένη γλώσσα Υψηλή επίδοση Ευρύτητα εφαρμογών Ευκολία διατύπωσης Cross platform (Wintel, Unix, Mac) Τυπικές χρήσεις

Διαβάστε περισσότερα

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) 1. Εισαγωγή Χαρακτηριστικά της γλώσσας Τύποι δεδοµένων Γλώσσα προγραµµατισµού

Διαβάστε περισσότερα

Σύστημα Ηλεκτρονικής Καταγραφής Μηνιαίων Αναφορών Αλιευτικής Δραστηριότητας Για Σκάφη Κάτω των 10 μέτρων

Σύστημα Ηλεκτρονικής Καταγραφής Μηνιαίων Αναφορών Αλιευτικής Δραστηριότητας Για Σκάφη Κάτω των 10 μέτρων Οδηγίες χρήσεως ηλεκτρονικής καταγραφής μηνιαίων αναφορών αλιευτικής δραστηριότητας Σελίδα: 1 Πίνακας περιεχομένων Ρύθμιση Σαρωτή...3 Αλλαγή 1η - Ρύθμιση του Driver της συσκευής...4 Αλλαγή 2η Διόρθωση

Διαβάστε περισσότερα

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού Μάθημα 9ο Aντώνης Σπυρόπουλος Σφάλματα στρογγυλοποίησης

Διαβάστε περισσότερα

Περιεχόµενα 1. Εγκατάσταση 2. Εισαγωγή 3. Σύνδεση 4. Ρυθµίσεις 2.1 Περιοχή εργασιών και πλοήγησης 2.2 Περιοχή απεικόνισης "Λεπτοµέρειες" 2.3 Περιοχή απεικόνισης "Στατιστικά" 4.1 Προφίλ 4.2 ίκτυο 4.2.1

Διαβάστε περισσότερα

Ε-85: Ειδικά Θέµατα Λογισµικού

Ε-85: Ειδικά Θέµατα Λογισµικού Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «ιεργασίες και Νήµατα» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων

Διαβάστε περισσότερα

SBOX-II B. Driver B version 1.01

SBOX-II B. Driver B version 1.01 SBOX-II B Driver B version 1.01 Κατάλογος περιεχομένων Eγκατάσταση...3 SETUP...3 Βασικές Λειτουργίες...3 Αλλαγή Λεκτικού ΕΑΦΔΣΣ...3 Εκτύπωση Φορολογικών Δελτίων από την ΕΑΦΔΣΣ...3 Φάκελοι αποθήκευσης αρχείων...3

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα της γλώσσας C, το Dev-C++, το οποίο είναι εφαρμογή που τρέχει

Διαβάστε περισσότερα

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Αρχεία δεδομένων Το πακέτο java.io περιλαμβάνει περισσότερες από 60 κλάσεις και διασυνδέσεις για το χειρισμό αρχείων δεδομένων. Αρκετές από τις κλάσεις του

Διαβάστε περισσότερα

Οδηγός Εισαγωγή Χρηστών σε LDAP Server με χρήση. LdapAdmin TEMPLATE

Οδηγός Εισαγωγή Χρηστών σε LDAP Server με χρήση. LdapAdmin TEMPLATE Οδηγός Εισαγωγή Χρηστών σε LDAP Server με χρήση LdapAdmin TEMPLATE Version 1 23/6/2017 Περιεχόμενα Ldap Admin... 2 Σύνδεση στον Ldap Server με την χρήση του Ldap Admin... 2 Εισαγωγή Χρήστη τύπου Employee-Affiliate

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ 2014-2020 ΕΝΟΤΗΤΑ «ΔΙΑΧΕΙΡΙΣΗ ΠΡΟΣΚΛΗΣΕΩΝ ΕΡΓΩΝ ΣΧΕΔΙΩΝ ΧΟΡΗΓΙΩΝ» 1η Έκδοση: 2015 ΠΕΡΙΕΧΟΜΕΝΑ 1. ΕΙΣΑΓΩΓΗ...3

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα για τη γλώσσα C: τον gcc μεταγλωττιστή της C σε περιβάλλον

Διαβάστε περισσότερα

SIMATIC MANAGER SIMATIC MANAGER

SIMATIC MANAGER SIMATIC MANAGER 1 Προγραμματισμός του PLC. 1. Γενικά Μια προσεκτική ματιά σε μια εγκατάσταση που θέλουμε να αυτοματοποιήσουμε, μας δείχνει ότι αυτή αποτελείται από επιμέρους τμήματα τα οποία είναι συνδεδεμένα μεταξύ τους

Διαβάστε περισσότερα

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθημα: Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Διδάσκων: Καθ. Κ. Λαμπρινουδάκης clam@unipi.gr 1 ΕΙΣΑΓΩΓΗ Μνήμη : Πόρος ζωτικής σημασίας του οποίου η διαχείριση απαιτεί ιδιαίτερη

Διαβάστε περισσότερα

Εγχειρίδιο Χρήσης Slide Recorder

Εγχειρίδιο Χρήσης Slide Recorder Εγχειρίδιο Χρήσης Slide Recorder Αναπτύχθηκε στο Κέντρο Λειτουργίας Διαχείρισης Δικτύου, Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Προγραμματιστής: Γιώργος Φράγκος Περιεχόμενα Εγχειρίδιο Χρήσης Slide

Διαβάστε περισσότερα

Αρχιτεκτονική Μνήμης

Αρχιτεκτονική Μνήμης ΕΣ 08 Επεξεργαστές Ψηφιακών Σημάτων Αρχιτεκτονική Μνήμης Τμήμα Επιστήμη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήμιο Πελοποννήσου Βιβλιογραφία Ενότητας Kuo [2005]: Chapters 3 & 4 Lapsley [2002]: Chapter

Διαβάστε περισσότερα

ΑΣΚΗΣΗ. Συγκομιδή και δεικτοδότηση ιστοσελίδων

ΑΣΚΗΣΗ. Συγκομιδή και δεικτοδότηση ιστοσελίδων Γλωσσική Τεχνολογία Ακαδημαϊκό Έτος 2010-2011 ΑΣΚΗΣΗ Συγκομιδή και δεικτοδότηση ιστοσελίδων Σκοπός της άσκησης είναι η υλοποίηση ενός ολοκληρωμένου συστήματος συγκομιδής και δεικτοδότησης ιστοσελίδων.

Διαβάστε περισσότερα

ΤΕΙ Κρήτης, Παράρτηµα Χανίων

ΤΕΙ Κρήτης, Παράρτηµα Χανίων ΠΣΕ, Τµήµα Τηλεπικοινωνιών & ικτύων Η/Υ Εργαστήριο ιαδίκτυα & Ενδοδίκτυα Η/Υ ( ηµιουργία συστήµατος µε ροint-tο-ροint σύνδεση) ρ Θεοδώρου Παύλος Χανιά 2003 Περιεχόµενα 1 ΕΙΣΑΓΩΓΗ...2 2 ΤΟ ΚΑΝΑΛΙ PΟINT-TΟ-PΟINT...2

Διαβάστε περισσότερα

Βοηθητικό πρόγραµµα Setup Οδηγός χρήσης

Βοηθητικό πρόγραµµα Setup Οδηγός χρήσης Βοηθητικό πρόγραµµα Setup Οδηγός χρήσης Copyright 2007 Hewlett-Packard Development Company, L.P. Η επωνυµία Windows είναι εµπορικό σήµα κατατεθέν της εταιρείας Microsoft Corporation. Οι πληροφορίες στο

Διαβάστε περισσότερα

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

Διαβάστε περισσότερα

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++ ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση με τη χρήση του περιβάλλοντος Dev C++ το οποίο θα χρησιμοποιηθεί για την υλοποίηση

Διαβάστε περισσότερα

(Ιούνιος 2001 ΤΕΕ Ηµερήσιο) Σε κάθε µία από τις παρακάτω περιπτώσεις, να

(Ιούνιος 2001 ΤΕΕ Ηµερήσιο) Σε κάθε µία από τις παρακάτω περιπτώσεις, να Κεεφάάλλααι ιοο:: 3Β ο Τίττλλοοςς Κεεφααλλααί ίοουυ: : Αρχιτεκτονική Ηλ/κου Τµήµατος των Υπολ. Συστηµάτων (Ιούνιος 2001 ΤΕΕ Ηµερήσιο) Σε κάθε µία από τις παρακάτω περιπτώσεις, να αναφέρετε τις τιµές των

Διαβάστε περισσότερα

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΕΦΑΛΑΙΟ 7ο ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Γενικό διάγραμμα υπολογιστικού συστήματος Γενικό διάγραμμα υπολογιστικού συστήματος - Κεντρική Μονάδα Επεξεργασίας ονομάζουμε

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων 2.1 Αρχιτεκτονική Υπολογιστών 2.1 Αρχιτεκτονική Υπολογιστών 2.2 Γλώσσα Μηχανής 2.3 Εκτέλεση προγράµµατος 2.4 Αριθµητικές και λογικές εντολές 2.5 Επικοινωνία µε άλλες συσκευές

Διαβάστε περισσότερα

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ 1. Παρακάτω δίνονται μερικοί από τους ακροδέκτες που συναντάμε στην πλειοψηφία των μικροεπεξεργαστών. Φτιάξτε έναν πίνακα που να

Διαβάστε περισσότερα

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Εισαγωγή στην Πληροφορική Αστροφυσικός Αναπλ. Καθηγητής ΕΜΠ romylos@survey.ntua.gr Λειτουργικά συστήµατα, διεργασίες και δροµολόγηση Σύνδεση

Διαβάστε περισσότερα

Προγραμματισμός Ι (HY120)

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται

Διαβάστε περισσότερα

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΗΠΕΙΡΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. Εργαστήριο Επεξεργασία Εικόνας & Βίντεο 1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή Νικόλαος Γιαννακέας Άρτα 2018 1 Εισαγωγή Το Matlab

Διαβάστε περισσότερα

για τις ρυθμίσεις LabView μέσα από το κανάλι και του καλωδίου USB.

για τις ρυθμίσεις LabView μέσα από το κανάλι   και του καλωδίου USB. 1o ΕΠΑΛ- Ε.Κ. Συκεών -Τομέας: Ηλεκτρονικής, Ηλεκτρολογίας και Αυτοματισμού Εκπαιδευτικοί: Μπουλταδάκης Στέλιος Μαυρίδης Κώστας Δραστηριότητα: 11 Μάθημα: Εργαστήριο Δικτύων Υπολογιστών Αντικείμενο : Μέτρηση

Διαβάστε περισσότερα

$./jms console -w <jms in> -r <jms out> -o <operations file> namedpipe. (standard input).

$./jms console -w <jms in> -r <jms out> -o <operations file> namedpipe. (standard input). Κ24: Προγραμματισμός Συστήματος 2η Εργασία Εαρινό Εξάμηνο 2017 Προθεσμία Υποβολής: Κυριακή 30 Απριλίου 2017 Ωρα 23:59 Εισαγωγή στην Εργασία: Ο στόχος της εργασίας αυτής είναι να εξοικειωθείτε με την δημιουργία

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ, 5 ο εξάµηνο

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ, 5 ο εξάµηνο ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ και ΥΠΟΛΟΓΙΣΤΩΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ, 5 ο εξάµηνο ΦΕΒΡΟΥΑΡΙΟΣ 2006 ΘΕΜΑΤΑ ΚΑΙ ΛΥΣΕΙΣ

Διαβάστε περισσότερα

Δημιουργία μιας εφαρμογής Java με το NetBeans

Δημιουργία μιας εφαρμογής Java με το NetBeans Δημιουργία μιας εφαρμογής Java με το NetBeans Για να δημιουργήσετε μια εφαρμογή Java πρέπει να ακολουθήσετε τα εξής βήματα : Αρχικά πρέπει να δημιουργηθεί ένα project το οποίο θα περιέχει όλα τα αρχεία

Διαβάστε περισσότερα

Εισαγωγή στην Αριθμητική Ανάλυση

Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στη MATLAB ΔΙΔΑΣΚΩΝ: ΓΕΩΡΓΙΟΣ ΑΚΡΙΒΗΣ ΒΟΗΘΟΙ: ΔΗΜΗΤΡΙΑΔΗΣ ΣΩΚΡΑΤΗΣ, ΣΚΟΡΔΑ ΕΛΕΝΗ E-MAIL: SDIMITRIADIS@CS.UOI.GR, ESKORDA@CS.UOI.GR Τι είναι Matlab Είναι ένα περιβάλλον

Διαβάστε περισσότερα

Στο grid διαχείρισης φακέλων εμφανίζονται οι εξής πληροφορίες:

Στο grid διαχείρισης φακέλων εμφανίζονται οι εξής πληροφορίες: Στο grid διαχείρισης φακέλων εμφανίζονται οι εξής πληροφορίες: Α/Α: Ο μοναδικός αριθμός (ID) αρίθμησης του φακέλου Α/Α Server: Ο μοναδικός αριθμός (ID) του φακέλου ο οποίος ενημερώνεται από την κεντρική

Διαβάστε περισσότερα

Σχήµα 2.1: Εισαγωγή array στο Front Panel.

Σχήµα 2.1: Εισαγωγή array στο Front Panel. Arrays (Πίνακες) 1. Στο LAbVIEW η εισαγωγή πινάκων γίνεται µε τα arrays. Για να εισάγουµε ένα array στο Front Panel κάνουµε δεξί κλικ σε αυτό και επιλέγουµε την εντολή «Array» από το µενού «Array, Matrix

Διαβάστε περισσότερα

Ψηφιακή Επεξεργασία Σήματος

Ψηφιακή Επεξεργασία Σήματος ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Ψηφιακή Επεξεργασία Σήματος Ενότητα Γ: Οδηγίες για την Ανάπτυξη και Εκτέλεση Προγραμμάτων στο Code Composer Studio v.4 Όνομα Καθηγητή:

Διαβάστε περισσότερα

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Python scripts Ένα πρόγραμμα στην Python (συχνά αποκαλείται script) αποτελείται από μία ακολουθία ορισμών και εντολών. H ακολουθία των ορισμών και

Διαβάστε περισσότερα

Βασικές Έννοιες της Πληροφορικής

Βασικές Έννοιες της Πληροφορικής Βασικές Έννοιες της Πληροφορικής Ηλεκτρονικός Υπολογιστής Αυτόματη ηλεκτρονική μηχανή που δέχεται, φυλάσσει, επαναφέρει, επεξεργάζεται και παρουσιάζει πληροφορίες σύμφωνα με προκαθορισμένες εντολές. Δεδομένα

Διαβάστε περισσότερα

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 9 Ανάλυση Fourier: Από τη Θεωρία στην Πρακτική Εφαρμογή των Μαθηματικών

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 9 Ανάλυση Fourier: Από τη Θεωρία στην Πρακτική Εφαρμογή των Μαθηματικών Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 9 Ανάλυση Fourier: Από τη Θεωρία στην Πρακτική Εφαρμογή των Μαθηματικών Τύπων. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων Σκοπός Βασική δομή ενός προγράμματος

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: Λειτουργίες Αρχείων Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Διαβάστε περισσότερα

1o ΕΠΑΛ- Ε.Κ. Συκεών -Τομέας: Ηλεκτρονικής, Ηλεκτρολογίας και Αυτοματισμού Εκπαιδευτικοί: Μπουλταδάκης Στέλιος Μαυρίδης Κώστας

1o ΕΠΑΛ- Ε.Κ. Συκεών -Τομέας: Ηλεκτρονικής, Ηλεκτρολογίας και Αυτοματισμού Εκπαιδευτικοί: Μπουλταδάκης Στέλιος Μαυρίδης Κώστας 1o ΕΠΑΛ- Ε.Κ. Συκεών -Τομέας: Ηλεκτρονικής, Ηλεκτρολογίας και Αυτοματισμού Εκπαιδευτικοί: Μπουλταδάκης Στέλιος Μαυρίδης Κώστας Μάθημα: Ρομποτική Αντικείμενο : Μεταφορά δεδομένων μέσω του πρωτοκόλλου RS232

Διαβάστε περισσότερα

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή 8.1 Τακτική σάρωση (Polling) Ας υποθέσουμε ότι έχουμε ένα πληκτρολόγιο συνδεδεμένο σε ένα υπολογιστικό σύστημα. Το πληκτρολόγιο είναι μια μονάδα εισόδου.

Διαβάστε περισσότερα

Epsilon Net PYLON Platform

Epsilon Net PYLON Platform Epsilon Net PYLON Platform Οδηγίες Εγκατάστασης Top 1 / 31 Περιεχόμενα 1 ΠΡΟΑΠΑΙΤΟΥΜΕΝΑ... 3 2 ΕΓΚΑΤΑΣΤΑΣΗ ΕΦΑΡΜΟΓΗΣ... 5 3 ΕΓΚΑΤΑΣΤΑΣΗ DEMO... 7 4 ΕΓΚΑΤΑΣΤΑΣΗ ΠΡΟΤΥΠΗΣ ΒΑΣΗΣ... 8 4.1 Φόρτωση πρότυπης

Διαβάστε περισσότερα

Αρχιτεκτονική υπολογιστών

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 11-12 : Δομή και Λειτουργία της CPU Ευάγγελος Καρβούνης Παρασκευή, 22/01/2016 2 Οργάνωση της CPU Η CPU πρέπει:

Διαβάστε περισσότερα

ΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση

ΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX Ύλη του Μαθήµατος Μάθηµα: Λειτουργικά Συστήµατα ΙΙ UNIX Βιβλίο Μαθήµατος: α) Tanenbaum, A.:ΣύγχροναΛειτουργικάΣυστήµατα, 2ηΈκδοση, Εκδόσεις Κλειδάριθµος. β) Wrightson, K.,

Διαβάστε περισσότερα

Μέρος 2. Εισαγωγή στο Lab VIEW και τα Εικονικά Όργανα

Μέρος 2. Εισαγωγή στο Lab VIEW και τα Εικονικά Όργανα Μέρος 2 Εισαγωγή στο Lab VIEW και τα Εικονικά Όργανα Πρόλογος Η «Εισαγωγή στο LabVIEW και τα Εικονικά Όργανα» βασίζεται στο βιβλίο του Dan Nesculescu, Mechatronics, Prentice Hall Μετάφραση στα ελληνικά

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

Τι είναι τα εξελιγμένα-έξυπνα δίκτυα-σκοπός του ΔΜΔΕ ΓΕΝΙΚΗ ΠΕΡΙΓΡΑΦΗ

Τι είναι τα εξελιγμένα-έξυπνα δίκτυα-σκοπός του ΔΜΔΕ ΓΕΝΙΚΗ ΠΕΡΙΓΡΑΦΗ ΓΕΝΙΚΗ ΠΕΡΙΓΡΑΦΗ Σε αναλογία με την ανάπτυξη που προέκυψε από την ψηφιοποίηση των επικοινωνιών, τα έξυπνα δίκτυα επιτρέπουν ανάλογο μετασχηματισμό στην παροχή ηλεκτρική ενέργειας Τα έξυπνα δίκτυα αξιοποιούν

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης Εργαστηριακές Ασκήσεις

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης Εργαστηριακές Ασκήσεις ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διαχείριση μνήμης Εργαστηριακές Ασκήσεις Υλικό από: Modern Operating Systems Laboratory Exercises, Shrivakan Mishra Σύνθεση Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο

Διαβάστε περισσότερα

4. ΔΗΜΙΟΥΡΓΙΑ ΜΟΝΤΕΛΟΥ ΠΟΛΥΔΙΑΣΤΑΤΗΣ ΑΝΑΛΥΣΗΣ

4. ΔΗΜΙΟΥΡΓΙΑ ΜΟΝΤΕΛΟΥ ΠΟΛΥΔΙΑΣΤΑΤΗΣ ΑΝΑΛΥΣΗΣ 4. ΔΗΜΙΟΥΡΓΙΑ ΜΟΝΤΕΛΟΥ ΠΟΛΥΔΙΑΣΤΑΤΗΣ ΑΝΑΛΥΣΗΣ Στο προηγούμενο εργαστήριο είδαμε πώς μπορούμε να αντλήσουμε πληροφορίες από μια σχεσιακή βάση δεδομένων με τη βοήθεια των ερωτημάτων (queries). Το μειονέκτημα

Διαβάστε περισσότερα

ΠΑΡΑΡΤΗΜΑ Δ Σύντομη παρουσίαση του DATA STUDIO

ΠΑΡΑΡΤΗΜΑ Δ Σύντομη παρουσίαση του DATA STUDIO ΠΑΡΑΡΤΗΜΑ Δ Σύντομη παρουσίαση του DATA STUDIO ΠαρΔ.1 Data Studio ΠαρΔ.1.1 Περιγραφή Το Data Studio είναι ένα πρόγραμμα που χρησιμοποιείται για τη λήψη, παρουσίαση και επεξεργασία πειραματικών μετρήσεων.

Διαβάστε περισσότερα

Visual Flowchart Γενικά

Visual Flowchart Γενικά Visual Flowchart 3.020 -Γενικά Το Visual Flowchart ή «Data-Flow Visual Programming Language 3.020» (http://www. emu8086.com/fp) είναι ένα περιβάλλον ανάπτυξης και εκτέλεσης αλγορίθμων απευθείας σε μορφή

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Επ. Καθ. Κ. Λαμπρινουδάκης

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Επ. Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθημα: Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Διδάσκων: Επ. Καθ. Κ. Λαμπρινουδάκης clam@unipi.gr 1 ΕΙΣΑΓΩΓΗ Μνήμη : Πόρος ζωτικής σημασίας του οποίου η διαχείριση απαιτεί ιδιαίτερη

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07 Τμήμα θεωρίας: Α.Μ. 8, 9 Κάθε Πέμπτη, 11πμ-2μμ, ΑΜΦ23. Διδάσκων: Ντίνος Φερεντίνος Γραφείο 118 email: kpf3@cornell.edu Μάθημα: Θεωρία + προαιρετικό

Διαβάστε περισσότερα

Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Πάτρας Τομέας Συστημάτων και Αυτομάτου Ελέγχου. Εργαστήριο Αναλογικού και Ψηφιακού Ελέγχου Ι

Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Πάτρας Τομέας Συστημάτων και Αυτομάτου Ελέγχου. Εργαστήριο Αναλογικού και Ψηφιακού Ελέγχου Ι Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Πάτρας Τομέας Συστημάτων και Αυτομάτου Ελέγχου Εργαστήριο Αναλογικού και Ψηφιακού Ελέγχου Ι 1 Το LabVIEW αποτελεί εργαλείο που μπορεί να χρησιμοποιηθεί

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (ΗΥ222)

Λειτουργικά Συστήματα (ΗΥ222) Λειτουργικά Συστήματα (ΗΥ222) Διάλεξη 7: Εισαγωγή στην Ιδεατή Μνήμη - Τμηματοποίηση Η Ευτυχισμένη Κοινωνία των Διεργασιών 2 Πολλαπλές χαρούμενες διεργασίες στο σύστημα Και αν το Visual Studio χρειαστεί

Διαβάστε περισσότερα

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή Εισαγωγή Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ Σκοπός του εργαστηρίου είναι να γνωρίσουµε την εσωτερική δοµή και αρχιτεκτονική της κεντρικής µονάδας επεξεργασίας, να κατανοήσουµε τον τρόπο µε τον οποίο λειτουργεί

Διαβάστε περισσότερα

Κλάσεις και Αντικείµενα

Κλάσεις και Αντικείµενα Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα 3.1 Η εξέλιξη των λειτουργικών συστηµάτων 3.2 Αρχιτεκτονική λειτουργικών συστηµάτων 3.3 Συντονισµός των δραστηριοτήτων του υπολογιστή 3.4 Χειρισµός ανταγωνισµού µεταξύ

Διαβάστε περισσότερα

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record) Διαχείριση Αρχείων Αρχεία Για να είναι δυνατή η επεξεργασία μεγάλου αριθμού δεδομένων τα δεδομένα είναι αποθηκευμένα σε ψηφιακά μέσα κατάλληλα οργανωμένα. Η αποθήκευση γίνεται σε αρχεία. Πολλά προγράμματα

Διαβάστε περισσότερα

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual MILE Simulator Version 1.0 User's Manual Νοέμβριος, 2011 Περιεχόμενα 1. Εισαγωγή στον προσομοιωτή...2 1.1 Εγκατάσταση...2 1.2 Βοήθεια Διευκρινήσεις...2 2. Ξεκινώντας με τον προσομοιωτή...3 2.1 Το memory

Διαβάστε περισσότερα

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 7 και 8: Αναπαραστάσεις. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 7 και 8: Αναπαραστάσεις. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής Γιώργος Δημητρίου Μάθημα 7 και 8: Αναπαραστάσεις Αναπαράσταση Πληροφορίας Η/Υ Αριθμητικά δεδομένα Σταθερής υποδιαστολής Κινητής υποδιαστολής Μη αριθμητικά δεδομένα Χαρακτήρες Ειδικοί κώδικες Εντολές Γλώσσα

Διαβάστε περισσότερα

Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Εισαγωγή στην πληροφορική Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Ρωµύλος Κορακίτης

Διαβάστε περισσότερα