Πώς μπορώ να ρυθμίσω και να επικοινωνούν με μια σειριακή θύρα;




Πρέπει να στέλνουν και να λαμβάνουν δεδομένα μέσω σειριακής συνδέσεις (RS-232 και RS-422).


Πώς μπορώ να ρυθμίσω και να επικοινωνούν με μια τέτοια σχέση; Πώς μπορώ να καταλάβω τι πρέπει να είναι οι ρυθμίσεις (π.χ. baud rate) και πώς μπορώ να τα ρυθμίσετε;


Ειδικότερα Ψάχνω να το κάνετε αυτό σε Java, C / C ++, ή ένα από τα σημαντικότερα κοχύλια Unix, αλλά έχω επίσης κάποιο ενδιαφέρον για σειριακή προγραμματισμού χρησιμοποιώντας το Windows / Hyperterminal.
Δημιουργήστε μια μηχανή του χρόνου και να πάει πίσω στο 1987; Ho Ho.


Εντάξει, όχι περισσότερο snarky σχόλια.



> 
> Πώς μπορώ να καταλάβω τι πρέπει να είναι οι ρυθμίσεις (π.χ. baud rate) ...
> 
> 
> 


Διαβάστε το δελτίο; ΕΝΤΑΞΕΙ ΕΝΤΑΞΕΙ. Σοβαρά, το τελευταίο. Αν δεν γνωρίζετε το ρυθμό Baud της συσκευής που προσπαθείτε να επικοινωνήσει μαζί, έχετε δύο επιλογές. Ξεκινήστε μαντέψουν, ή ενδεχομένως ξεφύγει από ένα o-πεδίο. Αν χρειάζεστε ένα καλό σημείο εκκίνησης, επιτρέψτε μου να προτείνω 9.600 έως 8-Ν-1. υποψία μου είναι ότι μπορείτε να φτάσετε εκεί με ωμή βία σχετικά γρήγορα. Υπάρχει μια τρίτη επιλογή που έχει ένα παλιό σχολείο ninja που μπορεί να πει ακριβώς από την εμφάνιση των αλλοιωμένους χαρακτήρες σε κάποια τυπική ταχύτητα baud τι πραγματικός ρυθμός baud είναι. Ένα εντυπωσιακό μέρος τέχνασμα για να είστε σίγουροι.


Ας ελπίσουμε ότι αν έχετε πρόσβαση σε αυτές τις πληροφορίες. Στο Unix / Linux, μπορείτε να πάρετε Ahold από minicom να παίξει με τη σειριακή θύρα άμεσα. Αυτό θα πρέπει να είναι αρκετά γρήγορος για να πάρει η διαμόρφωση καταλάβει.



> 
> ένα από τα σημαντικότερα κοχύλια Unix
> 
> 
> 


Σε Unix η σειριακή θύρα (ες) είναι / είναι αρχείο-χαρτογραφήθηκαν στο / dev / subdir. ttyS0, για παράδειγμα. Εάν ρυθμίσετε το σωστό ρυθμό Baud και εταζέρα με τη χρήση minicom, μπορείτε ακόμη και η γάτα πράγματα σε αυτό το αρχείο για να στείλετε πράγματα εκεί έξω.


Από το κρέας του ζητήματος, μπορείτε να έχετε πρόσβαση μέσω προγραμματισμού μέσα από τις κεφαλίδες POSIX. termios.h είναι το μεγάλο.


Δείτε: <http://www.easysw.com/~mike/serial/serial.html#3_1>
 **(δεν είναι διαθέσιμο πια)**



> 
> αλλά έχω και κάποιο ενδιαφέρον για σειριακή προγραμματισμού χρησιμοποιώντας το Windows / Hyperterminal.
> 
> 
> 


Hyperterminal και minicom είναι βασικά το ίδιο πρόγραμμα. Όσο για το πώς τα Windows ας έχετε πρόσβαση στη σειριακή θύρα, θα αφήσω αυτή την ερώτηση για κάποιον άλλο. Δεν έχω κάνει αυτό στα Windows από την εποχή Win95.
Συχνά αυτό επιτυγχάνεται με τη χρήση [«Driven δεδομένων Συνδρομές»](https://msdn.microsoft.com/en-us/library/ms169673.aspx) , αλλά αυτή η λειτουργία είναι διαθέσιμη μόνο σε ορισμένες εκδόσεις του SQL: Enterprise και Business Intelligence, αλλά όχι στο πρότυπο.


Έτσι, υπάρχει μια σειρά από δημιουργικές λύσεις. Αλλά δεν μου αρέσει κάποια από αυτές, και απαιτούν ένα δίκαιο κομμάτι της εργασίας έξω από SSRS.


Οι λύσεις που έχω δει περιλαμβάνουν: Δημιουργία της εγγραφής και στη συνέχεια απενεργοποίηση ή επιτρέπουν την εργασία SQL που στέλνει τη συνδρομή (που προσδιορίζονται από GUID.)


Δημιουργήστε ένα .exe .NET περιτύλιγμα για να χειριστεί την αποστολή του email. Μπορεί να εκτελέσετε το ερώτημα πρώτα να δούμε πόσα επέστρεψε σειρές, και στη συνέχεια, αν χρειαστεί, να δημιουργήσει την έκθεση και να συμπεριληφθεί σε ένα email. οι διευθύνσεις αυτές είναι τα shorcuts στη σελίδα about:home. συγκεκριμένα τα 8 πρώτα αν έχεις μία σειρά ενεργή, και τα 10 πρώτα αν έχεις 2-4. οι ρυθμίσεις παραμένουν ενεργές και αν τα απενεργοποιήσεις. <p>μπορείτε να λάβετε ροή εξόδου για τη σύνδεση και να γράψετε τη συμβολοσειρά ερώτησης παραμέτρων σε αυτήν.</p><pre><code>url url = new url("http://yoururl.com"); httpsurlconnection conn = (httpsurlconnection) url.openconnection(); conn.setreadtimeout(10000); conn.setconnecttimeout(15000); conn.setrequestmethod("post"); conn.setdoinput(true); conn.setdooutput(true); list&lt;namevaluepair&gt; params = new arraylist&lt;namevaluepair&gt;(); params.add(new basicnamevaluepair("firstparam", paramvalue1)); params.add(new basicnamevaluepair("secondparam", paramvalue2)); params.add(new basicnamevaluepair("thirdparam", paramvalue3)); outputstream os = conn.getoutputstream(); bufferedwriter writer = new bufferedwriter( new outputstreamwriter(os, "utf-8")); writer.write(getquery(params)); writer.flush(); writer.close(); os.close(); conn.connect(); </code></pre><p>...</p><pre><code>private string getquery(list&lt;namevaluepair&gt; params) throws unsupportedencodingexception { stringbuilder result = new stringbuilder(); boolean first = true; for (namevaluepair pair : params) { if (first) first = false; else result.append("&amp;"); result.append(urlencoder.encode(pair.getname(), "utf-8")); result.append("="); result.append(urlencoder.encode(pair.getvalue(), "utf-8")); } return result.tostring(); } </code></pre> ok κοιτα… για εναν streaming server 2 λυσεις υπαρχουν. η κανεις transcoding και το στελνεις μεσω rtmp ή το κανεις μεσω https. αυτο που δεν μπορεις να κανεις με εναν streaming server ειναι να το κανεις mount σε κανονικο gnu/linux mountpoint. στο kodi ομως μπορεις να κανεις “mount” το directory του ht… [εικόνα] soulrain:

το dash είναι ένα shell, όπως το bash (αλλά όχι με ακριβώς τις ίδιες δυνατότητες) και ήταν (είναι ακόμα;) το προεπιλεγμένο shell του συστήματος στο debian. ο πιο απλός τρόπος για να δεις ποιο shell έχεις στο ssh είναι να τρέξεις την εντολή echo "$shell" όταν θα έχεις συνδεθεί.… ανάλογα την επισκευή που θα κάνετε. αν πχ θέλετε να αντικαταστήσετε τον πυκνωτή ή την πλακέτα με τον διακόπτη των ταχυτήτων τότε αρκεί να έχετε κλειστό το ρεύμα , αν όμως θέλετε να αλλάξετε την φτερωτή ή τον ρότορα πρέπει να έχετε απομονώσει τον κυκλοφορητή και από το ρεύμα και από το νερό της εγκατάστασης. τρουλλινός γιώργος , υδραυλικός , αθήνα , αττική , 6932860310. εισαι στο 13 καναλι. βγαλε το αυτοματο και βαλτο πχ στο 6 και δες. το 13 δεν το πιανουν ολες οι καρτες δικτυου. τα international πανε ως το 11

plus -μπορεις να βαλεις και το bandwidth στο 40mhz. αν το υποστηριζουν οι συσκευες σου θα διπλασιαστει η ταχυτητα μεταξυ τους. ομως το 40mhz πιανει σχεδον 3… μπορείς και μέσω τερματικού για να μην μπλέκεις και να ψάχνεις παράθυρα. 
πατάς ctrl+alt+t για να ανοίξεις το τερματικό και πληκτρολογείς την εντολή passwd θα σου ζητήσει τον υπάρχον κωδικό και να πληκτρολογήσεις 2 φορές το νέο. αφού γράψεις ένα track με μία φωνή, πάνε στην καρτέλα tracks και επέλεξε add new όπου έχεις επιλογές όπως mono track ή stereo track. όταν επιλέξεις κάποιο θα δημιουργηθεί ένα καινούριο κανάλι κάτω από το πρώτο όπου θα μπορείς να γράψεις 2η φωνή. όταν θα αναπαράγεις όλο τα αρχείο θα παίζουν και τα 2 … Κάνατε πολύ καλή δουλειά στο να συνοψίσετε τι είναι φοβερό στο Node.js. Η αίσθησή μου είναι ότι το Node.js είναι ιδιαίτερα κατάλληλο για εφαρμογές όπου θα θέλατε να διατηρήσετε μια μόνιμη σύνδεση από το πρόγραμμα περιήγησης πίσω στον διακομιστή. Χρησιμοποιώντας μια τεχνική γνωστή ως ["long-polling"](https://en.wikipedia.org/wiki/Push_technology#Long_polling), μπορείτε να γράψετε μια εφαρμογή που στέλνει ενημερώσεις στον χρήστη σε πραγματικό χρόνο. Η πραγματοποίηση long polling σε πολλούς από τους γίγαντες του διαδικτύου, όπως το [Ruby on Rails](https://en.wikipedia.org/wiki/Ruby_on_Rails) ή το [Django](https://en.wikipedia.org/wiki/Django_%28web_framework%29), θα δημιουργούσε τεράστιο φόρτο στον διακομιστή, επειδή κάθε ενεργός πελάτης τρώει μια διεργασία του διακομιστή. Αυτή η κατάσταση ισοδυναμεί με επίθεση [tarpit](https://en.wikipedia.org/wiki/Tarpit_(networking)). Όταν χρησιμοποιείτε κάτι όπως το Node.js, ο διακομιστής δεν έχει ανάγκη να διατηρεί ξεχωριστά νήματα για κάθε ανοιχτή σύνδεση. 


Αυτό σημαίνει ότι μπορείτε να δημιουργήσετε μια [εφαρμογή συνομιλίας με βάση το πρόγραμμα περιήγησης](https://github.com/rivalslayer/node_chat) σε Node.js που δεν χρειάζεται σχεδόν καθόλου πόρους συστήματος για να εξυπηρετεί πολλούς πελάτες. Κάθε φορά που θέλετε να κάνετε αυτού του είδους τη μακροχρόνια αναζήτηση, το Node.js είναι μια εξαιρετική επιλογή. 


Αξίζει να αναφέρουμε ότι και η Ruby και η Python έχουν εργαλεία για να κάνουν κάτι τέτοιο ([eventmachine](http://rubyeventmachine.com/) και [twisted](https://twistedmatrix.com/trac/), αντίστοιχα), αλλά ότι το Node.js το κάνει εξαιρετικά καλά, και από την αρχή. Η JavaScript είναι εξαιρετικά καλά τοποθετημένη σε ένα μοντέλο ταυτόχρονης λειτουργίας βασισμένο σε callback, και υπερέχει εδώ. Επίσης, η δυνατότητα σειριοποίησης και αποσειριοποίησης με JSON εγγενές τόσο στον πελάτη όσο και στον διακομιστή είναι αρκετά έξυπνη.


Ανυπομονώ να διαβάσω άλλες απαντήσεις εδώ, αυτή είναι μια φανταστική ερώτηση.


Αξίζει να επισημάνουμε ότι το Node.js είναι επίσης εξαιρετικό για καταστάσεις στις οποίες θα επαναχρησιμοποιήσετε πολύ κώδικα σε όλο το χάσμα πελάτη/εξυπηρετητή. Το [Meteor framework](https://meteor.com) το κάνει αυτό πολύ εύκολο, και πολλοί άνθρωποι προτείνουν ότι αυτό μπορεί να είναι το μέλλον της ανάπτυξης ιστοσελίδων. Μπορώ να πω από την εμπειρία μου ότι είναι πολύ διασκεδαστικό να γράφεις κώδικα στο Meteor, και ένα μεγάλο μέρος αυτού είναι να ξοδεύεις λιγότερο χρόνο σκεπτόμενος πώς θα αναδομήσεις τα δεδομένα σου, ώστε ο κώδικας που εκτελείται στο πρόγραμμα περιήγησης να μπορεί εύκολα να τα χειριστεί και να τα μεταβιβάσει πίσω.


Εδώ είναι ένα άρθρο για το Pyramid και το long-polling, το οποίο αποδεικνύεται ότι είναι πολύ εύκολο να ρυθμιστεί με λίγη βοήθεια από το gevent: [*TicTacToe και Long Polling με την Pyramid*](http://michael.merickel.org/2011/6/21/tictactoe-and-long-polling-with-pyramid/).