THMMY.gr

Μαθήματα Κύκλου Ηλεκτρονικής & Υπολογιστών => Ενσωματωμένα Συστήματα Πραγματικού Χρόνου => Topic started by: Florence on April 29, 2019, 19:21:15 pm



Title: [Eνσωματωμένα] Εργασίες 2019
Post by: Florence on April 29, 2019, 19:21:15 pm
στην εργασια οταν λεει να αποθηκευσουμε το timestamp σε πινακα εννοει και τα 2 timestamp? δλδ ενωνω το timestamp με τα sec και το timestamp με τα msec και το αποθηκευω ολο μαζι στον πινακα?


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: 00128419 on April 30, 2019, 20:48:57 pm
Για την πρώτη υλοποίηση που μας ζητάει η πρώτη εργασία απαγορεύεται να χρησιμοποιήσουμε την gettimeofday ή αλλες παρόμοιες συναρτήσεις για να πάρουμε τα timestamps που ζητάει?


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: leukosaraphs! on April 30, 2019, 21:12:56 pm
εγω αυτο που καταλαβαινω ειναι οτι στην μια υλοποιηση δεν μπορεις να "εκμεταλλευτεις" τους χρονους που μετρας.

Τι εννοω θα δεις οτι στην υλοποιηση (πχ με την sleep() ), ο χρονος υπνου δεν ειναι αυτος που πρεπει. Στην μια υλοποιηση δεν μπορεις να δεις ποσο μακρια εισαι απο τον επιθυμητο και να προσθαφαιρεσεις τον χρονο αυτο, για να πετυχεις τον επιθυμητο, ενω στο 2ο μπορεις.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: 00128419 on April 30, 2019, 22:17:05 pm
εγω αυτο που καταλαβαινω ειναι οτι στην μια υλοποιηση δεν μπορεις να "εκμεταλλευτεις" τους χρονους που μετρας.

Τι εννοω θα δεις οτι στην υλοποιηση (πχ με την sleep() ), ο χρονος υπνου δεν ειναι αυτος που πρεπει. Στην μια υλοποιηση δεν μπορεις να δεις ποσο μακρια εισαι απο τον επιθυμητο και να προσθαφαιρεσεις τον χρονο αυτο, για να πετυχεις τον επιθυμητο, ενω στο 2ο μπορεις.

Νομίζω κατάλαβα τι εννόεις. Άρα χρησιμοποιώ την gettimeofday και στις δυο υλοποιήσεις, απλά στην μια περίπτωση δεν μπορώ να εξάγω τα timestamps που υπολογίζω απο τη διαφορά αρχικού και τελικού χρόνου


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: feugatos_# on April 30, 2019, 22:52:59 pm
εγω αυτο που καταλαβαινω ειναι οτι στην μια υλοποιηση δεν μπορεις να "εκμεταλλευτεις" τους χρονους που μετρας.

Τι εννοω θα δεις οτι στην υλοποιηση (πχ με την sleep() ), ο χρονος υπνου δεν ειναι αυτος που πρεπει. Στην μια υλοποιηση δεν μπορεις να δεις ποσο μακρια εισαι απο τον επιθυμητο και να προσθαφαιρεσεις τον χρονο αυτο, για να πετυχεις τον επιθυμητο, ενω στο 2ο μπορεις.
Εγώ αυτό που έχω καταλάβει είναι το εξής κι ας με διαψεύσει κάποιος:

Στην μια υλοποίηση χρησιμοποιείς την alarm ή την setitimer που έχει στο λινκ της εκφώνησης. Αυτές πετούν ένα signal ανά time interval. Έχουν πολύ καλή ακρίβεια και δε χρειάζεται να χρησιμοποιηθούν τα timestamps που λαμβάνουμε για βελτίωση της ακρίβειας.
Στην άλλη υλοποίηση χρησιμοποιούμε τη sleep. Επειδή σε αυτή την περίπτωση υπάρχει σφάλμα πρέπει να γίνει κάποιου είδους βελτίωση της ακρίβειας. Για το σκοπό αυτό, χρησιμοποιούμε τα timestamps που λαμβάνουμε.

Η εκφώνηση είναι λίγο χάλι. Δεν εξηγεί τι ακριβώς θέλουν...


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Florence on May 01, 2019, 00:31:07 am
Παντως η sleep() που λεει να χρησιμοποιησουμε παιρνει Integer....φανταζομαι δε θα υπαρχει θεμα να χρησιμοποιησουμε την usleep(), ετσι?


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: feugatos_# on May 01, 2019, 00:48:52 am
Παντως η sleep() που λεει να χρησιμοποιησουμε παιρνει Integer....φανταζομαι δε θα υπαρχει θεμα να χρησιμοποιησουμε την usleep(), ετσι?
Προφανώς ο καθένας μπορεί να χρησιμοποιήσει ό,τι θέλει. Εννοώ τύπου sleep :P


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: 00128419 on May 01, 2019, 12:45:42 pm
Εγώ αυτό που έχω καταλάβει είναι το εξής κι ας με διαψεύσει κάποιος:

Στην μια υλοποίηση χρησιμοποιείς την alarm ή την setitimer που έχει στο λινκ της εκφώνησης. Αυτές πετούν ένα signal ανά time interval. Έχουν πολύ καλή ακρίβεια και δε χρειάζεται να χρησιμοποιηθούν τα timestamps που λαμβάνουμε για βελτίωση της ακρίβειας.
Στην άλλη υλοποίηση χρησιμοποιούμε τη sleep. Επειδή σε αυτή την περίπτωση υπάρχει σφάλμα πρέπει να γίνει κάποιου είδους βελτίωση της ακρίβειας. Για το σκοπό αυτό, χρησιμοποιούμε τα timestamps που λαμβάνουμε.

Η εκφώνηση είναι λίγο χάλι. Δεν εξηγεί τι ακριβώς θέλουν...

Ετσι ακριβως το χω κανει και εγω μεχρι στιγμης αλλα δεν ειμαι σιγουρος πως μπορω να παρω τα χρονικα στιγμιοτυπα  απο την υλοποιηση με τα alarms/interrupts για να κανω τα διαγραμματα που ζητάει. Πρεπει να χρησιμοποιησω παλι την gettimeofday και να την καλεσω απο τον signal handler?


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Xplicit on May 03, 2019, 16:48:56 pm
Εγω θεωρώ πως επειδή η sleep() δέχεται ακέραιους, τη χρησιμοποιείς σε συνδυασμό με timer ούτως ώστε να έχεις ακρίβεια σε μs. Φυσικά, αυτό μπορεί να γίνει απευθείας με τη usleep() ή τη nanosleep(). Με τις δύο τελευταίες δεν βλέπω λόγο να χρησιμοποιηθεί κάποιος timer. Και η sleep() και κυρίως η gettimeofday(), δεν προτείνονται πλέον για χρήση απο το POSIX πάντως.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: 00128419 on May 03, 2019, 17:45:26 pm
Εγω παντως παιρνω μια καθυστερηση περιπου 7.5 msec τοσο για την περιπτωση του alarm/interrupt όσο και για την περιπτωση της usleep. Δεν εχω καταλαβει αν η εκφωνηση μας περιοριζει στο να χρησιμοποιησουμε την sleep που δεχεται ακεραια seconds ως ορισμα και να πρεπει να χρησιμοποιησουμε timestamps απο τον timer για να βελτιωσουμε την ακριβεια.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: papoudaa on May 04, 2019, 19:48:22 pm
την 1η εργασία που την ανεβαζουμε γιατι δεν βλεπω κατι στο elearning?


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: leukosaraphs! on May 05, 2019, 13:09:24 pm
εγω που μιλησα με τον φλωρο η gettimeofday ουσιαστικα χρησιμοποιειται κι στις 2 υλοποιησεις. Απλα στην μια μπορεις να εκμεταλλευτεις και την διαφορα που εχεις απο τον ιδανικο χρονο δειγματοληψιας.
Αν χρησιμοποιησεις -σωστα- τον timer πρεπει να εχεις μηδενικη αποκλιση (Εγω εχω στο 7ο δεκαδικο) απο τον ιδανικο χρονο δειγματοληψιας.

για την παραδοση της εργασιας, εστειλα mail στον φλωρο δεν μου απαντησε ποτε. αναμενουμε.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Apostolof on May 05, 2019, 13:21:11 pm
Ρε μη βιάζεστε τόσο για παράδοση.. Κάποιοι δε την ξεκίνησαν ακόμα 8)) :'(


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: feugatos_# on May 05, 2019, 13:48:10 pm
εγω που μιλησα με τον φλωρο η gettimeofday ουσιαστικα χρησιμοποιειται κι στις 2 υλοποιησεις. Απλα στην μια μπορεις να εκμεταλλευτεις και την διαφορα που εχεις απο τον ιδανικο χρονο δειγματοληψιας.
Αν χρησιμοποιησεις -σωστα- τον timer πρεπει να εχεις μηδενικη αποκλιση (Εγω εχω στο 7ο δεκαδικο) απο τον ιδανικο χρονο δειγματοληψιας.

για την παραδοση της εργασιας, εστειλα mail στον φλωρο δεν μου απαντησε ποτε. αναμενουμε.
Τόση ακρίβεια έχεις και στις δύο υλοποιήσεις;


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: leukosaraphs! on May 05, 2019, 14:00:54 pm
Τόση ακρίβεια έχεις και στις δύο υλοποιήσεις;

αρχικα εχω 3 υλοποιησεις :Ρ
1) sleep (μη προσαρμοζομενο)
θα επρεπε να εχω 100ms και εχω 100.2205ms
2) sleep (προσαρμοζομενο)
θα επρεπε να εχω 100ms και εχω 100.1131ms
3) interrupt
θα επρεπε να εχω 100ms και εχω 100.000083ms


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mano_lee on May 05, 2019, 14:14:21 pm
αρχικα εχω 3 υλοποιησεις :Ρ
1) sleep (μη προσαρμοζομενο)
θα επρεπε να εχω 100ms και εχω 100.2205ms
2) sleep (προσαρμοζομενο)
θα επρεπε να εχω 100ms και εχω 100.1131ms
3) interrupt
θα επρεπε να εχω 100ms και εχω 100.000083ms

Στην 3η υλοποίηση, πως ξέρεις πότε φτάνει στον συνολικό χρόνο ώστε να το σταματήσεις; Δεδομένου ότι δεν μπορείς να εκμεταλλευτείς τα timestamps, Και ότι δεν μπορείς να έχεις 2ο alarm να τρέχει ταυτόχρονα.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: leukosaraphs! on May 05, 2019, 14:21:54 pm
Στην 3η υλοποίηση, πως ξέρεις πότε φτάνει στον συνολικό χρόνο ώστε να το σταματήσεις; Δεδομένου ότι δεν μπορείς να εκμεταλλευτείς τα timestamps, Και ότι δεν μπορείς να έχεις 2ο alarm να τρέχει ταυτόχρονα.

ουσιαστικα οντως δεν το ξερω, απλα του λεω να μετρησει τοσες φορες... και το κανει σε 7200.006sec.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: jaime on May 05, 2019, 14:38:02 pm
Ρε μη βιάζεστε τόσο για παράδοση.. Κάποιοι δε την ξεκίνησαν ακόμα 8)) :'(

 Θα δοθεί λογικά παράταση?


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Apostolof on May 05, 2019, 14:42:03 pm
Θα δοθεί λογικά παράταση?

Το ελπίζω.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Mr Xaxas on May 05, 2019, 17:51:30 pm
Τελικα στο πρωτο ερωτημα πρεπει να χρησιμοποιησω sleep και στο δευτερο με την βοηθεια των timestamps να βελτιωσω την αποκλιση Ή πρεπει στο πρωτο να χρησιμοποιησω alarm() και στο δευτερο να χρησιμοποιησω sleep μαζι με τα timestamps για καλυτερη ακριβεια ????


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mprizakias on May 06, 2019, 15:43:44 pm
Μαθαμε κατι για την παραδοση?


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Apostolof on May 06, 2019, 18:40:33 pm
Θα δοθεί λογικά παράταση?

Πήρε παράταση μέχρι Παρασκευή.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: feugatos_# on May 06, 2019, 20:03:09 pm
Ωχ θα έχει και αξιολόγηση;
Αφού οι πρώτες δύο εργασίες δεν βαθμολογούνται έτσι κι αλλιώς... γιατί;  :P


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: A Caster on May 07, 2019, 02:05:12 am
Ωχ θα έχει και αξιολόγηση;
Αφού οι πρώτες δύο εργασίες δεν βαθμολογούνται έτσι κι αλλιώς... γιατί;  :P

θυμαμαι επισης ειχε πει οι πρωτες 1-2 θα ηταν φαση set up

Οπότε μπορεί απλά να άλλαξε το πλάνο


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: jaime on May 09, 2019, 19:16:54 pm
 Μπορεί κανείς να μου πει πως προκύπτει η εξαγωγή των timestamps ώστε να προκύψουν τα διαγράμματα με τις στατιστικές και το γράφημα για την απόκλιση ?  :-\


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Frenzyx on May 09, 2019, 19:43:47 pm
Μπορεί κανείς να μου πει πως προκύπτει η εξαγωγή των timestamps ώστε να προκύψουν τα διαγράμματα με τις στατιστικές και το γράφημα για την απόκλιση ?  :-\

Ένας τρόπος να το κάνεις είναι αφου έχεις τον πίνακα με τα timestamps, να τον γράψεις σε αρχείο .txt (φτιάχνεις file pointer και γράφεις ένα ένα τα στοιχεία με fprintf - μη ξεχάσεις να κλείσεις το αρχείο!).
Ύστερα, κάνε απλά load το αρχείο σου σε MATLAB ή Python ξερω γω (κατα τη γνωμη μου πιο ευκολο σε MATLAB), και βγάλε τις στατιστικές και τα διαγράμματα που ζητάει.
Στη MATLAB υπάρχει εντολή που βρίσκει κατευθείαν τις διαφορές ανάμεσα σε διαδοχικά στοιχεία - η εντολή diff.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: jaime on May 10, 2019, 01:18:58 am
 Ευχαριστώ πολύ!! :)


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: ApostolisS on May 10, 2019, 19:12:35 pm
Ξερει κανεις αν οντως η παραδοση της πρωτης εργασιας ειναι υποχρεωτικη?


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Frenzyx on May 11, 2019, 23:12:23 pm
Αυτό που έχει ανοίξει στη σελίδα υποβολής της εργασίας, για αξιολόγηση εργασιών άλλων φοιτητών, ξέρει κανείς περί τίνος πρόκειται? Ανέφερε τίποτα την Πέμπτη?


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: leukosaraphs! on May 11, 2019, 23:52:50 pm
Αυτό που έχει ανοίξει στη σελίδα υποβολής της εργασίας, για αξιολόγηση εργασιών άλλων φοιτητών, ξέρει κανείς περί τίνος πρόκειται? Ανέφερε τίποτα την Πέμπτη?

γενικα τελευταια φορα που ειχε μιλησει για τις εργασιες, ειμασταν στην φαση "οι εργασιες οι πρωτες ειναι απλα για να παιξετε λιγο"... Μαλλον τωρα εχει και διορθωση :P


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mano_lee on May 12, 2019, 23:58:52 pm
Άρα την κάνουμε την αξιολόγηση; Δοκίμασε κανείς για να επιβεβαιώσει;


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: feugatos_# on May 16, 2019, 15:55:13 pm
Ανέφερε κάτι για την αξιολόγηση στα τελευταία μαθήματα;


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mano_lee on May 16, 2019, 22:48:07 pm
Γενικά είπε πως δεν μετράει στον βαθμό η αξιολόγηση. Απλώς θέλει να την κάνουμε για να ασχοληθούμε και να πάρουμε ιδέες που δεν σκεφτήκαμε, για να τς χρησιμοποιήσουμε και στις επόμενες εργασίες.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mano_lee on May 25, 2019, 19:04:48 pm
Raspberry Pi Question

Αν η ερώτηση πρέπει να πάει σε άλλο thread ας μετακινηθεί :P

Έχω περάσει την εικόνα του raspbian που πρότεινε ο Πιτσιάνης στην SD card, και το rasp κάνει boot κανονικά. Δεν μπορώ όμως να συνδεθώ με ssh. Για την ενσύρματη σύνδεση έχω ρυθμίσει και static IP, για την ασύρματη δημιουργώ και το wpa_supplicant.conf για τα WIFI Credentials (το οποίο το λένε παντού σε forum ότι πρέπει να το κάνεις), αλλά τίποτα.

Έχει κανείς άλλος παρόμοιο θέμα που να μπορεί να μου πει κανένα πιθανό λάθος που κάνω;


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: laserscout on May 26, 2019, 15:38:46 pm
Raspberry Pi Question

Αν η ερώτηση πρέπει να πάει σε άλλο thread ας μετακινηθεί :P

Έχω περάσει την εικόνα του raspbian που πρότεινε ο Πιτσιάνης στην SD card, και το rasp κάνει boot κανονικά. Δεν μπορώ όμως να συνδεθώ με ssh. Για την ενσύρματη σύνδεση έχω ρυθμίσει και static IP, για την ασύρματη δημιουργώ και το wpa_supplicant.conf για τα WIFI Credentials (το οποίο το λένε παντού σε forum ότι πρέπει να το κάνεις), αλλά τίποτα.

Έχει κανείς άλλος παρόμοιο θέμα που να μπορεί να μου πει κανένα πιθανό λάθος που κάνω;

Δεν "πρέπει" να αλλάξεις το wpa_supplicant. Είναι ήδη ρυθμισμένο να δημιουργεί ad-hoc δίκτυο.
Ή κάτι δεν κάνεις καλά με την στατική IP του ενσύρματου, ή μπορεί να τυχαίνει να έχεις ίδιο subnet στο Wifi σου ταυτόχρονα.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: cmoustakas on May 31, 2019, 02:20:57 am
Εχει κανείς ιδέα τι παει λάθος με το /etc/network/interfaces μου ; ενώ ανιχνεύει κανονικά το piZero-ESPX  δεν μπορεί να συνδεθεί

interfaces :

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

# my rpi zero configurations
iface eth0 inet dhcp
auto wlan0

iface wlan0 inet static
  address 10.0.0.2
  netmask 255.255.255.0
  gateway 10.0.0.1/8
 
 


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: laserscout on June 02, 2019, 19:02:05 pm
Εχει κανείς ιδέα τι παει λάθος με το /etc/network/interfaces μου ; ενώ ανιχνεύει κανονικά το piZero-ESPX  δεν μπορεί να συνδεθεί

interfaces :

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

# my rpi zero configurations
iface eth0 inet dhcp
auto wlan0

iface wlan0 inet static
  address 10.0.0.2
  netmask 255.255.255.0
  gateway 10.0.0.1/8
 
 

Αν εννοείς πως μπορείς να συνδεθείς στο Wifi, αλλά δεν μπορείς να συνδεθείς με ssh, τότε μάλλον δεν έχεις βάλει στατική IP στον υπολογιστή σου.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mano_lee on June 08, 2019, 22:21:18 pm
Αν εννοείς πως μπορείς να συνδεθείς στο Wifi, αλλά δεν μπορείς να συνδεθείς με ssh, τότε μάλλον δεν έχεις βάλει στατική IP στον υπολογιστή σου.

Έχω το ίδιο πρόβλημα. Εμφανίζεται το piZero-ESPX στα wifi, αλλά αν το πατήσω δε συνδέεται. Γενικά πρέπει να συνδεθώ σε αυτό, ή απευθείας συνδέομαι μέσω ssh; Επίσης ο τρόπος με τον οποίο ρυθμίζει μια static IP ο cmoustakas είναι λάθος;


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Apostolof on June 10, 2019, 20:00:51 pm
Έχω το ίδιο πρόβλημα. Εμφανίζεται το piZero-ESPX στα wifi, αλλά αν το πατήσω δε συνδέεται. Γενικά πρέπει να συνδεθώ σε αυτό, ή απευθείας συνδέομαι μέσω ssh; Επίσης ο τρόπος με τον οποίο ρυθμίζει μια static IP ο cmoustakas είναι λάθος;

Ναι, πρώτα πρέπει να συνδεθείς στο wifi. Για το interfaces που πόσταρε ο cmoustakas δεν είμαι σίγουρος, ίσως στο gateway να πρέπει να φύγει το /8. Επίσης το interface που θες να χρησιμοποιήσεις το βρίσκεις με την εντολή:
Code:
ip addr show
Για παράδειγμα εμένα είναι το enp3s0 και όχι το wlan0.

Εγώ δε μπόρεσα να συνδεθώ μέσω wifi με το built-in που έχει το laptop, είχα όμως usb wifi toggle με το οποίο συνδέθηκε πολύ εύκολα. Μέσω καλωδίου είναι επίσης πολύ εύκολη η σύνδεση.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mano_lee on June 10, 2019, 21:29:27 pm
Ναι, πρώτα πρέπει να συνδεθείς στο wifi. Για το interfaces που πόσταρε ο cmoustakas δεν είμαι σίγουρος, ίσως στο gateway να πρέπει να φύγει το /8. Επίσης το interface που θες να χρησιμοποιήσεις το βρίσκεις με την εντολή:
Code:
ip addr show
Για παράδειγμα εμένα είναι το enp3s0 και όχι το wlan0.

Εγώ δε μπόρεσα να συνδεθώ μέσω wifi με το built-in που έχει το laptop, είχα όμως usb wifi toggle με το οποίο συνδέθηκε πολύ εύκολα. Μέσω καλωδίου είναι επίσης πολύ εύκολη η σύνδεση.

Απλά ακόμα και αν καταφέρω να συνδεθώ στο wifi που εκπέμπει το rasp, μετά δε θα είμαι συνδεδεμένος στο wifi πχ του σπιτιού μου. Άρα δε θα χω πρόσβαση στο ίντερνετ. Ισχύει αυτό η το χω λάθος στο μυαλό μου;

Επίσης, για την εργασία θέλει αποκλειστικά σύνδεση με wifi απ ότι κατάλαβα, όχι;


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Apostolof on June 10, 2019, 22:53:58 pm
Απλά ακόμα και αν καταφέρω να συνδεθώ στο wifi που εκπέμπει το rasp, μετά δε θα είμαι συνδεδεμένος στο wifi πχ του σπιτιού μου. Άρα δε θα χω πρόσβαση στο ίντερνετ. Ισχύει αυτό η το χω λάθος στο μυαλό μου;

Επίσης, για την εργασία θέλει αποκλειστικά σύνδεση με wifi απ ότι κατάλαβα, όχι;

Ισχύει.
Από ό,τι καταλαβαίνω, το κομμάτι της επικοινωνίας μεταξύ των raspberry θα γίνεται μέσω του wifi αποκλειστικά. Το πως θα μεταφέρεις τον κώδικά σου, όμως, στο raspberry δεν το περιορίζει.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: feugatos_# on June 10, 2019, 22:59:11 pm
Έχει καταλάβει κανείς από την εκφώνηση πως θα διαμοιράζονται οι πληροφορίες μεταξύ των συσκευών;


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: achariso on June 11, 2019, 00:00:56 am
Δυσκολεύομαι να πιστέψω πως με τόσο αναλυτική εκφώνηση υπάρχουν και απορίες...

btw, πέρυσι είχαν δοθεί κάτι κώδικες για client & server σε C που έπρπεπε να συμπληρωθούν / επεκταθούν για την λειτουργία της εφαρμογής. Φέτος, αυτοί οι κώδικες εθεωρήθηκαν περιττοί


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mano_lee on June 11, 2019, 00:52:42 am
Ισχύει.
Από ό,τι καταλαβαίνω, το κομμάτι της επικοινωνίας μεταξύ των raspberry θα γίνεται μέσω του wifi αποκλειστικά. Το πως θα μεταφέρεις τον κώδικά σου, όμως, στο raspberry δεν το περιορίζει.

OK cool. Και κάτι τελευταίο. Μέσω usb κατάφερα να συνδεθώ με ssh στο raspberry, αλλά όταν συνδέθηκε, δεν αναγνώριζε σχεδόν καμία εντολή, ούτε καν τις εντολές apt <...>. Και ούτε να εγκαταστήσω πακέτα μπορούσα, καθώς η σύνδεση μέσω ethernet με το raspberry, υπερκάλυπτε τη σύνδεση που είχα στο wifi του σπιτιού μου και άρα δεν είχα πρόσβαση στο internet.

Αυτό είναι λογικό, ή κάτι έκανα λάθος ???

Sorry για τις τόσες απορίες, ελπίζω κι άλλοι να τις έχουν για να βοηθιούνται   ;D


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Apostolof on June 11, 2019, 08:48:51 am
OK cool. Και κάτι τελευταίο. Μέσω usb κατάφερα να συνδεθώ με ssh στο raspberry, αλλά όταν συνδέθηκε, δεν αναγνώριζε σχεδόν καμία εντολή, ούτε καν τις εντολές apt <...>. Και ούτε να εγκαταστήσω πακέτα μπορούσα, καθώς η σύνδεση μέσω ethernet με το raspberry, υπερκάλυπτε τη σύνδεση που είχα στο wifi του σπιτιού μου και άρα δεν είχα πρόσβαση στο internet.

Αυτό είναι λογικό, ή κάτι έκανα λάθος ???

Sorry για τις τόσες απορίες, ελπίζω κι άλλοι να τις έχουν για να βοηθιούνται   ;D

Δεν έκανες κάτι λάθος, απλά δεν υπάρχουν στο σύστημα οι εντολές. Το img που δίνουν είναι stripped down για να προσομοιώνει καλύτερα ενσωματωμένο, οπότε δεν έχει apt, nano κλπ. Επίσης δε πρέπει να βασιστείς σε εξωτερικά εργαλεία που πιθανόν θα εγκαθιστούσες με το apt (τουλάχιστον για το τελικό παραδοτέο), μόνο ό,τι κάνεις στον κώδικά σου εσύ.

(tip) Για να αλλάξεις την ip μπορείς να χρησιμοποιήσεις αυτό:
Code:
sed -i 's/10.0.0.1/10.0.xx.yy/g' /etc/network/interfaces


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: sgiannoul on June 16, 2019, 14:07:13 pm
Ποιό Port πρέπει να χρησιμοποιήσουμε για την αποστολή/λήψη μηνυμάτων?


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mano_lee on June 20, 2019, 20:36:06 pm
Ο cross-compiler που αναφέρει ο Πιτσιάνεις Πιτσιάνης στις οδηγίες, πως ξέρουμε αν μας χρειάζεται;

Και αν χρειάζεται, που πρέπει να αντιγράψουμε τα παράγωγα του compilation; Σε κάποιο συγκεκριμένο path στην sd-card;

EDIT: Μάλλον δεν γράφεται με "ει"  :P


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: feugatos_# on June 20, 2019, 20:37:08 pm
Ποιό Port πρέπει να χρησιμοποιήσουμε για την αποστολή/λήψη μηνυμάτων?
Από διευκρίνηση στο elearning:

Για την επικοινωνία των συσκευών μέσω WiFi χρησιμοποιήστε το port 2288.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: feugatos_# on June 20, 2019, 20:41:34 pm
Ο cross-compiler που αναφέρει ο Πιτσιάνεις στις οδηγίες, πως ξέρουμε αν μας χρειάζεται;

Και αν χρειάζεται, που πρέπει να αντιγράψουμε τα παράγωγα του compilation; Σε κάποιο συγκεκριμένο path στην sd-card;
Γενικά η ιδέα είναι ότι κάνεις την ανάπτυξη του κώδικα στον υπολογιστή σου. Μετά χρησιμοποιείς cross-compiler για να δημιουργήσεις το εκτελέσιμο ανάλογα με το λειτουργικό/αρχιτεκτονική του ενσωματωμένου σου. Δηλαδή στο ενσωματωμένο το μόνο που χρειάζεται να στείλεις είναι το εκτελέσιμο αυτό.

Bonus:
εγώ Πιτσιάνω
εσύ Πιτσιάνεις;
 :D


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: cmoustakas on June 21, 2019, 22:31:26 pm
Στην ουσία αυτό που ζητάει είναι να γίνει το compile στο pc σου ,  μέσω της scp να στείλεις στο rasp το executable και τέλος μέσω του ssh να κάνεις ενα ./executable (έχει και ενα resource αν θες να εκτελείτε το αρχείο στο boot) .Το ερώτημα νομίζω είναι πώς θα τεστάρουμε την επικοινωνία όσοι έχουμε μόνο ένα rasp, προσωπικά μόνο στο pc μου επαληθεύω τον κώδικα λειτουργώντας ταυτόχρονα σαν server και client.Έχει κανείς να προτείνει τίποτα διαφορετικό ??


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: feugatos_# on June 22, 2019, 14:52:08 pm
Στην ουσία αυτό που ζητάει είναι να γίνει το compile στο pc σου ,  μέσω της scp να στείλεις στο rasp το executable και τέλος μέσω του ssh να κάνεις ενα ./executable (έχει και ενα resource αν θες να εκτελείτε το αρχείο στο boot) .Το ερώτημα νομίζω είναι πώς θα τεστάρουμε την επικοινωνία όσοι έχουμε μόνο ένα rasp, προσωπικά μόνο στο pc μου επαληθεύω τον κώδικα λειτουργώντας ταυτόχρονα σαν server και client.Έχει κανείς να προτείνει τίποτα διαφορετικό ??
Νομίζω για testing μπορείς να τρέξεις πολλά instances της εφαρμογής σου ρυθμίζοντας τα να έχουν διαφορετικό ΑΕΜ. Μιας που ανέφερες τις λέξεις client/server.. Χωρίς να είμαι καθόλου σίγουρος, από την εκφώνηση φαίνεται να θέλουν μια πιο peer-to-peer αρχιτεκτονική. Ας πει και κάποιος άλλος τη γνώμη του, μπας και βγει καμιά άκρη...


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Apostolof on June 22, 2019, 16:19:12 pm
Νομίζω για testing μπορείς να τρέξεις πολλά instances της εφαρμογής σου ρυθμίζοντας τα να έχουν διαφορετικό ΑΕΜ. Μιας που ανέφερες τις λέξεις client/server.. Χωρίς να είμαι καθόλου σίγουρος, από την εκφώνηση φαίνεται να θέλουν μια πιο peer-to-peer αρχιτεκτονική. Ας πει και κάποιος άλλος τη γνώμη του, μπας και βγει καμιά άκρη...

Ναι έτσι νομίζω και εγώ. Σε tuts βέβαια βρίσκεις κώδικα όπου είναι χώρια ο server και ο client, εδώ κάθε node θα πρέπει μάλλον να υλοποιεί και τα δύο.

Για testing είχα σκοπό να κάνω ένα τόπικ/ποστ "Ενσωματωμένη pizza", αν θέλουν αρκετά άτομα να βρεθούμε στη σχολή για pizza, μπύρα.... και ενσωματωμένα :P


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: feugatos_# on June 22, 2019, 16:25:10 pm
Ναι έτσι νομίζω και εγώ. Σε tuts βέβαια βρίσκεις κώδικα όπου είναι χώρια ο server και ο client, εδώ κάθε node θα πρέπει μάλλον να υλοποιεί και τα δύο.

Για testing είχα σκοπό να κάνω ένα τόπικ/ποστ "Ενσωματωμένη pizza", αν θέλουν αρκετά άτομα να βρεθούμε στη σχολή για pizza, μπύρα.... και ενσωματωμένα :P
κε Μητράκο εσείς είστε;


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Apostolof on June 22, 2019, 16:53:46 pm
κε Μητράκο εσείς είστε;

busted



Έχετε βρει κάποιον efficient τρόπο να ανακαλύπτετε τις IP των γειτόνων;


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Μπουγάτσας on June 24, 2019, 20:15:33 pm
Δεδομένου οτι τα μηνύματα που αποστέλονται μεταξύ των συσκευών θα πρέπει να ακολουθούν μια κοινή μορφοποίηση απο όλους μας, το απλό μήνυμα του τύπου 7592_6998_1387909800_Test message (που περιγράφει ο Πιτσιάνης στην εκφώνηση) θα αποστέλλεται σαν char[ ] ?  Επίσης γνωρίζει κάποιος πως μπορούμε να στείλουμε τη λίστα που περιέχει όλα τα μηνύματα απο μια συσκευή σε μια άλλη ? Γιατι τα arrays δεν αποστέλλονται όπως απλές μεταβλητές τύπου string ή integer


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Apostolof on June 24, 2019, 23:14:45 pm
Δεδομένου οτι τα μηνύματα που αποστέλονται μεταξύ των συσκευών θα πρέπει να ακολουθούν μια κοινή μορφοποίηση απο όλους μας, το απλό μήνυμα του τύπου 7592_6998_1387909800_Test message (που περιγράφει ο Πιτσιάνης στην εκφώνηση) θα αποστέλλεται σαν char[ ] ?  Επίσης γνωρίζει κάποιος πως μπορούμε να στείλουμε τη λίστα που περιέχει όλα τα μηνύματα απο μια συσκευή σε μια άλλη ? Γιατι τα arrays δεν αποστέλλονται όπως απλές μεταβλητές τύπου string ή integer

Εγώ έκανα δύο συναρτήσεις στον buffer, μία serialize που παίρνει όλο τον buffer και τον κάνει ένα μεγάλο string με συγκεκριμένο format και μία deserialize που παίρνει ένα string (ελπίζοντας ότι θα έχει το σωστό format) και το μεταφράζει σε στοιχεία του buffer. Έτσι ο ένας στέλνει το string της serialize και ο άλλος που το παίρνει κάνει deserialize.

Για να ανακαλύψω τις συσκευές στο δίκτυο και να βρω τις IP, αυτή τη στιγμή, κάνω ένα broadcast ping και μετά χρησιμοποιώ το arp cache. Έπειτα για να δω αν κάθε μία από τις συσκευές που ανακάλυψα είναι online κάνω ξεχωριστά ping τη κάθε μία. Αυτό όμως παίρνει αρκετό χρόνο. Έχετε βρει κάποιο καλύτερο τρόπο; Εσείς τι κάνετε;

Επίσης, παρατήρησα ότι τα timestamps του κάθε node (έχω 2 Rpi και τεστάρω) είναι διαφορετικά ακόμα και για πολύ κοντινές χρονικά καταγραφές, κάνετε κάποιο clock synchronization για να το διορθώσετε; Αν το έχει ψάξει κανείς ας στείλει links/υλικό.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Μπουγάτσας on June 25, 2019, 12:13:51 pm
Εγώ έκανα δύο συναρτήσεις στον buffer, μία serialize που παίρνει όλο τον buffer και τον κάνει ένα μεγάλο string με συγκεκριμένο format και μία deserialize που παίρνει ένα string (ελπίζοντας ότι θα έχει το σωστό format) και το μεταφράζει σε στοιχεία του buffer. Έτσι ο ένας στέλνει το string της serialize και ο άλλος που το παίρνει κάνει deserialize.
Απλά έτσι δε θα πρέπει να ακολουθούμε ολοι κοινή πορεία; Αλλιώς δε θα μπορεί να υπάρξει επικοινωνία αν εγω ακολουθώ άλλο format και αυτοί με τους οποίους επικοινωνώ άλλο.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Apostolof on June 25, 2019, 13:09:16 pm
Απλά έτσι δε θα πρέπει να ακολουθούμε ολοι κοινή πορεία; Αλλιώς δε θα μπορεί να υπάρξει επικοινωνία αν εγω ακολουθώ άλλο format και αυτοί με τους οποίους επικοινωνώ άλλο.

Σωστός, δε το είχα σκεφτεί έτσι. Great.. more work for me ;D
Σκεφτόμουν ότι η δοκιμή θα γίνει έχοντας κάθε φορά στα nodes το ίδιο πρόγραμμα.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: feugatos_# on June 25, 2019, 13:35:51 pm
Σωστός, δε το είχα σκεφτεί έτσι. Great.. more work for me ;D
Σκεφτόμουν ότι η δοκιμή θα γίνει έχοντας κάθε φορά στα nodes το ίδιο πρόγραμμα.
Αυτό είναι όντως ένα πρόβλημα που το σκεφτόμουν κι εγώ. Αν ο καθένας μας κάνει τα δικά του (και υπάρχουν διάφορα σημεία στην εργασία που θα μπορούσε να το κάνει), άντε να βγει άκρη με τις φαεινές τους ιδέες να το τρέξουμε μεταξύ μας. Να πω ότι έχουν δώσει μια αναλυτική/ξεκάθαρη εκφώνηση που δεν θα άφηνε να δημιουργηθούν τέτοια προβλήματα οκ... Αλλά υπάρχουν πολλά τέτοια σημεία... Ίσως θα έπρεπε να τους ζητήσουμε μια πιο ξεκάθαρη αναλυτική εκφώνηση ή έστω κάποιος συνάδελφος που έχει μιλήσει με τους διδάσκοντες για την εργασία να μας πει αναλυτικά τι ειπώθηκε. Σε διαφορετική περίπτωση ο καθένας δυστυχώς θα ακολουθήσει διαφορετική προσέγγιση και όταν πάμε να τα τρέξουμε μεταξύ μας θα δημιουργηθούν θέματα...


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Μπουγάτσας on June 25, 2019, 13:40:16 pm
Έστειλα mail στον Φλώρο για το format που θα πρέπει να ακολουθούμε για να αποστείλουμε το array με τα μηνύματα γιατί αλλιώς δε θα βγεί άκρη, θα ποστάρω feedback όταν μου απαντήσει


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: gdims on June 25, 2019, 16:30:53 pm

Για να ανακαλύψω τις συσκευές στο δίκτυο και να βρω τις IP, αυτή τη στιγμή, κάνω ένα broadcast ping και μετά χρησιμοποιώ το arp cache. Έπειτα για να δω αν κάθε μία από τις συσκευές που ανακάλυψα είναι online κάνω ξεχωριστά ping τη κάθε μία. Αυτό όμως παίρνει αρκετό χρόνο. Έχετε βρει κάποιο καλύτερο τρόπο; Εσείς τι κάνετε;


Δεν απαντάνε όλες οι συσκευές σε broadcast pings. Έστειλα mail στον Φλώρο και είπε ότι είναι πολύ απλούστερο:

Θα δοθεί λίστα με ΑΕΜ που θα σκαννάρουμε.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Apostolof on June 25, 2019, 17:56:03 pm
Δεν απαντάνε όλες οι συσκευές σε broadcast pings. Έστειλα mail στον Φλώρο και είπε ότι είναι πολύ απλούστερο:

Θα δοθεί λίστα με ΑΕΜ που θα σκαννάρουμε.

Πωω πρέπει όντως να δώσουν μία καλύτερη εκφώνηση, έχασα αρκετό χρόνο σε αυτό το πράγμα.
Πάντως νομίζω όλες οι συσκευές απαντάνε, απλά πρέπει να το ενεργοποιήσεις εσύ (γίνεται μέσα στον κώδικα).


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: gdims on June 26, 2019, 11:33:59 am
Πωω πρέπει όντως να δώσουν μία καλύτερη εκφώνηση, έχασα αρκετό χρόνο σε αυτό το πράγμα.
Πάντως νομίζω όλες οι συσκευές απαντάνε, απλά πρέπει να το ενεργοποιήσεις εσύ (γίνεται μέσα στον κώδικα).

Άσε, και γω τα ίδια...
Αυτό που λες δεν το ξέρω, αλλά με δεδομένο ότι δεν έχω έλεγχο στα άλλα raspberry μπορεί κάποιος να μην το ενεργοποιήσει, σωστά;


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Apostolof on June 26, 2019, 12:30:08 pm
Άσε, και γω τα ίδια...
Αυτό που λες δεν το ξέρω, αλλά με δεδομένο ότι δεν έχω έλεγχο στα άλλα raspberry μπορεί κάποιος να μην το ενεργοποιήσει, σωστά;

Ναι, ισχύει αυτό.

Έστειλα mail στον Φλώρο για το format που θα πρέπει να ακολουθούμε για να αποστείλουμε το array με τα μηνύματα γιατί αλλιώς δε θα βγεί άκρη, θα ποστάρω feedback όταν μου απαντήσει

Μήπως πήρες απάντηση;


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mano_lee on June 26, 2019, 14:30:21 pm
Γενικά στέλνουμε ολόκληρη τη λίστα με τα μηνύματα σε όλους (ακόμα δηλαδή και τα μηνύματα που έχουν παραλήπτη διαφορετικό από αυτόν στον οποίο στέλνουμε τη λίστα), ή στέλνετε στον κάθε παραλήπτη τα μηνύματα που έχουν ως παραλήπτη τον ίδιο;


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Μπουγάτσας on June 26, 2019, 16:44:46 pm


Μήπως πήρες απάντηση;
Οχι ακόμα ... Γενικά η κατάσταση είναι απελπιστική, κάνουμε εργασία μέσα στην εξεταστική, κάποιοι δίνουμε ακόμα μαθήματα, η προθεσμία τυπικά λήγει σε 2 μέρες και δεν έχουμε βασικές πληροφορίες για την εκπόνηση της εργασίας


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Μπουγάτσας on June 26, 2019, 18:38:16 pm
Έστειλα mail στον Φλώρο για το format που θα πρέπει να ακολουθούμε για να αποστείλουμε το array με τα μηνύματα γιατί αλλιώς δε θα βγεί άκρη, θα ποστάρω feedback όταν μου απαντήσει
Απάντηση Φλώρου
Θα στείλετε πολλαπλά μηνύματα με το format που καθορίσαμε στην εκφώνηση.
Δεν θα στείλετε όλη την λίστα με τα μηνύματα με ένα send, αλλά με πολλαπλά (ένα για κάθε μήνυμα).
Στο τέλος της λίστας θα κλείσετε το socket.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mano_lee on June 26, 2019, 18:45:07 pm
Απάντηση Φλώρου 2  :P

"Η εργασία θα έχει προθεσμία κάποια στιγμή εντός της επόμενης εβδομάδα. Θα ανοίξει το σύστημα στο e-learning."


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mano_lee on June 27, 2019, 19:08:57 pm
Γενικά με ποιον απ τους 2 παρακάτω τρόπους το υλοποιήσατε;

1) Ο client κάνει request σε έναν έναν άλλον server για σύνδεση, ώστε να του ζητήσει και άρα να λάβει μηνύματα και να τα προσθέσει στη λίστα. Ο server στέλνει τα μηνύματα της λίστας που δεν έχει ξαναστείλει σε όποιον client του κάνει request.

2) Ο client συνδέεται με server και του στέλνει την λίστα. Ο server δέχεται τις συνδέσεις άλλων clients και λαμβάνει μηνύματα για να τα προσθέσει στη λίστα.

Αν ακολουθήσατε τρίτο τρόπο πείτε τον και αυτόν. Γενικά ρωτάω καθώς όπως είπαμε πρέπει να ακολουθήσουμε παρόμοια λογική για να μπορέσουμε να τα τρέξουμε μεταξύ μας.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Apostolof on June 27, 2019, 20:00:31 pm
Γενικά στέλνουμε ολόκληρη τη λίστα με τα μηνύματα σε όλους (ακόμα δηλαδή και τα μηνύματα που έχουν παραλήπτη διαφορετικό από αυτόν στον οποίο στέλνουμε τη λίστα), ή στέλνετε στον κάθε παραλήπτη τα μηνύματα που έχουν ως παραλήπτη τον ίδιο;

Είχα ρωτήσει σε mail:
Quote
- Κάθε node πρέπει να έχει τα τελευταία 2000 μηνύματα όλου του συστήματος ή τα 2000 τελευταία στα οποία εμπλέκεται (είναι παραλήπτης/αποστολέας);

- Τα πιο πρόσφατα που «συνάντησε» στις συναναστροφές του με τα υπόλοιπα συστηματα. Είναι ευκαιριακό το σύστημα.

Άρα πρέπει να τα στέλνεις όλα σε όλους.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Μπουγάτσας on July 03, 2019, 15:32:59 pm
Μπορεί να δώσει hint κάποιος πως θα συνδέσουμε τα pi's μεταξύ τους μέσω WiFi ; Καθώς μπορούμε να κάνουμε σύνδεση απο laptop σε pi το οποίο όμως επιτυγχάνεται λογικά εξαιτίας της σύνδεσης μέσω ssh.  Όταν όμως ενας client που τρέχει σε κάποιο λάπτοπ πάει να συνδεθεί με εναν server που τρέχει σε κάποιο pi και δεν υπάρχει καλωδιακή σύνδεση μεταξύ, τους δεν πραγματοποιείται η σύνδεση.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Μπουγάτσας on July 05, 2019, 17:05:52 pm
Μπορεί να δώσει hint κάποιος πως θα συνδέσουμε τα pi's μεταξύ τους μέσω WiFi?
Απαντηση Φλωρου
Eφόσον οι συσκευές έχουνε το ίδιο SSID και κωδικό, χωρίς να χρειαστεί να κάνουν κάτι, συνδέονται μεταξύ τους.
Δεν υπήρχα κάποια ένδειξη ότι συνδέθηκαν, απλά όταν προσπαθήσετε να επικοινωνήσετε με την διεύθυνση της άλλης συσκευής θα μεταφερθεί το μήνυμα μόλις η δεύτερη συσκευή έρθει εκτός εμβέλειας.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Apostolof on July 06, 2019, 18:44:50 pm
Η εκφώνηση τροποποιήθηκε πριν δύο μέρες.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: feugatos_# on July 12, 2019, 16:44:14 pm
Απαντηση Φλωρου
Eφόσον οι συσκευές έχουνε το ίδιο SSID και κωδικό, χωρίς να χρειαστεί να κάνουν κάτι, συνδέονται μεταξύ τους.
Δεν υπήρχα κάποια ένδειξη ότι συνδέθηκαν, απλά όταν προσπαθήσετε να επικοινωνήσετε με την διεύθυνση της άλλης συσκευής θα μεταφερθεί το μήνυμα μόλις η δεύτερη συσκευή έρθει εκτός εμβέλειας.
Παιδιά επειδή δεν το έπιασα και πολύ, μπορεί κάποιος που το κατάφερε να εξηγήσει πως υποτίθεται ότι πρέπει να γίνει η επικοινωνία μεταξύ των συσκευών;


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Mandalorian on July 12, 2019, 17:40:42 pm
Εγώ ακόμα δεν έχω καταφέρει να συνδεθώ με το raspberry ούτε με τον ένα ούτε με τον άλλο τρόπο. Από ότι έχω δει σε forum, όλοι λένε ότι για να σετάρω την static IP, δεν πειράζω το interfaces αλλά το dhcpcd.conf αρχείο. Κάποιο tip;


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mano_lee on July 15, 2019, 13:36:09 pm
Εγώ ακόμα δεν έχω καταφέρει να συνδεθώ με το raspberry ούτε με τον ένα ούτε με τον άλλο τρόπο. Από ότι έχω δει σε forum, όλοι λένε ότι για να σετάρω την static IP, δεν πειράζω το interfaces αλλά το dhcpcd.conf αρχείο. Κάποιο tip;


Σύνδεση μέσω καλωδίου

1)
Το αρχείο /etc/network/interfaces (του PC σου), θα πρέπει να μοιάζει κάπως έτσι:

Code:
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

iface usb_port_network inet static
  address 192.168.0.5
  netmask 255.255.255.0
  gateway 192.168.0.1

Όπου address θα βάλεις την IP που θες να έχει το PC σου και όπου gateway είναι η IP του pi σου (την IP του pi θα την αλλάξεις μέσα απ το /etc/network/interfaces του pi αργότερα, οποτε θα την αλλαξεις και απο εδώ μετά ώστε να είναι η ίδια, γιατί η 192.168.0.1 είναι αυτή που έχει by default).

Όπου usb_port_network θα βάλεις την καινούρια σύνδεση που φαίνεται απο την εντολη iwconfig όταν συνδέεις το καλώδιο σε ένα usb port.

2) Τσεκάρεις τα δίκτυα στα οποία είναι συνδεδεμένα το pc σου. Αν είναι δείχνει να είναι συνδεδεμένο σε ένα "Wired Connection 1" κάνεις disconnect.

3) Κάνεις sudo /etc/init.d/networking restart

Τότε πρέπει να δείξει ότι συνδέθηκε στο usb_port_network που έβαλες στο /etc/network/interfaces του PC σου.

4) Κάνεις ssh root@192.168.0.1

Γενικά, δεν είναι δύσκολο, απλα τρώει κάτι κολλήματα συνέχεια και πρέπει να τα λύνεις με restart του network manager. Οποτε αν ολα αυτα δεν πετυχαινουν κανε και ένα sudo service network-manager restart και μετά κάνε και τα άλλα.

Επίσης, αν συνδέσεις το usb Και σου βγάζει στα δίκτυα "Device not managed" κατά πάσα πιθανότητα δε θα δουλέψει. Οποτε απλά βάλτο σε άλλο port και λογικά εκεί δε θα το βγάζει.

Σύνδεση μέσω wifi

1) Κανεις add new connection τύπου Wifi (απ το edit connections). Βάζεις σαν mode το Ad-hoc. Πας στην καρτέλα για IPv4 και βάζεις με τη σειρά "10.0.0.5", "255.255.255.0", "10.0.0.1". Πάλι εδώ, το πρώτο θα είναι η IP που θα επιλέξεις για το PC σου, και το τελευταίο το default του pi σου (το οποίο θα το αλλάξεις αργότερα στη μορφή που θέλει ο πιτσιανης, με το ΑΕΜ).

2) Συνδέεσαι στο δίκτυο που δημιούργησες.

3) Αφού συνδεθεί, κάνεις ssh root@10.0.0.1


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: _init on July 15, 2019, 18:28:33 pm
Παιδιά επειδή δεν το έπιασα και πολύ, μπορεί κάποιος που το κατάφερε να εξηγήσει πως υποτίθεται ότι πρέπει να γίνει η επικοινωνία μεταξύ των συσκευών;

Η κάθε συσκευή δημιουργεί ένα adhoc δίκτυο. Τα δίκτυα αυτά θα έχουν όλα το ίδιο όνομα και τον ίδιο κωδικό (τα προεπιλεγμένα), οπότε θα είναι σα να συνδέονται όλες οι συσκεύες στο ίδιο δίκτο.
Με λίγα λόγια, δε χρειάζετα να κάνεις κάτι, απλά να φέρεις τις συσκεύες σε απόσταση τέτοια ώστε τα δυο δίκτυα να είναι στην ίδια εμβέλεια και θα συνδεθούν αυτόματα.

Μετά, απλά θα πρέπει να τα βάλεις να επικοινωνούν στην ίδια port στο server αρχείο σου (port 2288).


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: feugatos_# on July 15, 2019, 18:35:46 pm
Η κάθε συσκευή δημιουργεί ένα adhoc δίκτυο. Τα δίκτυα αυτά θα έχουν όλα το ίδιο όνομα και τον ίδιο κωδικό (τα προεπιλεγμένα), οπότε θα είναι σα να συνδέονται όλες οι συσκεύες στο ίδιο δίκτο.
Με λίγα λόγια, δε χρειάζετα να κάνεις κάτι, απλά να φέρεις τις συσκεύες σε απόσταση τέτοια ώστε τα δυο δίκτυα να είναι στην ίδια εμβέλεια και θα συνδεθούν αυτόματα.

Μετά, απλά θα πρέπει να τα βάλεις να επικοινωνούν στην ίδια port στο server αρχείο σου (port 2288).
Ευχαριστώ πολύ για την απάντηση. Έχω προσπαθήσει αυτό που περιγράφεις απλά μάλλον αντιμετωπίζω δυσκολίες γιατί χρησιμοποιώ zsun


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: feugatos_# on July 15, 2019, 18:37:31 pm
Υπάρχει κάποιος συνάδελφος που κατάφερε να στήσει adhoc δίκτυο με zsun και να συνδεθεί μέσω του υπολογιστή ώστε να το συζητήσουμε;


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: _init on July 16, 2019, 16:19:58 pm
Απάντηση Φλώρου
Θα στείλετε πολλαπλά μηνύματα με το format που καθορίσαμε στην εκφώνηση.
Δεν θα στείλετε όλη την λίστα με τα μηνύματα με ένα send, αλλά με πολλαπλά (ένα για κάθε μήνυμα).
Στο τέλος της λίστας θα κλείσετε το socket.


Δηλαδή, όσο είναι εντός εμβέλειας δε θα μείνει ανοιχτό το socket σε περίπτωση που σταλθούν νέα μηνύματα?


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Florence on July 22, 2019, 14:49:31 pm
Μετα την εγγραφη της εικονας στην καρτα SD, αναφερεται στο manual ότι επιστρεφεται ο αριθμος των block στη μορφη:

xxx+0 records in
yyy+0 records out
yyyyyyyyyy bytes (yyy kB, yyy KiB) copied, 0.00144744 s, 283 MB/s

Εγω μετα την εγγραφη παιρνω
414+1 records in
414+1 records out

Παρολα αυτα οταν ελεγχω αν η εικονα εγγραφηκε σωστα παιρνω ότι οι 2 εικονες ειναι ταυτοσημες. Θα πρεπε να ανησυχω επειδη κατα την εγγραφη επιστρεφεται +1 και οχι +0 ? Ειχε καποιος αλλος αυτες τις επιστρεφομενες τιμες?


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: geormich on August 14, 2019, 02:44:15 am
Εγώ έκανα δύο συναρτήσεις στον buffer, μία serialize που παίρνει όλο τον buffer και τον κάνει ένα μεγάλο string με συγκεκριμένο format και μία deserialize που παίρνει ένα string (ελπίζοντας ότι θα έχει το σωστό format) και το μεταφράζει σε στοιχεία του buffer. Έτσι ο ένας στέλνει το string της serialize και ο άλλος που το παίρνει κάνει deserialize.

Για να ανακαλύψω τις συσκευές στο δίκτυο και να βρω τις IP, αυτή τη στιγμή, κάνω ένα broadcast ping και μετά χρησιμοποιώ το arp cache. Έπειτα για να δω αν κάθε μία από τις συσκευές που ανακάλυψα είναι online κάνω ξεχωριστά ping τη κάθε μία. Αυτό όμως παίρνει αρκετό χρόνο. Έχετε βρει κάποιο καλύτερο τρόπο; Εσείς τι κάνετε;

Επίσης, παρατήρησα ότι τα timestamps του κάθε node (έχω 2 Rpi και τεστάρω) είναι διαφορετικά ακόμα και για πολύ κοντινές χρονικά καταγραφές, κάνετε κάποιο clock synchronization για να το διορθώσετε; Αν το έχει ψάξει κανείς ας στείλει links/υλικό.


Apostolof καλα ολα αυτα που λες..Αλλα.....Ερωτήσεις:
1.εκανες ενα αρχειο και ειναι ολα τα ενσωματωμενα servers ή υπάρχουν και clients και servers?

Πιο συγκεκριμένα απο αυτο που λεει δεν καταλαβαινεις αν θα ειναι a.polloi clients polloi servers   b.1 server πολλοι clients η c.ολοι servers-clients....Πώς το έκανες εσύ?Σε περίπτωση που είναι όλοι servers-clients όταν βλέπουν κάτι συνδεδεμένο και οι 2 αποστελουν και λαμβανουν μηνυματα αναλογα με το ΑΕΜ και επειτα και οι 2 το αποθηκευουν στη λιστα τους....

2.Αυτο με το serialize deserialize ειναι απαραιτητο??δεν μπορουμε να μετατρεψουμε τους ints σε ενα string και να τα ενσωματωσουμε ολα σε ενα string για να τα στειλουμε ως μηνυματα?

3.Μπορείς να πεις τιποτα παραπανω για το πως ανιχνευεις τις συσκευες? :P (ια να ανακαλύψω τις συσκευές στο δίκτυο και να βρω τις IP, αυτή τη στιγμή, κάνω ένα broadcast ping και μετά χρησιμοποιώ το arp cache. Έπειτα για να δω αν κάθε μία από τις συσκευές που ανακάλυψα είναι online κάνω ξεχωριστά ping τη κάθε μία.) κανα link :P

4.Τα μηνυματα τα εχεις αποθηκευσει σε ουρα???


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: _init on August 14, 2019, 13:20:40 pm

Πιο συγκεκριμένα απο αυτο που λεει δεν καταλαβαινεις αν θα ειναι a.polloi clients polloi servers   b.1 server πολλοι clients η c.ολοι servers-clients....Πώς το έκανες εσύ?Σε περίπτωση που είναι όλοι servers-clients όταν βλέπουν κάτι συνδεδεμένο και οι 2 αποστελουν και λαμβανουν μηνυματα αναλογα με το ΑΕΜ και επειτα και οι 2 το αποθηκευουν στη λιστα τους....


είναι p2p σύστημα οπότε όλα τα nodes είναι και client και server μαζί. Σε ένα tcp socket μπορείς και να στέλνεις και να λαμβάνεις ταυτόχρονα όποτε εφόσον κάνεις establish το connection μεταξύ των δύο nodes δεν σε ενδιαφέρει ποιος είναι ο client και ποιος είναι ο server.
επίσης, δεν πρέπει να στέλνεις και να λαμβάνεις μόνο τα μηνύματα που αφορούν στο ΑΕΜ σου αλλά όλα τα μηνύματα που έχει το node στο buffer του.

2.Αυτο με το serialize deserialize ειναι απαραιτητο??δεν μπορουμε να μετατρεψουμε τους ints σε ενα string και να τα ενσωματωσουμε ολα σε ενα string για να τα στειλουμε ως μηνυματα?

Δεν τίθεται θέμα serialize-deserialize. Στέλνεις κάθε μήνυμα ξεχωριστά (σαν string), όχι όλο το buffer μαζί.

3.Μπορείς να πεις τιποτα παραπανω για το πως ανιχνευεις τις συσκευες? :P (ια να ανακαλύψω τις συσκευές στο δίκτυο και να βρω τις IP, αυτή τη στιγμή, κάνω ένα broadcast ping και μετά χρησιμοποιώ το arp cache. Έπειτα για να δω αν κάθε μία από τις συσκευές που ανακάλυψα είναι online κάνω ξεχωριστά ping τη κάθε μία.) κανα link :P

Θα δίνετε λίστα με τα ΑΕΜ, οπότε θα μπορείς να φτιάξεις την ip του κάθε node στο δίκτυο και μετά θα προσπαθείς να κάνεις connect() σε κάθε node απο τη λίστα που θα έχεις φτιάξει.

4.Τα μηνυματα τα εχεις αποθηκευσει σε ουρα???

Η εκφώνηση λέει ότι τα μηνύματα αποθηκεύονται σε ring buffer. ενδεικτικά (https://embeddedartistry.com/blog/2017/4/6/circular-buffers-in-cc).





Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Apostolof on August 14, 2019, 18:33:34 pm
+1 σε ό,τι είπε ο _init. Είχα κάνει το ποστ πριν δώσει κάποιες επεξηγήσεις και αλλάξει την εκφώνηση οπότε πολλά από όσα έκανα ήταν άχρηστα :(


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: geormich on August 15, 2019, 05:59:11 am
είναι p2p σύστημα οπότε όλα τα nodes είναι και client και server μαζί. Σε ένα tcp socket μπορείς και να στέλνεις και να λαμβάνεις ταυτόχρονα όποτε εφόσον κάνεις establish το connection μεταξύ των δύο nodes δεν σε ενδιαφέρει ποιος είναι ο client και ποιος είναι ο server.
επίσης, δεν πρέπει να στέλνεις και να λαμβάνεις μόνο τα μηνύματα που αφορούν στο ΑΕΜ σου αλλά όλα τα μηνύματα που έχει το node στο buffer του.

Δεν τίθεται θέμα serialize-deserialize. Στέλνεις κάθε μήνυμα ξεχωριστά (σαν string), όχι όλο το buffer μαζί.

Θα δίνετε λίστα με τα ΑΕΜ, οπότε θα μπορείς να φτιάξεις την ip του κάθε node στο δίκτυο και μετά θα προσπαθείς να κάνεις connect() σε κάθε node απο τη λίστα που θα έχεις φτιάξει.

Η εκφώνηση λέει ότι τα μηνύματα αποθηκεύονται σε ring buffer.
ενδεικτικά: https://embedjournal.com/implementing-circular-buffer-embedded-c/ (https://embedjournal.com/implementing-circular-buffer-embedded-c/).


ΟΚ..Απλά έχω κάποιες τελευταίες ερωτήσεις πάνω στις απαντήσεις σου..

ΝΟ1 ερώτηση..Στην πρώτη απάντηση που έδοσες για το P2P εννοείς

α.ότι θα έχω 1 τελικό αρχείο(server-client ας το πούμε) με 2 threads μέσα όπου αυτό περιλαμβάνει ουσιαστικά για κάθε thread 1 connection και 1 socket..Δηλαδή καποιο socket πρεπει να ειναι σε standby  
και καποιο να παροσπαθει να κανει connection..Ή αλλιώς ένα socket για να περιμένει για αίτημα connection για αποστολή ή λήψη μηνύματος(λειτουργία server) και ένα socket για να κάνει αίτημα για αποστολή ή λήψη μηνύματος(λειτουργία client)?

β.2 αρχεία ένα server και ένα client με 1 thread το καθένα μέσα

γ.1 αρχείο με ένα thread μέσα????

Εγώ αν το κάνω με 1 αρχείο ξέρω να το κάνω μόνο με 2 threads..Υπάρχει και άλλος τρόπος??Εσύ ποιον τρόπο εννοείς??

ΝΟ2 ερώτηση.Όταν στέλνεις ένα μήνυμα πχ 500 χαρακτήρες γράφεις ότι πρέπει να το στείλουμε 1-1 τα μηνύματα σωστά?Πώς όμως θα γίνει αυτό?Αφού όταν ανοίγεις ένα socket αυτό κλείνει μόνο του..Πρέπει να το έχω πάντα ανοιχτό?Πώς θα το κάνω??

ΝΟ3 ερώτηση μου έγραψες <<Θα δίνετε λίστα με τα ΑΕΜ, οπότε θα μπορείς να φτιάξεις την ip του κάθε node στο δίκτυο και μετά θα προσπαθείς να κάνεις connect() σε κάθε node απο τη λίστα που θα έχεις φτιάξει.>>
Που θα δίνετε η λίστα?? Την γραφω εγώ εννοείς??  Επίσης εννοείς ότι πρέπει εγώ να ορίσω μια τυχαία IP για κάθε ΑΕΜ??Και επίσης πώς θα την εντοπίζω την IP του γείτονα για να του στείλω μήνυμα??Εγώ αυτό που ξέρω ότι μπορεί να γίνει είναι με μια συνάρτηση πχ findip() που μπορείς να φτιάξεις να βρεις την IP την δικιά σου ενός ενσωματωμένου ας πούμε αλλά όχι να βρεις την IP του γείτονα..του receiver ας πούμε..γι αυτόν φαντάζομαι πρέπει να βάλεις τον χρήστη να πληκτρολογήσει την IP του receiver..Υπάρχει κι άλλος τρόπος??Εννοείς πχ να στέλνω σε όλους τυχαία μηνύματα από όλους και να έχω εκ των προτέρων εγώ ορίσει τα ΑΕΜ και να βάλω πχ μια random που θα επιλέγει τυχαία από την λίστα που έχω ορίσει εγώ με ΑΕΜ ένα ΑΕΜ....??Αυτό πώς γίνεται όμως στην πράξη??Αυτό εννοείς εν τέλει??

ΝΟ4 ερώτηση:  εγώ τα μηνύματα θα τα σβήνω από τον buffer είτε όταν γεμίσει είτε όταν παραδοθεί το μήνυμα στο σωστό παραλήπτη  ?'Η μόνο αν έχει γεμίσει? Το μονο που θα κοιταω δηλαδή ειναι αν το εχω ξαναστειλει σε αυτον που εχω κανει connection? Ή πρέπει να κοιτάω και αν ο παραλήπτης είναι ο τελικός παραλήπτης του μηνύματος που στέλνω??Και τότε να το διαγράφω από τον buffer του παραλήπτη..Βέβαια εδώ υπάρχει το πρόβλημα ότι μπορεί να διαγραφεί μόνο από τον δικό του buffer και όχι από τον buffer των άλλων και οι άλλοι να μην ξέρουν αν διαγράφηκε..Συνεπώς αν ισχύει αυτό οι άλλοι θα συνεχίσουν να στέλνουν το ίδιο μήνυμα σαν να μην στάλθηκε στον τελικό παραλήπτη του..By the way ίσως να υπάρχει κάποιος efficient τρόπος αλλά χρειάζεται ή όχι τελικώς??

ΑΝ μπορείς please πες μου κι αυτές τις ερωτήσεις κι έκλεισα :P




Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: _init on August 15, 2019, 13:18:23 pm
ΟΚ..Απλά έχω κάποιες τελευταίες ερωτήσεις πάνω στις απαντήσεις σου..

ΝΟ1 ερώτηση..Στην πρώτη απάντηση που έδοσες για το P2P εννοείς

α.ότι θα έχω 1 τελικό αρχείο(server-client ας το πούμε) με 2 threads μέσα όπου αυτό περιλαμβάνει ουσιαστικά για κάθε thread 1 connection και 1 socket..Δηλαδή καποιο socket πρεπει να ειναι σε standby  
και καποιο να παροσπαθει να κανει connection..Ή αλλιώς ένα socket για να περιμένει για αίτημα connection για αποστολή ή λήψη μηνύματος(λειτουργία server) και ένα socket για να κάνει αίτημα για αποστολή ή λήψη μηνύματος(λειτουργία client)?

β.2 αρχεία ένα server και ένα client με 1 thread το καθένα μέσα

γ.1 αρχείο με ένα thread μέσα????

Εγώ αν το κάνω με 1 αρχείο ξέρω να το κάνω μόνο με 2 threads..Υπάρχει και άλλος τρόπος??Εσύ ποιον τρόπο εννοείς??

Ένα αρχείο θέλεις, ναι.
Απο εκεί και πέρα έχει πολλούς τρόπου με τους οποίους μπορείς να το υλοποιήσεις.
Ενδεικτικά, μια αρχιτεκτονική είναι:
- Ένα server thread που κάνει listen()
- Ένα client thread που προσπαθεί να κάνει connect() σε άλλα nodes απο τη λίστα
- Ένα thread για κάθε socket που προκύπτει είτε απο τον client είτε απο τον server

Θεωρητικά, θα μπορούσες να κάνεις ένα αρχείο με ένα thread μέσα και να χρησιμοποιήσεις asychronous Ι/Ο multiplexing (linux epoll ή kqueue) για να τα διαχειριστείς όλα αλλά είναι αρκετά πιο σύνθετο και δεν υπάρχει λόγος.

ΝΟ2 ερώτηση.Όταν στέλνεις ένα μήνυμα πχ 500 χαρακτήρες γράφεις ότι πρέπει να το στείλουμε 1-1 τα μηνύματα σωστά?Πώς όμως θα γίνει αυτό?Αφού όταν ανοίγεις ένα socket αυτό κλείνει μόνο του..Πρέπει να το έχω πάντα ανοιχτό?Πώς θα το κάνω??

Ένα socket δεν κλείνει μετά απο επιτυχή αποστολή μηνύματος. Για να κλείσεις το socket πρέπει να χρησιμοποιήσεις close() ή shutdown().
Εκτός αν θέλεις να πείς κάτι άλλο και δεν το καταλαβαίνω εγώ σωστά.

ΝΟ3 ερώτηση μου έγραψες <<Θα δίνετε λίστα με τα ΑΕΜ, οπότε θα μπορείς να φτιάξεις την ip του κάθε node στο δίκτυο και μετά θα προσπαθείς να κάνεις connect() σε κάθε node απο τη λίστα που θα έχεις φτιάξει.>>
Που θα δίνετε η λίστα?? Την γραφω εγώ εννοείς??  Επίσης εννοείς ότι πρέπει εγώ να ορίσω μια τυχαία IP για κάθε ΑΕΜ??Και επίσης πώς θα την εντοπίζω την IP του γείτονα για να του στείλω μήνυμα??Εγώ αυτό που ξέρω ότι μπορεί να γίνει είναι με μια συνάρτηση πχ findip() που μπορείς να φτιάξεις να βρεις την IP την δικιά σου ενός ενσωματωμένου ας πούμε αλλά όχι να βρεις την IP του γείτονα..του receiver ας πούμε..γι αυτόν φαντάζομαι πρέπει να βάλεις τον χρήστη να πληκτρολογήσει την IP του receiver..Υπάρχει κι άλλος τρόπος??Εννοείς πχ να στέλνω σε όλους τυχαία μηνύματα από όλους και να έχω εκ των προτέρων εγώ ορίσει τα ΑΕΜ και να βάλω πχ μια random που θα επιλέγει τυχαία από την λίστα που έχω ορίσει εγώ με ΑΕΜ ένα ΑΕΜ....??Αυτό πώς γίνεται όμως στην πράξη??Αυτό εννοείς εν τέλει??

Υποτίθεται θα μας δώσουν λίστα με τα ΑΕΜ όσων είναι γραμμένοι στο μάθημα.
Η εκφώνηση λέει ότι το κάθε RPi πρέπει να έχει IP στο δίκτυο της μορφής 10.0.ΧΧ.ΥΥ όπου ΧΧΥΥ το ΑΕΜ του κάθε φοιτητή.
Οπότε, αν σου δώσει λίστα με τα ΑΕΜ εσύ έχεις ουσιαστικά και τις IP όλων των πιθανών nodes αφού έχουν την παραπάνω μορφή.
Άρα, στο πρόγραμμα θα φτιάξεις μια τέτοια λίστα με όλες τις IP και θα βάλεις το client thread σου να σκαναρει ένα ένα item τη λίστα και να προσπαθεί να κάνει connect() -κάνοντας skip nodes που πιθανον θα έχουν συνδεθεί απο server thread, οπότε καλό θα ήταν στον πίνακα με τις IP να κράτας και μια bool status στήλη ώστε να μην προσπαθείς να κάνεις connect σε node που είσαι ήδη συνδεδεμένος-

ΝΟ4 ερώτηση:  εγώ τα μηνύματα θα τα σβήνω από τον buffer είτε όταν γεμίσει είτε όταν παραδοθεί το μήνυμα στο σωστό παραλήπτη  ?'Η μόνο αν έχει γεμίσει? Το μονο που θα κοιταω δηλαδή ειναι αν το εχω ξαναστειλει σε αυτον που εχω κανει connection? Ή πρέπει να κοιτάω και αν ο παραλήπτης είναι ο τελικός παραλήπτης του μηνύματος που στέλνω??Και τότε να το διαγράφω από τον buffer του παραλήπτη..Βέβαια εδώ υπάρχει το πρόβλημα ότι μπορεί να διαγραφεί μόνο από τον δικό του buffer και όχι από τον buffer των άλλων και οι άλλοι να μην ξέρουν αν διαγράφηκε..Συνεπώς αν ισχύει αυτό οι άλλοι θα συνεχίσουν να στέλνουν το ίδιο μήνυμα σαν να μην στάλθηκε στον τελικό παραλήπτη του..By the way ίσως να υπάρχει κάποιος efficient τρόπος αλλά χρειάζεται ή όχι τελικώς??

To buffer ουσιαστικά είναι το ιστορικό των τελευταίων 2000 unique μηνυμάτων που έχει λάβει το node σου + τα μηνύματα που κάνεις generate.

Προσθέτεις μήνυμα στο buffer όταν:
- συνδεθείς με ένα αλλο node, κάνεις receive μήνυμα και ελέγξεις ότι δεν είναι ήδη στο buffer
- κάνεις generate random μήνυμα, όπως αναφέρει η εκφώνηση

Απο εκεί και πέρα, κάθε φορά που κάνεις connect με ένα node του στέλνεις όλο το buffer σου (όπως είναι τη δεδομένη στιγμή) ή του στέλνεις απο το σήμειο και κάτω που είχες μείνει (γιατί λέει στην εκφώνηση ότι πρέπει να κρατας ποια μηνύματα έχει στείλει σε ποιον, οπότε αν δεν έχουν μπει στο buffer σου πάνω απο 2000 μηνύματα απο τότε που συνδέθηκες τελευταία φορά με το Χ node, αν ξανασυνδεθείς δεν χρειάζεται να του στείλεις όλο το buffer απο τη αρχή αλλά μόνα τα καινούργια μηνύματα απο την τελευταία φορά).

Επίσης:
- Δεν σε ενδιαφέρει αν και πως θα φτάσει το μήνυμα σου στον τελικό παραλήπτη.
- Όταν κάνεις generate το δικό σου μήνυμα, απλά το προσθέτεις στο buffer σου και το transmission γίνεται με τον παραπάνω τρόπο.
- Δεν ασχολείσαι καθόλου με τα buffer των άλλων.
- Για το σβήσιμο των παλαιότερων μηνυμάτων υπάρχει μια υλοποίηση στο λινκ που έγραψα στο προηγούμενο ποστ.





Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: geormich on August 15, 2019, 23:29:18 pm
Ένα αρχείο θέλεις, ναι.
Απο εκεί και πέρα έχει πολλούς τρόπου με τους οποίους μπορείς να το υλοποιήσεις.
Ενδεικτικά, μια αρχιτεκτονική είναι:
- Ένα server thread που κάνει listen()
- Ένα client thread που προσπαθεί να κάνει connect() σε άλλα nodes απο τη λίστα
- Ένα thread για κάθε socket που προκύπτει είτε απο τον client είτε απο τον server

Θεωρητικά, θα μπορούσες να κάνεις ένα αρχείο με ένα thread μέσα και να χρησιμοποιήσεις asychronous Ι/Ο multiplexing (linux epoll ή kqueue) για να τα διαχειριστείς όλα αλλά είναι αρκετά πιο σύνθετο και δεν υπάρχει λόγος.

Ένα socket δεν κλείνει μετά απο επιτυχή αποστολή μηνύματος. Για να κλείσεις το socket πρέπει να χρησιμοποιήσεις close() ή shutdown().
Εκτός αν θέλεις να πείς κάτι άλλο και δεν το καταλαβαίνω εγώ σωστά.

Υποτίθεται θα μας δώσουν λίστα με τα ΑΕΜ όσων είναι γραμμένοι στο μάθημα.
Η εκφώνηση λέει ότι το κάθε RPi πρέπει να έχει IP στο δίκτυο της μορφής 10.0.ΧΧ.ΥΥ όπου ΧΧΥΥ το ΑΕΜ του κάθε φοιτητή.
Οπότε, αν σου δώσει λίστα με τα ΑΕΜ εσύ έχεις ουσιαστικά και τις IP όλων των πιθανών nodes αφού έχουν την παραπάνω μορφή.
Άρα, στο πρόγραμμα θα φτιάξεις μια τέτοια λίστα με όλες τις IP και θα βάλεις το client thread σου να σκαναρει ένα ένα item τη λίστα και να προσπαθεί να κάνει connect() -κάνοντας skip nodes που πιθανον θα έχουν συνδεθεί απο server thread, οπότε καλό θα ήταν στον πίνακα με τις IP να κράτας και μια bool status στήλη ώστε να μην προσπαθείς να κάνεις connect σε node που είσαι ήδη συνδεδεμένος-

To buffer ουσιαστικά είναι το ιστορικό των τελευταίων 2000 unique μηνυμάτων που έχει λάβει το node σου + τα μηνύματα που κάνεις generate.

Προσθέτεις μήνυμα στο buffer όταν:
- συνδεθείς με ένα αλλο node, κάνεις receive μήνυμα και ελέγξεις ότι δεν είναι ήδη στο buffer
- κάνεις generate random μήνυμα, όπως αναφέρει η εκφώνηση

Απο εκεί και πέρα, κάθε φορά που κάνεις connect με ένα node του στέλνεις όλο το buffer σου (όπως είναι τη δεδομένη στιγμή) ή του στέλνεις απο το σήμειο και κάτω που είχες μείνει (γιατί λέει στην εκφώνηση ότι πρέπει να κρατας ποια μηνύματα έχει στείλει σε ποιον, οπότε αν δεν έχουν μπει στο buffer σου πάνω απο 2000 μηνύματα απο τότε που συνδέθηκες τελευταία φορά με το Χ node, αν ξανασυνδεθείς δεν χρειάζεται να του στείλεις όλο το buffer απο τη αρχή αλλά μόνα τα καινούργια μηνύματα απο την τελευταία φορά).

Επίσης:
- Δεν σε ενδιαφέρει αν και πως θα φτάσει το μήνυμα σου στον τελικό παραλήπτη.
- Όταν κάνεις generate το δικό σου μήνυμα, απλά το προσθέτεις στο buffer σου και το transmission γίνεται με τον παραπάνω τρόπο.
- Δεν ασχολείσαι καθόλου με τα buffer των άλλων.
- Για το σβήσιμο των παλαιότερων μηνυμάτων υπάρχει μια υλοποίηση στο λινκ που έγραψα στο προηγούμενο ποστ.

Oκ..Κατάλαβα..Ευχαριστώ πάρα πολύ _init..Η βοήθειά σου ήταν valuable.. :)
Μια final last question :P
Η υλοποίησή της εργασίας με το μοντέλο P2P ουσιαστικά βασίζεται στο consumer-producer μοντέλο με τον consumer ως τον client και τον producer ως τον server??
Απλά στο P2P model ο κάθε consumer-client είναι και producer-server??
Θα μπορούσα δηλαδή να βασίσω την υλοποίησή μου στο producer-consumer μοντέλο θεωρώντας τον consumer ως τον client και τον producer ως τον server?


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: _init on August 16, 2019, 00:17:25 am
Oκ..Κατάλαβα..Ευχαριστώ πάρα πολύ _init..Η βοήθειά σου ήταν valuable.. :)
Μια final last question :P
Η υλοποίησή της εργασίας με το μοντέλο P2P ουσιαστικά βασίζεται στο consumer-producer μοντέλο με τον consumer ως τον client και τον producer ως τον server??
Απλά στο P2P model ο κάθε consumer-client είναι και producer-server??

χαρά μου να βοθήσω όσο μπορώ  8))

Ναι, θεωρητικά θα μπορούσες να κάνεις ένα τέτοιο abstraction (one producer-multiple consumers) αλλά δεν ξέρω κατά πόσο θα βοηθούσε.
Το κάθε node είναι producer με την έννοια ότι συνδέονται σε αυτό άλλα nodes και τραβάνε απο το buffer του και παράλληλα είναι και ένας απο τους πολλούς consumers του κάθε άλλου node που συνδέεται με τη έννοια ότι τραβάει απο το buffer εκείνου.



Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: feugatos_# on August 16, 2019, 01:45:30 am
Μιας που το topic αναβίωσε... θα ξανακάνω την ίδια ερώτηση:

Υπάρχει κάποιος που έχει καταφέρει να κάνει δύο zsun συσκευές να επικοινωνήσουν μεταξύ τους;


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: geormich on August 16, 2019, 05:47:08 am
χαρά μου να βοθήσω όσο μπορώ  8))

Ναι, θεωρητικά θα μπορούσες να κάνεις ένα τέτοιο abstraction (one producer-multiple consumers) αλλά δεν ξέρω κατά πόσο θα βοηθούσε.
Το κάθε node είναι producer με την έννοια ότι συνδέονται σε αυτό άλλα nodes και τραβάνε απο το buffer του και παράλληλα είναι και ένας απο τους πολλούς consumers του κάθε άλλου node που συνδέεται με τη έννοια ότι τραβάει απο το buffer εκείνου.



Μην το συζητάς.. :P ..Με βοήθησες πάρα πολύ όπως σου είπα....    ::)

Βασικά κάτι τελευταίες απορίες έχω μωρέ.. LOL :P Τελευταίες τελευταίες ελπίζω......Να κοκκαλώσει το χέρι μου από την πληκτρολόγηση να μην μπορώ να γράψω άλλο.. :P

1.Βασικά αυτό για τον consumer-producer στο ρώτησα..γιατί δεν έχω καταλάβει στο πρώτο σκέλος της απάντησής σου που μου είπες για το P2P αν εννοείς

a.ότι θα πρέπει να χωρίσω server και client σε 2 συναρτήσεις και εκεί μέσα στις συναρτήσεις τους να βάλω τα threads(αν και τότε θες 4 threads,1 για το connect 1 για το listen και 2 για τα sockets)και θα τους καλώ από την main σαν συναρτήσεις ή σαν threads..  ή αν εννοείς
b.ότι θα υπάρχουν μέσα στην main αυτά τα 3 threads και απλά θα υλοποιούν αυτές τις λειτουργίες..Και θα προσομοιώνεται έτσι η λειτουργία server και client μαζί..
Τι από τα 2 εννοείς?? :)

2.Επίσης πάνω στο ίδιο θέμα με το P2P πώς θα εναλάσσεται η λειτουργία server client?Aπλά μέσω των threads?px 0.1 sec το ένα 0.1 sec το άλλο? Ή θα είναι ανοιχτά και τα δύο πάντα?Όμως αυτό λογικά δεν είναι λάθος?Δεν θα πρέπει για ένα χρονικό διάστημα το κάθε ενσωματωμένο να λειτουργεί είτε μόνο σαν node είτε μόνο σαν server?(πχ με κάποια alarm ή κάτι να ενεργοποιείς την μία ή την άλλη λειτουργία κάθε φορά)

3.Επίσης τη λίστα με τα ΑΕΜΣ και τις IPs είπε μήπως πότε θα τα ανεβάσει??Πέφτει και εξεταστική γαμώτο..Αυτά θα τα βάλουμε σε μια λίστα δηλαδή και από εκεί θα τα τραβήξουμε?Δεν θα τα πληκτρολογεί ο χρήστης?

4.Τέλος τα μηνύματα πώς θα τα παράγουμε..Με μια random τυχαία ανά 1-5 λεπτά μου είπες..Τα μηνύματα επίσης θα παράγονται κι αυτά τυχαία??Ή θα τα πληκτρολογεί ο χρήστης τυχαία??

5.Όταν λες για το listen() ένα thread εννοείς ένα για το listen() και για το bind() μαζί ή μόνο για το listen()??Ενώ εννοείς 1 thread για το client socket ή 2 threads,1 για το client socket κι ένα για το server socket??

Ευχαριστώ και εκ των προτέρων για τη βοήθεια.. :) :P


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: _init on August 16, 2019, 10:26:17 am
Μην το συζητάς.. :P ..Με βοήθησες πάρα πολύ όπως σου είπα....    ::)

Βασικά κάτι τελευταίες απορίες έχω μωρέ.. LOL :P Τελευταίες τελευταίες ελπίζω......Να κοκκαλώσει το χέρι μου από την πληκτρολόγηση να μην μπορώ να γράψω άλλο.. :P

 ;D ;D ;D

1.Βασικά αυτό για τον consumer-producer στο ρώτησα..γιατί δεν έχω καταλάβει στο πρώτο σκέλος της απάντησής σου που μου είπες για το P2P αν εννοείς

a.ότι θα πρέπει να χωρίσω server και client σε 2 συναρτήσεις και εκεί μέσα στις συναρτήσεις τους να βάλω τα threads(αν και τότε θες 4 threads,1 για το connect 1 για το listen και 2 για τα sockets)και θα τους καλώ από την main σαν συναρτήσεις ή σαν threads..  ή αν εννοείς
b.ότι θα υπάρχουν μέσα στην main αυτά τα 3 threads και απλά θα υλοποιούν αυτές τις λειτουργίες..Και θα προσομοιώνεται έτσι η λειτουργία server και client μαζί..
Τι από τα 2 εννοείς?? :)

2.Επίσης πάνω στο ίδιο θέμα με το P2P πώς θα εναλάσσεται η λειτουργία server client?Aπλά μέσω των threads?px 0.1 sec το ένα 0.1 sec το άλλο? Ή θα είναι ανοιχτά και τα δύο πάντα?Όμως αυτό λογικά δεν είναι λάθος?Δεν θα πρέπει για ένα χρονικό διάστημα το κάθε ενσωματωμένο να λειτουργεί είτε μόνο σαν node είτε μόνο σαν server?(πχ με κάποια alarm ή κάτι να ενεργοποιείς την μία ή την άλλη λειτουργία κάθε φορά)

Τα client και server μπορεις να τα βαλεις ως thread στη main.

Μπορείς να συνδεθείς με ένα node με δυο τρόπους:
- να συνδεθεί αυτό σε εσένα στο listen()ing που κάνεις με το server thread σου
- να συνδεθείς εσύ σ'αυτό κάνωντας connect() με το client thread σου
Και στις δυο περιπτώσεις αφού γίνει establish το connection θα προκύψει ένα νέο socket. Ένα TCP Socket στέλνει και λαμβάνει απο διαφορετικά "κανάλια" πράγμα που σημαίνει ότι μπορείς να λαμβάνεις/στέλνεις απο/προς το αλλο node ταυτοχρονα. Οπότε, αφού επιτευχθεί η σύνδεση με όποιον απο τους δυο τρόπους, χάνεται η έννοια του client/server και τα δύο nodes είναι ίσα (peers).

Υπάρχει και η εξής εναλλακτική:
Να έχεις δύο sockets για τη σύδεση με το κάθε node. Το ένα socket απο το server thread σου και το άλλο socket απο το client thread σου. Στο socket του server thread θα στέλνεις μόνο και στο socket του client thread θα λαμβάνεις μόνο.
Φυσικά, όλοι θα πρέπει να το υλοποιήσουμε με τον ίδιο τρόπο αλλιώς θα υπάρξει πρόβλημα στην επικοινωνία.
Γι'αυτό έστειλα email στον Φλώρο αλλά μάντεψε... :D

Εγώ πάντως ακολούθησα την πρώτη περίπτωση, όπου γίνεται establish το connection με όποιον τρόπο και μετά επικοινωνούνε τα nodes και προς τις δυο κατευθύνσεις μέσω του ίδιου socket.

3.Επίσης τη λίστα με τα ΑΕΜΣ και τις IPs είπε μήπως πότε θα τα ανεβάσει??Πέφτει και εξεταστική γαμώτο..Αυτά θα τα βάλουμε σε μια λίστα δηλαδή και από εκεί θα τα τραβήξουμε?Δεν θα τα πληκτρολογεί ο χρήστης?

Ναι θα τα βάλεις σε μια λίστα και μετά θα τα βάζεις στο πρόγραμμα και προγραμματιστικά θα τα μετατρέπεις σε IP όπως έγραψα στο προηγούμενο ποστ.
Βάλε εσύ τώρα 10 random ΑΕΜ να δεις ότι δουλεύει και θα στείλουν αυτοί τη λίστα 1 μέρα πριν απο το deadline.

4.Τέλος τα μηνύματα πώς θα τα παράγουμε..Με μια random τυχαία ανά 1-5 λεπτά μου είπες..Τα μηνύματα επίσης θα παράγονται κι αυτά τυχαία??Ή θα τα πληκτρολογεί ο χρήστης τυχαία??

Έτσι όπως το έχω καταλάβει θα παράγονται απο το πρόγραμμα. Δεν θα συνδέεσαι δηλαδή εκείνη την ώρα στο RPi για να γράψεις μήνυμα.
Οπότε, μπορείς να κάνεις έναν πίνακα με κάποια μηνύματα και να διαλέγει κάθε φορά ένα απο εκείνα ή μπορείς να στέλνεις το ίδιο μήνυμα κάθε φορά. Δεν διευκρινίζει η εκφώνηση το περιεχόμενο του μηνύματος.
Ναι θα βάζεις έναν timer για μια τυχαία διάρκεια κάθε φορά στο διάστημα που γράφει η εκφώνηση (1-5 ή 5-10 δε θυμάμαι) και όταν τερματίζει ο timer θα παράγεις ένα τυχαίο μήνυμα και θα το προσθέτεις στο buffer σου.


5.Όταν λες για το listen() ένα thread εννοείς ένα για το listen() και για το bind() μαζί ή μόνο για το listen()??

ναι. (και το bind() μαζί)


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: geormich on August 16, 2019, 11:08:45 am
;D ;D ;D

Τα client και server μπορεις να τα βαλεις ως thread στη main.

Μπορείς να συνδεθείς με ένα node με δυο τρόπους:
- να συνδεθεί αυτό σε εσένα στο listen()ing που κάνεις με το server thread σου
- να συνδεθείς εσύ σ'αυτό κάνωντας connect() με το client thread σου
Και στις δυο περιπτώσεις αφού γίνει establish το connection θα προκύψει ένα νέο socket. Ένα TCP Socket στέλνει και λαμβάνει απο διαφορετικά "κανάλια" πράγμα που σημαίνει ότι μπορείς να λαμβάνεις/στέλνεις απο/προς το αλλο node ταυτοχρονα. Οπότε, αφού επιτευχθεί η σύνδεση με όποιον απο τους δυο τρόπους, χάνεται η έννοια του client/server και τα δύο nodes είναι ίσα (peers).

Υπάρχει και η εξής εναλλακτική:
Να έχεις δύο sockets για τη σύδεση με το κάθε node. Το ένα socket απο το server thread σου και το άλλο socket απο το client thread σου. Στο socket του server thread θα στέλνεις μόνο και στο socket του client thread θα λαμβάνεις μόνο.
Φυσικά, όλοι θα πρέπει να το υλοποιήσουμε με τον ίδιο τρόπο αλλιώς θα υπάρξει πρόβλημα στην επικοινωνία.
Γι'αυτό έστειλα email στον Φλώρο αλλά μάντεψε... :D

Εγώ πάντως ακολούθησα την πρώτη περίπτωση, όπου γίνεται establish το connection με όποιον τρόπο και μετά επικοινωνούνε τα nodes και προς τις δυο κατευθύνσεις μέσω του ίδιου socket.

Ναι θα τα βάλεις σε μια λίστα και μετά θα τα βάζεις στο πρόγραμμα και προγραμματιστικά θα τα μετατρέπεις σε IP όπως έγραψα στο προηγούμενο ποστ.
Βάλε εσύ τώρα 10 random ΑΕΜ να δεις ότι δουλεύει και θα στείλουν αυτοί τη λίστα 1 μέρα πριν απο το deadline.

Έτσι όπως το έχω καταλάβει θα παράγονται απο το πρόγραμμα. Δεν θα συνδέεσαι δηλαδή εκείνη την ώρα στο RPi για να γράψεις μήνυμα.
Οπότε, μπορείς να κάνεις έναν πίνακα με κάποια μηνύματα και να διαλέγει κάθε φορά ένα απο εκείνα ή μπορείς να στέλνεις το ίδιο μήνυμα κάθε φορά. Δεν διευκρινίζει η εκφώνηση το περιεχόμενο του μηνύματος.
Ναι θα βάζεις έναν timer για μια τυχαία διάρκεια κάθε φορά στο διάστημα που γράφει η εκφώνηση (1-5 ή 5-10 δε θυμάμαι) και όταν τερματίζει ο timer θα παράγεις ένα τυχαίο μήνυμα και θα το προσθέτεις στο buffer σου.

ναι. (και το bind() μαζί)



Οκ.. :) Κατάλαβα..Όλα όσα λες είναι ξεκάθαρα..Το μόνο που δεν έχω καταλάβει από αυτά που είπες και είναι και η τελευταία μου ερώτηση..

Τελικά θα έχω
a periptwsh.2 threads ένα server κι ένα client στη main που θα τρέχουν τις ρουτίνες client και server?

Ή θα έχω b periptwsh.4 threads τελικώς?Ένα για το connect , ένα για το listening, ένα για το ένα socket του server και ένα για το άλλο socket του client??

Αυτό δεν έχω καταλάβει..

Εν τέλει έπειτα μου είπες αν κατάλαβα καλά ότι μπορούμε στην b περίπτωση είτε να έχουμε ένα thread για socket εννιαίο είτε 2 threads για server και client??

Αυτά δεν έχω καταλάβει από τις απαντήσεις σου..

ΓΙα τα άλλα σαφώς πάρα πολλά ευχαριστώ!!!!!  ;D :) Αλλά και για αυτά :P


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: _init on August 16, 2019, 12:56:40 pm

Οκ.. :) Κατάλαβα..Όλα όσα λες είναι ξεκάθαρα..Το μόνο που δεν έχω καταλάβει από αυτά που είπες και είναι και η τελευταία μου ερώτηση..

Τελικά θα έχω
a periptwsh.2 threads ένα server κι ένα client στη main που θα τρέχουν τις ρουτίνες client και server?

Ή θα έχω b periptwsh.4 threads τελικώς?Ένα για το connect , ένα για το listening, ένα για το ένα socket του server και ένα για το άλλο socket του client??

Αυτό δεν έχω καταλάβει..

Εν τέλει έπειτα μου είπες αν κατάλαβα καλά ότι μπορούμε στην b περίπτωση είτε να έχουμε ένα thread για socket εννιαίο είτε 2 threads για server και client??

Αυτά δεν έχω καταλάβει από τις απαντήσεις σου..

ΓΙα τα άλλα σαφώς πάρα πολλά ευχαριστώ!!!!!  ;D :) Αλλά και για αυτά :P

Γενικά, έχει πολλούς τρόπους να το κάνεις. Δεν υπάρχει σωστό. Είναι τι θέλεις να ακολουθήσεις.
Ενδεικτικά, σου έγραψα μια αρχιτεκτονική που θα μπορούσες να εφαρμόσεις, σύμφωνα με την οποία θα έχεις:

- ένα thread που θα κάνεις το bind() και listen() που είναι ουσιαστικά το server thread
- ένα thread που θα προσπαθείς να κάνεις connect() στα διάφορα nodes απο τη λίστα που είναι ουσιαστικά το client thread

Απο εκεί και πέρα ότι συνδεθεί ένα node στο δικό σου είτε μέσω του listening socket (server) είτε μέσω του connect (client) θα δημιουργηθεί ένα νέο socket που είναι αυτό που θα χρησιμοποιήσεις για να ανταλλάξεις μηνύματα με το άλλο node.
Εδώ τώρα μπορείς να ακολουθήσεις δίαφορους τρόπους. Ενδεικτικά:
Α) να δημιουργείς ένα νέο thread για κάθε τέτοιο socket, το οποίο θα διαχειρίζεται την ανταλλαγή μηνυμάτων με το εκάστοτε node.
Β) να έχεις ένα thread που θα στέλνεις όλα αυτα τα sockets και να χρησιμοποιήσεις I/O multiplexing για να διαχειριστείς τις ανταλλαγές μηνύματων.

Αν δεν έγινα κατανοητός πες μου να γράψω κι άλλα... :P


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: geormich on August 16, 2019, 22:31:18 pm
Γενικά, έχει πολλούς τρόπους να το κάνεις. Δεν υπάρχει σωστό. Είναι τι θέλεις να ακολουθήσεις.
Ενδεικτικά, σου έγραψα μια αρχιτεκτονική που θα μπορούσες να εφαρμόσεις, σύμφωνα με την οποία θα έχεις:

- ένα thread που θα κάνεις το bind() και listen() που είναι ουσιαστικά το server thread
- ένα thread που θα προσπαθείς να κάνεις connect() στα διάφορα nodes απο τη λίστα που είναι ουσιαστικά το client thread

Απο εκεί και πέρα ότι συνδεθεί ένα node στο δικό σου είτε μέσω του listening socket (server) είτε μέσω του connect (client) θα δημιουργηθεί ένα νέο socket που είναι αυτό που θα χρησιμοποιήσεις για να ανταλλάξεις μηνύματα με το άλλο node.
Εδώ τώρα μπορείς να ακολουθήσεις δίαφορους τρόπους. Ενδεικτικά:
Α) να δημιουργείς ένα νέο thread για κάθε τέτοιο socket, το οποίο θα διαχειρίζεται την ανταλλαγή μηνυμάτων με το εκάστοτε node.
Β) να έχεις ένα thread που θα στέλνεις όλα αυτα τα sockets και να χρησιμοποιήσεις I/O multiplexing για να διαχειριστείς τις ανταλλαγές μηνύματων.

Αν δεν έγινα κατανοητός πες μου να γράψω κι άλλα... :P

Κοίτα..ενώ καταλαβαίνω τι θες να μου πεις σε γενικές γραμμές δεν καταλαβαίνω τι θες να μου πεις ακριβώς. .κάπου το χάνω  :P Δεν δίνουμε κάνα ραντεβού στο Πολυτεχνείο καλύτερα να σε ρωτήσω από κοντά??  :P Και ο καφές κερασμενος ;D 8)) η ανοίγουμε κάνα μπουκάλι  ;D  :D όλα πληρωμένα χαχαχα  :P

Οκ σοβαρά τώρα..Κοιτα αν μπορείς πες μου λίγο πιο συγκεκριμενα 2 τελευταία πράγματα please γιατί κάπου το χασα.. Ευτυχώς που έχουμε κάνα μήνα ακομα μεχρι να παραδοσουμε την εργασία  :P


Κοίτα θα σου πω έναν τρόπο υλοποίησης ετσι όπως τα κατάλαβα εγώ..και θα σε κάνω και μια δυο διευκρινιστικες και επιβεβαιωτικες ερωτήσεις πάνω σε αυτά που μου είπες για να δω αν τα κατάλαβα τελικά σωστά.....


1.Ας πούμε ότι φτιάχνουμε μια λουπα που δημιουργεί threads και μέσα υπαρχει το connect και ένα thread που παίρνει σαν όρισμα τη συνάρτηση connection και κάνει connection..η λουπα διαρκεί μέχρι να γίνει connection με ανώτατο όριο όσος είναι και ο αριθμός των nodes αλλιώς επιστρέφει μήνυμα λαθους
2.Αντιστοιχα φτιαχνουμε μια λουπα για το listen όπου καλουμε τη συνάρτηση listening που φτιαξαμε μέσα στην οποία υπάρχει το listen() και το bind() από εντολες
3.Φτιαχνουμε όχι σε λουπα όμως αυτα δύο ξεχωριστά threads ένα για το server socket κι ένα για το client socket αντιστοιχα που παίρνουν σαν όρισμα
2 αντιστοιχες συναρτησεις που φτισξαμε για αυτό το σκοπό στις οποίες βαζουμε μέσα τις εντολές των sockets..
Κατά τα άλλα προφανώς βάζουμε και mutex cond κλπ για το κλείδωμα κλπ κοινών περιοχών μνήμης..

Είναι σωστή αυτή η υλοποιηση??Αν υποθέσουμε οτι βάζουμε μέσα ακριβώς ότι σου είπα από εντολες..

Και τέλος οι εξής διευκρινιστικες ερωτήσεις:

α.Με βάση τα λεγόμενά σου πρέπει να βάλουμε σε λουπες τα sockets.....τα threads για το connect και το listen δεν τα βάζουμε σε λούπες..Σωστά????αυτό δεν εννοούσες???

Είναι όμως κι αυτό που λέω εγώ σωστό η όχι????

β.Ακόμη η αλλαγή από την μία κατάσταση server στην client γίνεται αυτόματα σωστά??δηλαδή δεν χρειάζεται ούτε alarm ούτε τίποτα..Σωστά??

γ.Επίσης
Αρα εν τελει δεν είναι απαραίτητο να φτιάξουμε στη main ένα συνολικό server thread και ένα συνολικό client thread??Μπορουμε να το κάνουμε και χωρίς αυτα και μόνο με τα 3 η 4 threads που συζητησαμε??
Οι εντολές του client και του server μέσα στη main δεν θα ναι Μ αυτόν τον τρόπο ούτως η άλλως και σ αυτή την περιπτωση?

δ.Τέλος αυτό με το I/O multiplexing έχεις κάνα link να μου στείλεις?με select()εννοείς??

Τελείωσα για σήμερα ..  :-X


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: _init on August 17, 2019, 02:49:30 am
Κοίτα..ενώ καταλαβαίνω τι θες να μου πεις σε γενικές γραμμές δεν καταλαβαίνω τι θες να μου πεις ακριβώς. .κάπου το χάνω  :P Δεν δίνουμε κάνα ραντεβού στο Πολυτεχνείο καλύτερα να σε ρωτήσω από κοντά??  :P Και ο καφές κερασμενος ;D 8)) η ανοίγουμε κάνα μπουκάλι  ;D  :D όλα πληρωμένα χαχαχα  :P

χαχαχαχα ξεπουλάει το μαγαζί... :D

1.Ας πούμε ότι φτιάχνουμε μια λουπα που δημιουργεί threads και μέσα υπαρχει το connect και ένα thread που παίρνει σαν όρισμα τη συνάρτηση connection και κάνει connection..η λουπα διαρκεί μέχρι να γίνει connection με ανώτατο όριο όσος είναι και ο αριθμός των nodes αλλιώς επιστρέφει μήνυμα λαθους
2.Αντιστοιχα φτιαχνουμε μια λουπα για το listen όπου καλουμε τη συνάρτηση listening που φτιαξαμε μέσα στην οποία υπάρχει το listen() και το bind() από εντολες
3.Φτιαχνουμε όχι σε λουπα όμως αυτα δύο ξεχωριστά threads ένα για το server socket κι ένα για το client socket αντιστοιχα που παίρνουν σαν όρισμα
2 αντιστοιχες συναρτησεις που φτισξαμε για αυτό το σκοπό στις οποίες βαζουμε μέσα τις εντολές των sockets..
Κατά τα άλλα προφανώς βάζουμε και mutex cond κλπ για το κλείδωμα κλπ κοινών περιοχών μνήμης..

Είναι σωστή αυτή η υλοποιηση??Αν υποθέσουμε οτι βάζουμε μέσα ακριβώς ότι σου είπα από εντολες..

Εδώ σ'εχασα λίγο...
Οποίον τρόπο και να διαλέξεις (εκτός αν δεν χρησιμοποίησεις καθόλου παράλληλο προγραμματισμό) θα χρειαστείς τουλάχιστον δυο threads: το server thread και το client thread.
- Το server thread θα κάνει bind() και θα ανοίξει ένα socket που θα κάνει listen(). Κάθε φορά που θα συνδέεται ένα νέο node μέσω του socket που κάνει listen(), θα δημιουργείται ένα νέο socket, θα το πω για ευκολία node socket.
- Το client thread θα λουπάρει τη λίστα με τις IP των nodes και θα προσπαθεί να κάνει connect() σε κάθε node που δεν είναι συνδεδεμένο με το δικό σου node (βλ. status στο προηγούμενο ποστ). Κάθε φορά που θα γίνεται επιτυχές connect() θα δημιουργείται ένα καινούργιο socket, επίσης node socket.

Απο εκεί και πέρα αυτό που έγραφα στο προηγούμενο ποστ είναι ότι ενδεικτικά μπορείς να κάνεις τις εξής υλοποιήσεις:
Α) να φτιάχνεις ένα καινούργιο thread για κάθε node socket, να κάνεις την ανταλλαγή μηνυμάτων και να το κλείνεις μετά
Β) να στέλνεις όλα τα node sockets σε ένα thread και να χρησιμοποιήσεις I/O multiplexing για να κάνεις την ανταλλαγή μηνυμάτων σε όλα μαζί απο το ίδιο thread.

Λέγωντας Ι/Ο multiplexing εννοώ select, poll ή epoll ή kqueue. Προτείνω select ή poll μιας και δεν παίζει με τίποτα να έχουμε πάνω απο 10 nodes ταυτόχρονα συνδεδεμένα οπότε δεν έχει νοήμα να μπλέξεις με τα τελευταία που είναι πιο περίπλοκα.

Αν πάλι δεν έγινα κατανοητός, γράψε μέχρι να το βρούμε  :P


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: geormich on August 18, 2019, 05:14:19 am
χαχαχαχα ξεπουλάει το μαγαζί... :D

Εδώ σ'εχασα λίγο...
Οποίον τρόπο και να διαλέξεις (εκτός αν δεν χρησιμοποίησεις καθόλου παράλληλο προγραμματισμό) θα χρειαστείς τουλάχιστον δυο threads: το server thread και το client thread.
- Το server thread θα κάνει bind() και θα ανοίξει ένα socket που θα κάνει listen(). Κάθε φορά που θα συνδέεται ένα νέο node μέσω του socket που κάνει listen(), θα δημιουργείται ένα νέο socket, θα το πω για ευκολία node socket.
- Το client thread θα λουπάρει τη λίστα με τις IP των nodes και θα προσπαθεί να κάνει connect() σε κάθε node που δεν είναι συνδεδεμένο με το δικό σου node (βλ. status στο προηγούμενο ποστ). Κάθε φορά που θα γίνεται επιτυχές connect() θα δημιουργείται ένα καινούργιο socket, επίσης node socket.

Απο εκεί και πέρα αυτό που έγραφα στο προηγούμενο ποστ είναι ότι ενδεικτικά μπορείς να κάνεις τις εξής υλοποιήσεις:
Α) να φτιάχνεις ένα καινούργιο thread για κάθε node socket, να κάνεις την ανταλλαγή μηνυμάτων και να το κλείνεις μετά
Β) να στέλνεις όλα τα node sockets σε ένα thread και να χρησιμοποιήσεις I/O multiplexing για να κάνεις την ανταλλαγή μηνυμάτων σε όλα μαζί απο το ίδιο thread.

Λέγωντας Ι/Ο multiplexing εννοώ select, poll ή epoll ή kqueue. Προτείνω select ή poll μιας και δεν παίζει με τίποτα να έχουμε πάνω απο 10 nodes ταυτόχρονα συνδεδεμένα οπότε δεν έχει νοήμα να μπλέξεις με τα τελευταία που είναι πιο περίπλοκα.

Αν πάλι δεν έγινα κατανοητός, γράψε μέχρι να το βρούμε  :P

Χαχα..Οκ..έτσι όπως το θέτεις δεν γίνεται να μην ρωτήσω κι άλλη ερώτηση.... :P

Κοίτα..έχω τις εξής απορίες για να το κλείσουμε το θέμα.. :) ελπίζω δηλαδή :P ;D:
1.Τα server thread και τα client thread είναι απαραίτητα ή μπορώ να κάνω threads μόνο συγκεκριμένα set εντολών των server και των client
πχ listen,connect κλπ και όχι ολόκληρο τον client και τον server? ;D Γιατί σε προηγούμενα posts αυτό μου είχες πει εκτός αν κατάλαβα εγώ λάθος.. :P

2.Τα server thread και client thread σαν τελευταίο όρισμα(το τέταρτο από αριστερά προς τα δεξιά)πρέπει να έχουν το buffer μου ή όποια θέση μνήμης θέλω?και πρέπει να είναι κοινή μεταξύ τους ή όχι?

3.Όταν λες το client thread θα λουπάρει τη λίστα με τις IP των nodes τι εννοείς?Ότι θα είναι μέσα σε while(1) όλες οι εντολές?
Και ακόμα και αυτό να εννοείς πώς θα λουπάρει τη λίστα με τις IPs?Εννοείς ότι κάθε φορά που θα μπαίνει στη λούπα θα προσπαθεί να κάνει connect στην εκάστοτε Receivers IP ή Servers IP να το πω καλύτερα που όρισα?Ή με άλλα λόγια την IP που κάθε φορά εγώ θα ορίζω σαν Receivers IP με τυχαίο τρόπο -εννοώ με τον τρόπο που μας είπανε είτε μέσα στη while(1) είτε έξω από την while(1) μέσω όποιου τρόπου το ορίσαμε εμείς όπως πχ μέσω alarm(1) κλπ- αυτό θα προσπαθεί να την κάνει connect και αν γίνει το connect αυτό θα δημιουργήσει ένα νέο socket?Αυτό εννοείς που λέω ή εννοείς κάτι άλλο θα λουπάρει τις IPs?Επίσης το AEM τo δικό μας πρέπει σε λούπα να το πληκτρολογούμε εμείς ή αλλιώς πρέπει να το εισάγουμε?Για το ΑΕΜ του παραλήπτη μας είπανε..μέσω τυχαίου τρόπου θα επιλέγεται....

4.Είναι απαραίτητο να φτιάχνω ένα καινούργιο thread για κάθε node socket που δημιουργείται ή όχι?
Επίσης είναι απαραίτητο να το κλείνω μετά ή όχι?Φαντάζομαι να κάνω exit εννοείς σωστά?Αλλά είναι απαραίτητο αυτό ή όχι?
Και τέλος για κάθε καινούργιο node socket που δημιουργείται εννοείς από την εντολή sockfd = socket(AF_INET, SOCK_STREAM, 0) και κάτω??

5.Πώς ορίζω την SENDERS IP και την RECEIVERS IP ώς client_address και server_adress αντίστοιχα για να μπορέσω να τις χρησιμοποιήσω μετά στα socket?Θα μπορούσα να κάνω πχ αυτό serv_addr.sin_addr.s_addr=SENDER_ADDR;
   cli_addr.sin_addr.s_addr=RCVER_ADDR;??Επίσης στα sockets πώς ορίζω την IP? Όπως είπα ή αλλιώς?
πχ στο socket του client      bcopy((char *)server->h_addr,            ενώ στο socket του server         serv_addr.sin_addr.s_addr =
                                     (char *)&serv_addr.sin_addr.s_addr,                                                          INADDR_ANY;
                                                            server->h_length);                                                    

6.Ως 4α ορίσματα theads ξεχωριστών και μεμονωμένων set εντολών και όχι όλου του client ή του server όπως πχ αν κάνω threads ξεχωριστά για listening ή για connect τι πρέπει να βάλω?newsockfd ενώ στο listening sockfd?Επίσης σαν 4α ορίσματα των socket threads αν κάνω?την server adress??

7.Για να γίνει αυτή η επαναληψιμότητα τόσο στο διάβασμα των μηνυμάτων όσο και στο ένας server να μπορεί να εξυπηρετήσει πολλούς clients και ένας client να μπορεί να εξυπηρετήσει πολλούς servers(ποιο από τα δύο είναι απαραίτητο??) πρέπει να
βάλω είτε την connect είτε την listen μέσα σε επανάληψη ίση με τον αριθμό των nodes που θα έχουμε??
Πρέπει να κάνω κάτι αντίστοιχο είτε κάνω socket threads είτε όχι και για τα node sockets που τυχόν θα δημιουργηθούν αν γίνει ένα connection ή όχι??

8.Αυτό που λέει στην εκφώνηση της εργασίας <<Αποστέλλονται όλα τα μηνύματα που δεν έχουν σταλεί στον συγκεκριμένο παραλήπτη στο παρελθόν>> πώς το κάνουμε?Ελέγχουμε το socket που μας στέλνει ο client??και πριν στείλουμε κάτι ελέγχουμε τι έχει μέσα στον buffer μας??Επίσης αντίγραφα από τον buffer πρέπει να κρατάει και ο server και ο client????Επομώνως εν τέλει πρέπει να βάλω 2 buffer διαφορετικούς?1 για τον server κι έναν για τον client?Ή θα χειρίζονται και οι 2 τον ίδιο buffer πχ με κάποιο mutex??
Από το socket πρέπει να στέλνουμε 1-1 μήνυμα τη φορά επίσης ή όλα μαζί?Εγώ δεν ξέρω να το κάνω όλα μαζί..μόνο μήνυμα μήνυμα..
Τέλος σε περίπτωση που είναι 1 τελικά ο buffer στον buffer αποθηκεύονται μόνο αυτά που λαμβάνονται(όπως και αναφέρει?)ή και αυτα που δημιουργούνται και αποστέλλονται??Αυτό δεν το ξεκαθαρίζει!!

Τον τρόπο με το I/O Multiplexing άστον καλύτερα γιατί πρώτον πρέπει ακόμα να μάθω τα βασικά :P
Δεύτερον όπως είπες κι εσύ για 10 ΑΕΜ να κάτσω να ασχοληθώ με την select() δεν έχει τόσο νόημα..Απλά σε ρώτησα για να πάρω μια ιδέα..

Τελείωσα με τις ερωτήσεις :P :P  ;D ;D

Όπως και να χει χίλια ευχαριστώ για τις απαντήσεις σου..Αν μου απαντήσεις και σε αυτές πιστεύω με κάλυψες....
 ::) ::) ::) ::)


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mano_lee on August 26, 2019, 13:36:26 pm
Ενώ ο κώδικας μου δουλεύει ολόσωστα για 2 pi, όταν δοκιμάζουμε να το τρέξουμε από 3 pi (και λογικά και παραπάνω), από κάποιο σημείο και μετά αποθηκεύει στη λίστα π.χ. σε μία θέση, δύο ή και παραπάνω μηνύματα ενωμένα αντί για ένα.

Σκέφτηκα μήπως το index της λίστας δεν προλαβαίνει να ανανεωθεί για κάποιον λόγο και πάει και κολλάει το επόμενο μήνυμα στην ίδια θέση.

Το έχω ελέγξει πάρα πολύ και δε βρίσκω κάποιο λάθος στον κώδικα, οπότε το ρωτάω σε περίπτωση που είχε και κάποιος άλλος το ίδιο πρόβλημα. Π.χ. μπορεί να φταίει κάτι με τα threads.

SOLVED: Στην συνάρτηση send στο όρισμα που βάζουμε με strlen, ήθελε ένα "+1" στο τέλος για να πάρει και τον τελευταίο χαρακτήρα του μηνύματος που ήταν το '\0'.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: delta on August 30, 2019, 15:07:19 pm
Παιδια μπορειτε να μου πειτε τι ακριβως κανατε για να αναγνωρισει το πσ σας το raspberry.ποια καλωδια συνδεσατε?το παλευω αλλα δεν βγαζω ακρη


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mano_lee on August 30, 2019, 15:23:11 pm
Παιδια μπορειτε να μου πειτε τι ακριβως κανατε για να αναγνωρισει το πσ σας το raspberry.ποια καλωδια συνδεσατε?το παλευω αλλα δεν βγαζω ακρη

Η βάζεις το καλώδιο στη θύρα USB του pi Αν θες να συνδεθείς μέσω ethernet, ή το βάζεις απλά στη θύρα PWR και συνδέεσαι στο wifi (piZero-ESPX). Το καλώδιο να είναι ένα απλό micro usb type πχ από ένα κινητό.

Αν τυχόν δεν ανάβει LEDακι στο pi Η δοκίμασε άλλο καλώδιο ή ξανάκανε εγκατάσταση το img Γιατί λογικά έγινε με λάθος τρόπο.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: delta on August 30, 2019, 15:26:31 pm
Η βάζεις το καλώδιο στη θύρα USB του pi Αν θες να συνδεθείς μέσω ethernet, ή το βάζεις απλά στη θύρα PWR και συνδέεσαι στο wifi (piZero-ESPX).

Αν τυχόν δεν ανάβει LEDακι στο pi Η δοκίμασε άλλο καλώδιο ή ξανάκανε εγκατάσταση το img Γιατί λογικά έγινε με λάθος τρόπο.

δηλαδη για να καταλαβω

βαζω την sd καρτα στο raspberry
και συνδεω με καλωδιο το pwr με θυρα του υπολογιστη?


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mano_lee on August 30, 2019, 15:34:41 pm
δηλαδη για να καταλαβω

βαζω την sd καρτα στο raspberry
και συνδεω με καλωδιο το pwr με θυρα του υπολογιστη?

Το pi γενικά χρειάζεται τροφοδοσία. Οπότε αυτήν θα την πάρει από το pc σου, άρα ναι, το καλώδιο θα το συνδέσεις σε ένα USB Port του pc σου.

Επίσης ναι συνδέεις την κάρτα sd, γιατί από εκεί ουσιαστικά θα φορτώσει το λογισμικό που του έβαλες (το image δηλαδή που μας έδωσε ο πιτσιάνης).

Το που θα το συνδέσεις στο pi εξαρτάται από το πώς θέλεις να συνδεθείς. Είτε στο port "USB" αν θες να γίνει η σύνδεση μέσω του καλωδίου, είτε στο port "PWR" αν θες να γίνει η σύνδεση μέσω του wifi που εκπέμπει το pi. Οι δυο ενδείξεις, USB και PWR υπάρχουν επάνω στο pi με μικρά γράμματα, ακριβώς δίπλα στις 2 θύρες που έχει.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: delta on August 30, 2019, 15:37:12 pm
Το pi γενικά χρειάζεται τροφοδοσία. Οπότε αυτήν θα την πάρει από το laptop σου, άρα ναι, το καλώδιο θα το συνδέσεις σε ένα USB Port του laptop σου.

Επίσης ναι συνδέεις την κάρτα sd, γιατί από εκεί ουσιαστικά θα φορτώσει το λογισμικό που του έβαλες (το image δηλαδή που μας έδωσε ο πιτσιάνης).

Το που θα το συνδέσεις στο pi εξαρτάται από το πώς θέλεις να συνδεθείς. Είτε στο port "USB" αν θες να γίνει η σύνδεση μέσω του καλωδίου, είτε στο port "PWR" αν θες να γίνει η σύνδεση μέσω του wifi που εκπέμπει το pi. Οι δυο ενδείξεις, USB και PWR υπάρχουν επάνω στο pi με μικρά γράμματα, ακριβώς δίπλα στις 2 θύρες που έχει.

βαζω την καρτα στο raspberry
και συνδεω με καλωδιο το pwr με τον υπολογιστη μου.
το λαμπακι δεν αναβει


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mano_lee on August 30, 2019, 15:41:01 pm
βαζω την καρτα στο raspberry
και συνδεω με καλωδιο το pwr με τον υπολογιστη μου.
το λαμπακι δεν αναβει

3 πράγματα μπορεί να φταίνε:

1) Δοκίμασε άλλο port στο pc σου
2) Δοκίμασε άλλο καλώδιο
3) Αν τίποτα απ αυτά δε φταίει, τότε μάλλον δεν έχεις γράψει σωστά το img στην sd card. Κάντο λοιπόν όλο απ' την αρχή. Format την sd card, και ξανά βάλε το img. Δοκίμασε αν θες το πρόγραμμα balenaEtcher για το img, και όχι τον τρόπο του Πιτσιάνη, είναι πολύ πιο απλό και δουλεύει.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: delta on August 30, 2019, 20:18:29 pm
3 πράγματα μπορεί να φταίνε:

1) Δοκίμασε άλλο port στο pc σου
2) Δοκίμασε άλλο καλώδιο
3) Αν τίποτα απ αυτά δε φταίει, τότε μάλλον δεν έχεις γράψει σωστά το img στην sd card. Κάντο λοιπόν όλο απ' την αρχή. Format την sd card, και ξανά βάλε το img. Δοκίμασε αν θες το πρόγραμμα balenaEtcher για το img, και όχι τον τρόπο του Πιτσιάνη, είναι πολύ πιο απλό και δουλεύει.

αν ας πουμε μου πανε ολα στραβα .. η εργασια δεν μπορει να γινει απλα με προγραμμα κανονικο σε Linux?
γιατι και τ qemu βγαζει καποια ερρορ
γτ σκεφτομαι αν ειναι να κανω εργασια client/server σε C απλα δεν θα το βαλω πανω στο raspberry
ετσι και αλλιως ενα 5αρι θελω ( μονο αυτο το μαθημα εχω )


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mano_lee on August 30, 2019, 20:31:32 pm
αν ας πουμε μου πανε ολα στραβα .. η εργασια δεν μπορει να γινει απλα με προγραμμα κανονικο σε Linux?
γιατι και τ qemu βγαζει καποια ερρορ
γτ σκεφτομαι αν ειναι να κανω εργασια client/server σε C απλα δεν θα το βαλω πανω στο raspberry
ετσι και αλλιως ενα 5αρι θελω ( μονο αυτο το μαθημα εχω )


Γενικά μπορείς να το κάνεις και να επικοινωνείς τοπικά στο pc σου για να δοκιμάζεις. Αν το κάνεις έτσι όμως και πας να δοκιμάσεις να το τρέξεις με κάποιον που το τρέχει στο pi του, εσύ θα μπορείς να στείλεις στο pi από το pc σου αλλά νομίζω πως δε γίνεται κάποιο pi να στέλνει σε σένα (θα λειτουργείς δηλαδή μόνο σαν client).

Τώρα για το πώς θα βαθμολογούσε μια εργασία που δεν έγινε σε pi η zsun δεν έχω ιδέα. Αν είναι και το τελευταίο σου τότε στείλτου ένα mail για σίγουρα.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: delta on August 30, 2019, 20:36:02 pm
Γενικά μπορείς να το κάνεις και να επικοινωνείς τοπικά στο pc σου για να δοκιμάζεις. Αν το κάνεις έτσι όμως και πας να δοκιμάσεις να το τρέξεις με κάποιον που το τρέχει στο pi του, εσύ θα μπορείς να στείλεις στο pi από το pc σου αλλά δε νομίζω να γίνεται κάποιο pi να στέλνει σε σένα (θα λειτουργείς δηλαδή μόνο σαν client).

Τώρα για το πώς θα βαθμολογούσε μια εργασία που δεν έγινε σε pi η zsun δεν έχω ιδέα. Αν είναι και το τελευταίο σου τότε στείλτου ένα mail για σίγουρα.

ναι..εγω λεω να κανω ενα script client/server και να δομιμαζω με πολλα instances ( να βαζω καθε φορα διαφορετικα αεμ )
δεσ το και αλλιως .. εγω μπορει να μην βρω καποιον αλλον να κανω δοκιμες .. και να μην εχω και δευτερο pi


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: delta on September 06, 2019, 11:45:49 am
Εχω βαλει την sd καρτα ολα μια χαρα.Βγαινει το ssid piZero-ESPX αλλα οταν παταω connect δεν μπαινει ( με ξαναπεταει το wifi του σπιτιου).
χρειαζεται να γινει πρωτα static ip?
αν ναι μπορει να μ πει καποιος πως τελικα γινεται static ip?


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mano_lee on September 06, 2019, 13:22:40 pm
Εχω βαλει την sd καρτα ολα μια χαρα.Βγαινει το ssid piZero-ESPX αλλα οταν παταω connect δεν μπαινει ( με ξαναπεταει το wifi του σπιτιου).
χρειαζεται να γινει πρωτα static ip?
αν ναι μπορει να μ πει καποιος πως τελικα γινεται static ip?

Τσέκαρε αυτό

Σύνδεση μέσω wifi

1) Κανεις add new connection τύπου Wifi (απ το edit connections). Βάζεις σαν mode το Ad-hoc. Πας στην καρτέλα για IPv4 και βάζεις με τη σειρά "10.0.0.5", "255.255.255.0", "10.0.0.1". Πάλι εδώ, το πρώτο θα είναι η IP που θα επιλέξεις για το PC σου, και το τελευταίο το default του pi σου (το οποίο θα το αλλάξεις αργότερα στη μορφή που θέλει ο πιτσιανης, με το ΑΕΜ).

2) Συνδέεσαι στο δίκτυο που δημιούργησες.

3) Αφού συνδεθεί, κάνεις ssh root@10.0.0.1


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: delta on September 06, 2019, 19:47:42 pm
Οταν παταω connect στο piZero-ESPX παιρνω το σφάλμα της εικόνας.Plz HELPPPP


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mano_lee on September 06, 2019, 20:27:42 pm
Οταν παταω connect στο piZero-ESPX παιρνω το σφάλμα της εικόνας.Plz HELPPPP

1) Αν άλλαξες την ip του pi μέσα απ την sd (Και αρα δεν είναι η default 10.0.0.1 τότε πρέπει να βάλεις στο Gateway την IP Που έβαλες. Αν δεν άλλαξες κάτι τέτοιο Ignore this step.

2) Είναι σημαντικό να επιλέξεις ad-hoc mode. Αν δεν το κάνες αυτό θα φταίει (το λέω γιατί στα ubuntu 18.04 ας πούμε δεν έβρισκα την επιλογή Και αρα δε γινοταν)


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: delta on September 06, 2019, 21:01:11 pm
1) Αν άλλαξες την ip του pi μέσα απ την sd (Και αρα δεν είναι η default 10.0.0.1 τότε πρέπει να βάλεις στο Gateway την IP Που έβαλες. Αν δεν άλλαξες κάτι τέτοιο Ignore this step.

2) Είναι σημαντικό να επιλέξεις ad-hoc mode. Αν δεν το κάνες αυτό θα φταίει (το λέω γιατί στα ubuntu 18.04 ας πούμε δεν έβρισκα την επιλογή Και αρα δε γινοταν)

στην sd το ελεγξα και ειναι οκ ( 10.0.0.1)
οσο για το ad-hoc δεν ξερω ... εχω ubuntu 19.04
καμια ιδεα πως λυνεται γτ κοντευω να τρελαθω


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mano_lee on September 08, 2019, 15:28:12 pm
στην sd το ελεγξα και ειναι οκ ( 10.0.0.1)
οσο για το ad-hoc δεν ξερω ... εχω ubuntu 19.04
καμια ιδεα πως λυνεται γτ κοντευω να τρελαθω

Σε ubuntu 18 ή 19 δεν ξέρω το interface για να σου πω πώς να επιλέξεις το ad-hoc mode. Άρα λοιπόν αν δεν το βρίσκεις τότε κάνε τα βήματα για static IP μέσω ethernet.

(Σε αυτήν την περίπτωση πρέπει το καλώδιο να είναι συνδεδεμένο στο USB Port του pi για να το αναγνωρίσει το pc σου)


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: delta on September 11, 2019, 15:39:34 pm
να ρωτησω λιγο..

προφανως χρησιμοποιούμε UDP πακετα οταν ανοιγουμε σοκετς ετσι δεν ειναι??


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: _init on September 11, 2019, 16:58:56 pm
να ρωτησω λιγο..

προφανως χρησιμοποιούμε UDP πακετα οταν ανοιγουμε σοκετς ετσι δεν ειναι??

έχω την εντύπωση πως έτσι όπως είναι γραμμένη η εργασία είναι πιο λογικό να είναι TCP τα sockets και όχι UDP.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: delta on September 11, 2019, 17:13:48 pm
μπορει να μας πει καποιος περιπου πως εκανε τον κωδικα με τα σοκετς?
γιατι δεν ειναι client/server ειναι peer2peer δλδ θελει ενα αρχειο .c και οχι δυο


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: _init on September 11, 2019, 17:36:35 pm
μπορει να μας πει καποιος περιπου πως εκανε τον κωδικα με τα σοκετς?
γιατι δεν ειναι client/server ειναι peer2peer δλδ θελει ενα αρχειο .c και οχι δυο

δες τα προηγουμενα ποστ...εχω γραψει αρκετα πραγματα


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: delta on September 11, 2019, 17:39:20 pm
δες τα προηγουμενα ποστ...εχω γραψει αρκετα πραγματα

το εκανες να λειτουργει με ενα αρχειο?
δλδ αν ανοιξω muliple instances θα επικοινωνουν μεταξυ τους?


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mano_lee on September 13, 2019, 15:20:21 pm
το εκανες να λειτουργει με ενα αρχειο?
δλδ αν ανοιξω muliple instances θα επικοινωνουν μεταξυ τους?

Ναι. Αλλά λογικά θα τρέχει μόνο ένας server. Clients μπορούν να τρέχουν πολλοί ταυτόχρονα though. Άρα θα έχεις multiple clients σου να συνδέονται στον server σου.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: _init on September 13, 2019, 16:46:38 pm
το εκανες να λειτουργει με ενα αρχειο?
δλδ αν ανοιξω muliple instances θα επικοινωνουν μεταξυ τους?

δεν ξερω πως θα το κάνεις να τρέχουν multiple instances στο ίδιο μηχάνημα γιατί κάθε node πρέπει να εχει δικιά του IP.

Ναι. Αλλά λογικά θα τρέχει μόνο ένας server. Clients μπορούν να τρέχουν πολλοί ταυτόχρονα though. Άρα θα έχεις multiple clients σου να συνδέονται στον server σου.

αναφέρεσαι στην περίπτωση που τρέχεις πολλά instances στο ίδιο μηχάνημα ή γενικά?


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mano_lee on September 13, 2019, 17:02:36 pm
αναφέρεσαι στην περίπτωση που τρέχεις πολλά instances στο ίδιο μηχάνημα ή γενικά?

Στο ίδιο μηχάνημα. Για τον λόγο που λες από ένα μηχάνημα μπορεί να τρέξει μόνο ένας server.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: delta on September 14, 2019, 20:25:31 pm
Στο ίδιο μηχάνημα. Για τον λόγο που λες από ένα μηχάνημα μπορεί να τρέξει μόνο ένας server.

ολα αυτα τα λεω απλα για τον ελεγχο ορθοτητας


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mpletsos on September 15, 2019, 02:14:23 am
Κανω τα εξης βηματα για ενα απλο προγραμμα helloworld:

1../arm-linux-gnueabihf-gcc -std=c99 -o hello_world_c hello_world.c
2.το στελνω στο rasberry
3.το τρεχω με ./hello_world_c

Αλλα μου εμφανιζει illegal instruction , ξερει κανεις να βοηθησει?
*Δοκιμασα και με ../arm-linux-gnueabihf-gcc -o hello_world_c hello_world.c απλως το (1.) το βρηκα στο ιντερνετ για εναν που του δουλεψε.

Help people   ^notworthy^


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Apostolof on September 15, 2019, 12:19:46 pm
Κανω τα εξης βηματα για ενα απλο προγραμμα helloworld:

1../arm-linux-gnueabihf-gcc -std=c99 -o hello_world_c hello_world.c
2.το στελνω στο rasberry
3.το τρεχω με ./hello_world_c

Αλλα μου εμφανιζει illegal instruction , ξερει κανεις να βοηθησει?
*Δοκιμασα και με ../arm-linux-gnueabihf-gcc -o hello_world_c hello_world.c απλως το (1.) το βρηκα στο ιντερνετ για εναν που του δουλεψε.

Help people   ^notworthy^

Δοκίμασε να το κάνεις σε δύο βήματα:
Code:
arm-linux-gnueabihf-gcc -c -std=c99 hello_world.c -o hello_world.o
arm-linux-gnueabihf-gcc -o hello_world.out hello_world.o


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mano_lee on September 15, 2019, 14:25:13 pm
Κανω τα εξης βηματα για ενα απλο προγραμμα helloworld:

1../arm-linux-gnueabihf-gcc -std=c99 -o hello_world_c hello_world.c
2.το στελνω στο rasberry
3.το τρεχω με ./hello_world_c

Αλλα μου εμφανιζει illegal instruction , ξερει κανεις να βοηθησει?
*Δοκιμασα και με ../arm-linux-gnueabihf-gcc -o hello_world_c hello_world.c απλως το (1.) το βρηκα στο ιντερνετ για εναν που του δουλεψε.

Help people   ^notworthy^

Στο wiki του cross-compiler, το link που σε παραπέμπει στο Βήμα B στην εντολή με το wget, είναι για Raspberry Pi 2 & 3 και όχι για το Pi 0. Άρα πρέπει να πας στη σελίδα του compiler και να κατεβάσεις αυτό που είναι για το Pi 0.

Δεν είμαι σίγουρος αν φταίει αυτό, απλά είχα εγκαταστήσει και εγώ το λάθος χωρίς να το προσέξω και ίσως να το πάθουν κι άλλοι.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mpletsos on September 16, 2019, 03:33:09 am
Θενκς για την βοηθεια ολα καλα.

Να ρωτησω τωρα:

1.Τελικα αυτη η λιστα δοθηκε ...? Την εχει κανεις να μου την στειλει? Αν οχι τελικα χρησιμοποιουμε καποιον τροπο ευρεσης με ping?

2.Αποθηκευουμε την λιστα(buffer) σε καποιο φορματ txt ή κατι παρομοιο στην καρτα sd και ξεκιναμε καθε φορα με το προγραμμα να διαβαζει αυτο το αρχειο , να φτιαχνει ξανα την λιστα και να συνεχιζει την λειτουργια του? ή αρκει να τρεξουμε μια φορα στο ΑΠΘ να παρουμε μερικα μηνυματα και να στειλουμε ?

 :???: :???:


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mano_lee on September 16, 2019, 10:48:18 am
Θενκς για την βοηθεια ολα καλα.

Να ρωτησω τωρα:

1.Τελικα αυτη η λιστα δοθηκε ...? Την εχει κανεις να μου την στειλει? Αν οχι τελικα χρησιμοποιουμε καποιον τροπο ευρεσης με ping?

2.Αποθηκευουμε την λιστα(buffer) σε καποιο φορματ txt ή κατι παρομοιο στην καρτα sd και ξεκιναμε καθε φορα με το προγραμμα να διαβαζει αυτο το αρχειο , να φτιαχνει ξανα την λιστα και να συνεχιζει την λειτουργια του? ή αρκει να τρεξουμε μια φορα στο ΑΠΘ να παρουμε μερικα μηνυματα και να στειλουμε ?

 :???: :???:

1) Επειδή δεν δόθηκε ποτέ, εγώ απλά βρέθηκα με άλλα 2 παιδιά και τα τρέξαμε ταυτόχρονα. Και απλά το έκανα να ψάχνει κυκλικά 4 διευθύνσεις IP. Τις 2 των παιδιών και άλλες 2 με τυχαία ΑΕΜ έτσι ώστε να υπάρχουν και 2 IP με τις οποίες δεν μπορεί να συνδεθεί. Ψάξε να δεις πώς δουλεύει η connect() γι αυτό.

2) Γενικά δεν προσδιορίζει τι αρχεία θέλει να φτιάξουμε και τι μετρήσεις να πάρουμε. Οπότε φαντάζομαι όλα θα είναι σωστά. Μπορείς να αποθηκεύεις σε αρχεία αυτά που θες να χρησιμοποιήσεις μετά ως input σε διαγράμματα π.χ.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mpletsos on September 22, 2019, 03:20:39 am
Πως στελνετε ολα τα μηνυματα που εχετε μαζεψει στον παραληπτη?
Χρησιμοποιειτε καποιο τρικ επικοινωνιας για να στειλετε ενα ενα τα μηνυματα μεταξυ server-client κατι σε στυλ ack?

edit:

1)Εγω γυρναω κυκλικα μεσα στον server ολου του πινακα μου , οποτε ναι μεν μπορω να την στειλω ολη, αλλα σε περιπτωση που απομακρυνθει ο χρηστης θα στειλει ενα μερος μιας και το στελνει ενα ενα ...για αυτο αναρωτιεμαι.

2)Επισης τελικα η συναρτηση που θα αποδομει το μηνυμα σε AEM, target_AEM , timestamp και μηνυμα χρειαζεται? Δεν βλεπω καπου χρηση...παρα μονο αν θελουμε να σταματησουμε τον client μας αν πηρε το μυνημα που αναμενονταν για αυτον!.





Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mano_lee on September 22, 2019, 19:22:48 pm
Πως στελνετε ολα τα μηνυματα που εχετε μαζεψει στον παραληπτη?
Χρησιμοποιειτε καποιο τρικ επικοινωνιας για να στειλετε ενα ενα τα μηνυματα μεταξυ server-client κατι σε στυλ ack?

edit:

1)Εγω γυρναω κυκλικα μεσα στον server ολου του πινακα μου , οποτε ναι μεν μπορω να την στειλω ολη, αλλα σε περιπτωση που απομακρυνθει ο χρηστης θα στειλει ενα μερος μιας και το στελνει ενα ενα ...για αυτο αναρωτιεμαι.

2)Επισης τελικα η συναρτηση που θα αποδομει το μηνυμα σε AEM, target_AEM , timestamp και μηνυμα χρειαζεται? Δεν βλεπω καπου χρηση...παρα μονο αν θελουμε να σταματησουμε τον client μας αν πηρε το μυνημα που αναμενονταν για αυτον!.


1) Ο φλώρος είχε πει οτι δε θα στέλνουμε όλη τη λίστα με ένα send. Θα κάνουμε ένα send για κάθε μήνυμα.

2) Πιστεύω πως δε χρειάζεται συνάρτηση για να παίρνεις όλα τα μέρη του μηνύματος. Ούτως ή άλλως δεν χρειάζεται να τα χρησιμοποιήσεις κάπου όλα (εκτός αν θες π.χ. να γράψεις σε ένα αρχείο μόνο τα timestamps από τα μηνύματα της λίστας σου, αλλά αυτό έχει να κάνει με το τί μετρήσεις θα αποφασίσεις να πάρεις στο 2ωρο λειτουργίας).

Ακόμα και γι αυτό που λες, μπορεί απλά κάθε φορά ο παραλήπτης να ελέγχει αν το ΑΕΜ_Παραλήπτη είναι το δικό του. Και αυτό γίνεται έυκολα.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: thanosthehuge on September 22, 2019, 20:46:54 pm
Πως στελνετε ολα τα μηνυματα που εχετε μαζεψει στον παραληπτη?
Χρησιμοποιειτε καποιο τρικ επικοινωνιας για να στειλετε ενα ενα τα μηνυματα μεταξυ server-client κατι σε στυλ ack?


Κι εγώ πάντως χρησιμοποίησα ACK σήμα σε κάθε λήψη-αποστολή, νομίζω είναι ο πιο έυκολος τρόπος για να συγχρονιστούν οι συσκευές. Αλλιώς αν υπήρχαν π.χ. 5 μηνύματα στον buffer που έπρεπε να σταλθούν σε μια συσκευή, με την send() που έκανα έφταναν στον παραλήπτη όλα τα μηνύματα το ένα κολλητά πίσω από το άλλο σαν ένα ενωμένο μήνυμα.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: leukosaraphs! on September 26, 2019, 11:25:18 am
Αρχικα η εργασια πηρε παραταση εως Δευτέρα, 7 Οκτώβριος 2019, 11:55 μμ.

Κατα δευτερον, τι ειδους στατιστικα κρατησατε?


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mano_lee on September 26, 2019, 12:42:54 pm
Αρχικα η εργασια πηρε παραταση εως Δευτέρα, 7 Οκτώβριος 2019, 11:55 μμ.

Κατα δευτερον, τι ειδους στατιστικα κρατησατε?

1) Timestamps στα οποία συνδέθηκα με συσκευή
2) Χρονος μεταξύ των παραγμενων μηνυμάτων
3) Όσα μήνυματα πρόσθεσα στη λίστα μου
4) Όσα μήνυματα είχαν παραλήπτη εμένα

Δε ξέρω αν ήθελε συγκεκριμένα, τυχαία ότι μου ρθε κράτησα.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: dimvasdim on October 05, 2019, 13:51:07 pm
Κατάφερε κανείς να τρέξει το qemu και να πάρει αποτελέσματα από εκεί; Δυστυχώς το raspberry pi μου δεν δουλεύει οπότε από ότι το βλέπω η μοναδική λύση είναι να τα τρέξω στον προσομοιωτή.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: delta on October 05, 2019, 16:19:04 pm
Κατάφερε κανείς να τρέξει το qemu και να πάρει αποτελέσματα από εκεί; Δυστυχώς το raspberry pi μου δεν δουλεύει οπότε από ότι το βλέπω η μοναδική λύση είναι να τα τρέξω στον προσομοιωτή.

οταν δοκιμαζα εγω να τρεξω το qemu αρχειο που δινουν εβγαζε error σε καποια φαση
μετα φυσικα δοκιμασα με υπολογιστη και raspberry αλλου φοιτητη και ετρεχε μια χαρα


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: dalexiad on November 11, 2019, 15:36:57 pm
Πως ήταν οι βαθμοί για όσους παρέδωσαν τώρα τον Σεπτέμβριο?


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Frenzyx on November 11, 2019, 16:21:36 pm
Πως ήταν οι βαθμοί για όσους παρέδωσαν τώρα τον Σεπτέμβριο?

Δεν τα εχει βγαλει ακομα


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: leukosaraphs! on November 11, 2019, 17:12:16 pm
Νομίζω ότι έχουν ανακοινωθεί για τους φοιτητές που έχουν ορκομωσία να προλάβουν.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: thanosthehuge on November 12, 2019, 02:06:28 am
Εμενα τωρα το τσεκαρα και έχει περαστεί στο sis. Και δεν είμαι για ορκομωσία. Τίμιο 8αράκι μου πέταξε. Can't complain.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: mano_lee on November 12, 2019, 02:34:55 am
Επειδή ακόμα δεν μου περάστηκε και όποιον ρώτησα του έχει περαστεί, υπάρχει κι άλλος που δεν βλέπει βαθμό ακόμα στο sis?


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Frenzyx on November 12, 2019, 04:30:46 am
Επειδή ακόμα δεν μου περάστηκε και όποιον ρώτησα του έχει περαστεί, υπάρχει κι άλλος που δεν βλέπει βαθμό ακόμα στο sis?

Ούτε εγώ βλέπω βαθμό και παρέδωσα τώρα το Σεπτέμβριο


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Alexandros on November 12, 2019, 05:21:00 am
Και γω μόλις τσεκαρα, 8αρι. Πολύ... ήσυχα ανέβηκε ο βαθμός. :-\ :-\ :-\


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: pesto80 on November 12, 2019, 12:06:06 pm
και σε μενα περαστηκε χωρις να μαι ορκομωσια. σε οσους δεν εχει περαστει ας το τσεκαρουν.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: leukosaraphs! on November 12, 2019, 15:41:57 pm
Πέτυχα πιτσιάνη στον δρόμο, ουσιαστικά απλά εχει διορθώσει τις μισές εργασίες (περίπου). Για να μην κάνει δεύτερη λίστα με όσους ορκίζονται μόνο, απλά έστειλε το τωρίνο excel και είχε μέσα και τους άλλους που δεν ορκίζονται.

Οι βαθμοί θα ανακοινωθούν το ΣΚ ή Δευτέρα για όλους και ότι περάστηκε δεν σημαίνει οτι είναι τελικός βαθμός, θα τα μαγειρέψει και λίγο, θα τα μιλήσουμε στις ώρες γραπτών και μετά θα οριστικοποιηθεί.


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Μπουγάτσας on November 12, 2019, 15:54:39 pm
Κι εγω είδα βαθμό στο sis και πηγα απο το γραφείο του, ισχύει οτι λεει απο πάνω ο leukosaraphs. Είπε οτι διόρθωσε μέχρι το Μ , μέχρι σάββατο θα δει τα υπόλοιπα και κυριακη θα ανακοινώσει τους βαθμούς elearning, ώστε απο εβδομαδα να επικοινωνήσουν όσοι φοιτητές έχουν ενστάσεις. Τώρα με ποιούς γνώμονες διόρθωσε δε ξέρω, γιατι εγω 10 περίμενα και 8 είδα και οταν τον ρώτησα γιατι, δεν πολυ θυμόταν τι είχε σημειώσει για την εργασία μου ...
Μου είπε να το γράψω στο τημμυ για να ξέρουν και οι υπόλοιποι


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: Alexandros on November 12, 2019, 21:29:31 pm
Ήήήή... απλά θα μπορούσε να ζητήσει όσοι ήταν για ορκομωσία, τα υπόλοιπα να τα βγάλει όόόόλα μαζί τη Δευτέρα ή όποια άλλη μέρα, να τα ανέβαζε σε αρχείο, έπειτα να έδινε ώρες γραπτών και να ανέβαιναν όλα στο sis τελικά μια και καλή... Μπά, όχι μωρέ :D :D :D


Title: Re: [Eνσωματωμένα] Εργασίες 2019
Post by: dalexiad on December 05, 2019, 14:49:26 pm
Δεδομένου ότι βαθμολογήθηκαν οι εργασίες, τι πρέπει να περιλαμβάνει η αναφορά για την "απόδειξη της ορθής λειτουργίας του προγράμματος"? (τι τύπου στατιστικά στοιχεία, ++)