Το wiring είναι βιβλιοθήκη, η γλώσσα παραμένει c++. (Δεν υπάρχει επιλογή για c, απλά μπορεί ο κώδικας να φαίνεται ότι είναι c, επειδή η c++ έχει στοιχεία από τη c, και για το λόγο αυτό λέεi c/c++). Οι βιβλιοθήκες είναι σε c++. Τα αντικείμενα που χρησιμοποιούμε είναι της c++ (η c δεν έχει αντικείμενα).
Απλά αυτά που γράφουμε είναι μέρος του τελικού προγράμματος (η c++ απαιτεί μια main() συνάρτηση). Το τελικό το φτιάχνει το IDE κατά τη μετάφραση του κώδικα.
Αυτό που έχει σημασία είναι ότι ο κώδικας θα έχει πράγματα που θα σχετίζονται με συγκεκριμένη υλοποίηση (hardware) Arduino (πχ nano ή Node Esp 12 ή DUO). Η διαφοροποίηση έχει να κάνει με τις πόρτες (Αριθμός και χρήση) και την μνήμη, και σε κάποιες περιπτώσεις με άλλα πιο εξωτικά χαρακτηριστικά.
Οπότε χρειάζεται να ορίσουμε το τσιπάκι και μετά να προβούμε σε μετάφραση-έλεγχο.Ένα άλλο χαρακτηριστικό του IDE του Arduino, ως προς το κώδικα είναι ότι γράφουμε απευθείας σε UTF-8. Αυτό δεν συμβαίνει σε ένα IDE για c++, πχ στο Code::Blocks, όπου ανάλογα τη χρήση χαρακτήρων αλλάζει ανά αρχείο το τύπο κωδικοποίησης και πρέπει να βάζει κανείς τα L ή R μπροστά από τα αλφαριθμητικά για να προσμετρήσει ο μεταφραστής τη σωστή κωδικοποίηση του τελικού αλφαριθμητικού που θα καταχωρήσει στο κώδικα του εκτελέσιμου αρχείου.
Έτυχε να φτιάξω ένα αντικείμενο για να χειρίζεται η Μ2000 σειριακές πόρτες, ώστε να διαβάζει και να γράφει σε Arduino (καθώς τρέχουν, ώστε να καταχωρούμε στοιχεία ή να φτιάχνουμε γραφικές παραστάσεις, και επίσης για να το ελέγχουμε με μηνύματα). Διαπίστωσα ότι οι μεταφορές γίνονται με UTF-8. Αν κάποιος διαβάζει ή γράφει με χαρακτήρες με κωδικούς από 0 έως 127 τότε μπορεί να νομίζει ότι η μεταφορά γίνεται με ANSI. Αυτό συμβαίνει επειδή τα δυο στάνταρ κωδικοποίησης έχουν κοινό τόπο αυτή τη περιοχή χαρακτήρων. Το μπέρδεμα ξεκινάει όταν έχουμε χαρακτήρες των 2 ή τριών ή τεσσάρων bytes (το utf-8 έχει χαρακτήρες που πιάνουν στη μνήμη από 1 έως 4 bytes, ανάλογα το νούμερο).