Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Εχω λιγες γνωσεις προγραμματισμου και δεν ξερω πως να κανω το παρακατω.

Εχω ενα δίκτυο rs485 με 20 συσκευές και μια ακομη που απεικονιζει την κατασταση ολων των αλλων. Ενα status panel. Καθε συσκευή στελνει σημα οταν αλλαζει η κατασταση της. Το πανελ ομως θελω να δειχνει μονιμα την κατασταση στην οποια βρισκετε καθε συσκευή. Μπορω με καποιο προγραμμα ετοιμο η μη να παιρνω απο την σειριακη θυρα τις εντολες που στελνουν ολες οι συσκευες και να τις αναπαραγω? Θελω δηλαδη να εχω ενα προγραμμ που παιρνει απο την com1 20 διαφορετικες εντολες και τις αναπαραγει μονο του παλι με εξοδο στην com1. Ομως οταν μια εντολη αλλαξει πρέπει να αλλαζει ολο το "ποιηματάκι" αυτόματα. Οι εντολες αλλαζουν καιε μιση ωρα περιπου αλλα το πανελ για να λειτουργει θελει εντολη καθε μισο λεπτο αλλιως δειχνει τις συσκευες σβυστες.

Δημοσ.

Πως θα συνεργαστει το προγραμμα που κανει μονιτορ τις θυρες με το προγραμμα του κωδικα? Υπάρχει καποιο που να κανει και τα δυο; αν ναι, αυτο θελω. Ξέρω να γραφω τετοιο κώδικα.

Δημοσ.

Ενα θα ειναι το προγραμμα.

Το κυριως κομματι θα ειναι μια κλαση με ενα SerialPort member, και στο DataReceived event του θα στέλνεις τα data που θες.

class PanelController
{
	SerialPort myPort;
	public void Initialize()
	{
		myPort = new SerialPort("COM1", 57600);
		myPort.RtsEnable = true;
		//...
		myPort.DataReceived += myPort_DataReceived;
	}

	void myPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
	{
		byte[] data = new byte[myPort.BytesToRead];
		myPort.Read(data, 0, data.Length);
		byte[] dataToSend = Process(data);
		myPort.Write(dataToSend, 0, dataToSend.Length);
	}

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...