Αρχικό μήνυμα από
sotron1
Δεν μας δίνεις τον κώδικα να το δοκιμάσουμε και εμείς. Ίσως είσαι σε ένα πιο καθαρό περιβάλλον από εδώ.
Η αλήθεια είναι ότι εδώ που μένω δεν υπάρχουν αφενός πολυκατοικίες και αφετέρου είναι σχετικά αραιοκατοικημένη η περιοχή μου. Πάντως ακόμα και έτσι στους 2,4 GHz γίνεται χαμός.
Τώρα ο κώδικας που δουλεύω, χρησιμοποιεί σαν βασική βιβλιοθήκη την Scheduler, (την οποία την ανέπτυξα στο ξεκίνημα της ασχολίας μου με το arduino), η οποία μπορώ να πω ότι είναι η βάση σε όλες τις εφαρμογές που έχω αναπτύξει μέχρι τώρα. Για παράδειγμα, να μπορώ να ορίζω πότε πρέπει να κληθεί μια ρουτίνα όταν υπάρχει timeout αλλά και ακύρωση της κλήσης όταν φτάσει πακέτο ACK, σκανάρισμα ανά τακτά διαστήματα για το αν έχει φτάσει πακέτο προς επεξεργασία, χρονική ουρά για την μετάδοση πακέτων ανάλογα με σειρά προτεραιότητας καθώς και πολλά άλλα.
Κατά αρχή πρέπει να φτιάξεις ένα πίνακα, ένα πρωτόκολλο, όπου θα συγκεκριμενοποιείς το τι είδους πακέτο εκπέμπεται ή λαμβάνεται κάθε φορά, από ποιον σε ποιόν, τι πληροφορίες και σε ποια συγκεκριμένη θέση βρίσκονται στο πακέτο, καθώς και ποια πρέπει να είναι η αντίδραση του παραλήπτη. Αν πρέπει να απαντήσει στο request ή να το αγνοήσει στην περίπτωση που πρόκειται για απλό πακέτο info.
Για παράδειγμα στην δική μου περίπτωση για την επικοινωνία ανάμεσα σε μια βάση και τους περιφερειακούς σταθμούς, που μπορούν να φτάσουν τον αριθμό 8, καθώς και προς ένα ATS (για να παίρνω πληροφορίες από αυτό καθώς και να μπορεί να δέχεται εντολές μέσω του δικτύου και μέσω της βάσης, για την εκτέλεση του μηνιάτικου start test της γεννήτριας), βασίζεται σε αυτό το πρωτόκολλο.
Κώδικας:
Message Command Data Dir. Bytes Note Return Back Message
---------------------------------------------------------------------------------------------------------------------------------------------
0 = WRA_MESSAGE_RECEIVED_OK REQ_COMMAND <-> 1 ACK for the requested command -
1 = WRA_MESSAGE_STATION_ALIVE - S2M 12 (see note below) WRA_MESSAGE_RECEIVED_OK
2 = WRA_MESSAGE_STATION_REQUEST_STATUS - M2S - - WRA_MESSAGE_STATION_RESPONT_STATUS
3 = WRA_MESSAGE_STATION_RESPONT_STATUS SSSSSSSS S2M 12 (see note below) WRA_MESSAGE_RECEIVED_OK
4 = WRA_MESSAGE_STATION_REQUEST_CHANGE_SOCKETS SSSSSSSS M2S 1 every bit display socket state WRA_MESSAGE_STATION_RESPONT_CHANGE_SOCKETS
5 = WRA_MESSAGE_STATION_RESPONT_CHANGE_SOCKETS SSSSSSSS S2M 1 every bit display socket state WRA_MESSAGE_RECEIVED_OK
6 = WRA_MESSAGE_STATION_REQUEST_CHANGE_SOCKET S0000NNN M2S 1 N = socket nr (0-7), S = state WRA_MESSAGE_STATION_RESPONT_CHANGE_SOCKET
7 = WRA_MESSAGE_STATION_RESPONT_CHANGE_SOCKET S0000NNN S2M 1 N = socket nr (0-7), S = state WRA_MESSAGE_RECEIVED_OK
8 = WRA_MESSAGE_STATION_EVENT_SOCKETS SSSSSSSS S2M 1 every bit display socket state WRA_MESSAGE_RECEIVED_OK
9 = WRA_MESSAGE_STATION_EVENT_SOCKET SxxxxNNN S2M 1 N = socket nr (0-7), S = state WRA_MESSAGE_RECEIVED_OK
10 = WRA_MESSAGE_STATION_EVENT_STARTUP - S2M 8 (see note below) -
11 = WRA_MESSAGE_STATION_REQUEST_SYSINFO - M2S - - WRA_MESSAGE_STATION_RESPONT_SYSINFO
12 = WRA_MESSAGE_STATION_RESPONT_SYSINFO - S2M 8 (see note below) WRA_MESSAGE_RECEIVED_OK
13 = WRA_MESSAGE_ATS_REQUEST_INFO_SETTING NNNNNNNN M2A 1 (DATA 1 = the setting nr) WRA_MESSAGE_ATS_RESPONT_INFO_SETTING
14 = WRA_MESSAGE_ATS_RESPONT_INFO_SETTING - A2M 3 (see note below) WRA_MESSAGE_RECEIVED_OK
15 = WRA_MESSAGE_ATS_REQUEST_SET_SETTING - M2A 3 (see note below) WRA_MESSAGE_ATS_RESPONT_SET_SETTING
16 = WRA_MESSAGE_ATS_RESPONT_SET_SETTING NNNNNNNN A2M 3 (see note below) WRA_MESSAGE_RECEIVED_OK
17 = WRA_MESSAGE_ATS_REQUEST_INFO NNNNNNNN M2A 1 (DATA 1 = info type) WRA_MESSAGE_ATS_RESPONT_INFO
18 = WRA_MESSAGE_ATS_RESPONT_INFO - A2M 5 (see note below) WRA_MESSAGE_RECEIVED_OK
19 = WRA_MESSAGE_ATS_REQUEST_COMMOP NNNNNNNN M2A 1 (DATA 1 = command op type) WRA_MESSAGE_RECEIVED_OK
20 = WRA_MESSAGE_ATS_EVENT - A2M 2 (see note below) -
21 = WRA_MESSAGE_ATS_REQUEST_INFO_SETTINGS - M2A - - WRA_MESSAGE_ATS_RESPONT_INFO_SETTINGS
22 = WRA_MESSAGE_ATS_RESPONT_INFO_SETTINGS - A2M 30 (DATA = all Settings) WRA_MESSAGE_RECEIVED_OK
23 = WRA_MESSAGE_ATS_REQUEST_INFOS - M2A - - WRA_MESSAGE_ATS_RESPONT_INFOS
24 = WRA_MESSAGE_ATS_RESPONT_INFOS - A2M 36 (DATA = all Infos) WRA_MESSAGE_RECEIVED_OK
---------------------------------------------------------------------------------------------------------------------------------------------